diff options
| author | Sebastien Lafargue <slafargue@gnome.org> | 2015-03-16 19:45:47 (GMT) |
|---|---|---|
| committer | Sebastien Lafargue <slafargue@gnome.org> | 2015-03-16 19:45:47 (GMT) |
| commit | 18cd0a02e0c654da0ce9817385989acc61a0263c (patch) | |
| tree | 641b43c7b865022d89c633ca32de5d03876a42a0 | |
| parent | aaf6698b619a4d0690e3609c0c0dbdaa9cd9e351 (diff) | |
| download | gedit-18cd0a02e0c654da0ce9817385989acc61a0263c.zip gedit-18cd0a02e0c654da0ce9817385989acc61a0263c.tar.xz | |
search: hide when hitting Esc
Due to gtk+ API changes for GtkSearchEntry,
we now use the new stop-search signal.
https://bugzilla.gnome.org/show_bug.cgi?id=746299
| -rw-r--r-- | gedit/gedit-view-frame.c | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/gedit/gedit-view-frame.c b/gedit/gedit-view-frame.c index fb67e14..243e8cf 100644 --- a/gedit/gedit-view-frame.c +++ b/gedit/gedit-view-frame.c @@ -583,35 +583,6 @@ search_widget_key_press_event (GtkWidget *widget, return GDK_EVENT_STOP; } - /* Close window and cancel the search */ - if (event->keyval == GDK_KEY_Escape) - { - GtkSourceSearchContext *search_context = get_search_context (frame); - - if (frame->priv->search_mode == SEARCH && - search_context != NULL) - { - g_clear_object (&frame->priv->search_settings); - frame->priv->search_settings = copy_search_settings (frame->priv->old_search_settings); - - gtk_source_search_context_set_settings (search_context, - frame->priv->search_settings); - - g_free (frame->priv->search_text); - frame->priv->search_text = NULL; - - if (frame->priv->old_search_text != NULL) - { - frame->priv->search_text = g_strdup (frame->priv->old_search_text); - } - } - - hide_search_widget (frame, TRUE); - gtk_widget_grab_focus (GTK_WIDGET (frame->priv->view)); - - return GDK_EVENT_STOP; - } - if (frame->priv->search_mode == GOTO_LINE) { return GDK_EVENT_PROPAGATE; @@ -906,6 +877,34 @@ setup_popup_menu (GeditViewFrame *frame, } static void +search_entry_escaped (GtkSearchEntry *entry, + GeditViewFrame *frame) +{ + GtkSourceSearchContext *search_context = get_search_context (frame); + + if (frame->priv->search_mode == SEARCH && + search_context != NULL) + { + g_clear_object (&frame->priv->search_settings); + frame->priv->search_settings = copy_search_settings (frame->priv->old_search_settings); + + gtk_source_search_context_set_settings (search_context, + frame->priv->search_settings); + + g_free (frame->priv->search_text); + frame->priv->search_text = NULL; + + if (frame->priv->old_search_text != NULL) + { + frame->priv->search_text = g_strdup (frame->priv->old_search_text); + } + } + + hide_search_widget (frame, TRUE); + gtk_widget_grab_focus (GTK_WIDGET (frame->priv->view)); +} + +static void search_entry_populate_popup (GtkEntry *entry, GtkMenu *menu, GeditViewFrame *frame) @@ -1601,6 +1600,11 @@ gedit_view_frame_init (GeditViewFrame *frame) G_CALLBACK (search_entry_insert_text), frame); + g_signal_connect (frame->priv->search_entry, + "stop-search", + G_CALLBACK (search_entry_escaped), + frame); + frame->priv->search_entry_changed_id = g_signal_connect (frame->priv->search_entry, "changed", |
