--- demos/gtk-demo/font_features.c +++ demos/gtk-demo/font_features.c @@ -434,7 +434,7 @@ static void update_display (void) { GString *s; - const char *text; + char *text; gboolean has_feature; GtkTreeIter iter; GtkTreeModel *model; @@ -452,8 +452,12 @@ update_display (void) gboolean do_waterfall; GString *waterfall; char *palette; + GtkTextBuffer *buffer; + GtkTextIter start_iter, end_iter; - text = gtk_editable_get_text (GTK_EDITABLE (demo->the_entry)); + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (demo->the_entry)); + gtk_text_buffer_get_bounds (buffer, &start_iter, &end_iter); + text = gtk_text_buffer_get_text (buffer, &start_iter, &end_iter, FALSE); text_len = strlen (text); do_waterfall = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (demo->waterfall_toggle)); @@ -631,6 +635,8 @@ update_display (void) pango2_font_description_free (desc); g_free (features); pango2_attr_list_unref (attrs); + + g_free (text); } static Pango2Font * @@ -1603,8 +1609,12 @@ font_features_toggle_edit (void) { if (strcmp (gtk_stack_get_visible_child_name (GTK_STACK (demo->stack)), "entry") != 0) { + GtkTextBuffer *buffer; + GtkTextIter start, end; g_free (demo->text); - demo->text = g_strdup (gtk_editable_get_text (GTK_EDITABLE (demo->the_entry))); + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (demo->the_entry)); + gtk_text_buffer_get_bounds (buffer, &start, &end); + demo->text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); gtk_stack_set_visible_child_name (GTK_STACK (demo->stack), "entry"); gtk_widget_grab_focus (demo->the_entry); gtk_adjustment_set_value (gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (demo->swin)), 0); @@ -1632,7 +1642,7 @@ entry_key_press (GtkEventController *controller, { if (keyval == GDK_KEY_Escape) { - gtk_editable_set_text (GTK_EDITABLE (entry), demo->text); + gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (demo->the_entry)), demo->text, -1); return GDK_EVENT_STOP; } @@ -1701,7 +1711,6 @@ do_font_features (GtkWidget *do_widget) basic_value_changed (demo->line_height_adjustment, demo->line_height_entry); controller = gtk_event_controller_key_new (); - g_object_set_data_full (G_OBJECT (demo->the_entry), "controller", g_object_ref (controller), g_object_unref); g_signal_connect (controller, "key-pressed", G_CALLBACK (entry_key_press), demo->the_entry); gtk_widget_add_controller (demo->the_entry, controller);