gtk-demo: set irreversable actions for textview demos
authorChristian Hergert <chergert@redhat.com>
Fri, 1 Nov 2019 18:30:33 +0000 (11:30 -0700)
committerChristian Hergert <chergert@redhat.com>
Tue, 5 Nov 2019 18:27:29 +0000 (10:27 -0800)
demos/gtk-demo/hypertext.c
demos/gtk-demo/markup.c
demos/gtk-demo/textview.c

index b053ed581f6c1fa71d29382e9d1feba8300131db..5b6d42befc2aa90df3cdbc1c6d6a5e7eb23c9b11 100644 (file)
@@ -41,6 +41,7 @@ show_page (GtkTextBuffer *buffer,
 
   gtk_text_buffer_set_text (buffer, "", 0);
   gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
+  gtk_text_buffer_begin_irreversible_action (buffer);
   if (page == 1)
     {
       gtk_text_buffer_insert (buffer, &iter, "Some text to show that simple ", -1);
@@ -73,6 +74,7 @@ show_page (GtkTextBuffer *buffer,
                               "so that related items of information are connected.\n", -1);
       insert_link (buffer, &iter, "Go back", 1);
     }
+  gtk_text_buffer_end_irreversible_action (buffer);
 }
 
 /* Looks at all tags covering the position of iter in the text view,
@@ -258,6 +260,7 @@ do_hypertext (GtkWidget *do_widget)
       gtk_widget_add_controller (view, controller);
 
       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+      gtk_text_buffer_set_enable_undo (buffer, TRUE);
 
       sw = gtk_scrolled_window_new (NULL, NULL);
       gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
index 974775e57d7dbf8930a534dd4f86ca2f4b9e3f57..a57c82fb969211f33ffe84f98b48d367ab716d8b 100644 (file)
@@ -29,8 +29,10 @@ source_toggled (GtkToggleButton *button)
 
       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
       gtk_text_buffer_get_bounds (buffer, &start, &end);
+      gtk_text_buffer_begin_irreversible_action (buffer);
       gtk_text_buffer_delete (buffer, &start, &end);
       gtk_text_buffer_insert_markup (buffer, &start, markup, -1);
+      gtk_text_buffer_end_irreversible_action (buffer);
       g_free (markup);
 
       gtk_stack_set_visible_child_name (GTK_STACK (stack), "formatted");
@@ -106,11 +108,15 @@ do_markup (GtkWidget *do_widget)
 
       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
       gtk_text_buffer_get_start_iter (buffer, &iter);
+      gtk_text_buffer_begin_irreversible_action (buffer);
       gtk_text_buffer_insert_markup (buffer, &iter, markup, -1);
+      gtk_text_buffer_end_irreversible_action (buffer);
 
       buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view2));
       gtk_text_buffer_get_start_iter (buffer, &iter);
+      gtk_text_buffer_begin_irreversible_action (buffer);
       gtk_text_buffer_insert (buffer, &iter, markup, -1);
+      gtk_text_buffer_end_irreversible_action (buffer);
 
       g_bytes_unref (bytes);
 
index a339d37bb7906fc15a2f70b778d8fe9bc1dba6fb..c28312a517c2a08e4a339eb48221fa4b45c08141 100644 (file)
@@ -144,6 +144,7 @@ insert_text (GtkTextBuffer *buffer)
    */
   gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
 
+  gtk_text_buffer_begin_irreversible_action (buffer);
   gtk_text_buffer_insert (buffer, &iter,
       "The text widget can display text with all kinds of nifty attributes. "
       "It also supports multiple views of the same buffer; this demo is "
@@ -377,6 +378,8 @@ insert_text (GtkTextBuffer *buffer)
   gtk_text_buffer_get_bounds (buffer, &start, &end);
   gtk_text_buffer_apply_tag_by_name (buffer, "word_wrap", &start, &end);
 
+  gtk_text_buffer_end_irreversible_action (buffer);
+
   g_object_unref (texture);
 }