gtk-demo: wrap text operations in irreversible actions
authorChristian Hergert <chergert@redhat.com>
Fri, 1 Nov 2019 18:18:21 +0000 (11:18 -0700)
committerChristian Hergert <chergert@redhat.com>
Tue, 5 Nov 2019 18:27:29 +0000 (10:27 -0800)
This ensures that the actions to set the text for the demo tabs cannot
be undone. This matches the previous behavior for GtkTextBuffer.

demos/gtk-demo/main.c

index 6460f103885f03a862849a22ee353fe3fadca2e6..a188fc3318da4873443fd967c30d8f1b4bbd69aa 100644 (file)
@@ -748,6 +748,9 @@ load_file (const gchar *demoname,
 
   source_buffer = gtk_text_buffer_new (NULL);
 
+  gtk_text_buffer_begin_irreversible_action (info_buffer);
+  gtk_text_buffer_begin_irreversible_action (source_buffer);
+
   resource_filename = g_strconcat ("/sources/", filename, NULL);
   bytes = g_resources_lookup_data (resource_filename, 0, &err);
   g_free (resource_filename);
@@ -880,9 +883,11 @@ load_file (const gchar *demoname,
 
   fontify (source_buffer);
 
+  gtk_text_buffer_end_irreversible_action (source_buffer);
   gtk_text_view_set_buffer (GTK_TEXT_VIEW (source_view), source_buffer);
   g_object_unref (source_buffer);
 
+  gtk_text_buffer_end_irreversible_action (info_buffer);
   gtk_text_view_set_buffer (GTK_TEXT_VIEW (info_view), info_buffer);
   g_object_unref (info_buffer);
 }