[anjuta] document-manager: hide search box when pressing escape inside the document widget.
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] document-manager: hide search box when pressing escape inside the document widget.
- Date: Sun, 18 Nov 2012 09:20:53 +0000 (UTC)
commit 1365658883eb43dbc0866996fe7cb3d877c00971
Author: Carl-Anton Ingmarsson <ca ingmarsson gmail com>
Date: Fri Nov 16 14:02:43 2012 +0100
document-manager: hide search box when pressing escape inside the document widget.
https://bugzilla.gnome.org/show_bug.cgi?id=688460
plugins/document-manager/anjuta-docman.c | 26 ++++++++++++++++++++++++++
plugins/document-manager/search-box.c | 22 ++++++++++++++--------
plugins/document-manager/search-box.h | 1 +
3 files changed, 41 insertions(+), 8 deletions(-)
---
diff --git a/plugins/document-manager/anjuta-docman.c b/plugins/document-manager/anjuta-docman.c
index 6ac365e..bd0d07a 100644
--- a/plugins/document-manager/anjuta-docman.c
+++ b/plugins/document-manager/anjuta-docman.c
@@ -36,6 +36,7 @@
#include "file_history.h"
#include "plugin.h"
#include "action-callbacks.h"
+#include "search-box.h"
#define MENU_PLACEHOLDER "/MenuMain/PlaceHolderDocumentsMenus/Documents/PlaceholderDocuments"
@@ -87,6 +88,7 @@ struct _AnjutaDocmanPage {
GtkWidget *label;
GtkWidget *menu_label; /* notebook page-switch menu-label */
gboolean is_current;
+ guint doc_widget_key_press_id;
};
static guint docman_signals[LAST_SIGNAL] = { 0 };
@@ -388,6 +390,23 @@ anjuta_docman_update_documents_menu (AnjutaDocman* docman)
priv->documents_merge_id = id;
}
+static gboolean
+on_doc_widget_key_press_event (GtkWidget *widget,
+ GdkEventKey *event,
+ AnjutaDocman *docman)
+{
+ AnjutaDocmanPage *page;
+
+ page = anjuta_docman_get_current_page (docman);
+ if (widget == page->widget && event->keyval == GDK_KEY_Escape)
+ {
+ search_box_hide (SEARCH_BOX (docman->priv->plugin->search_box));
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
on_notebook_page_close_button_click (GtkButton* button,
AnjutaDocman* docman)
@@ -703,6 +722,10 @@ anjuta_docman_page_init (AnjutaDocman *docman, IAnjutaDocument *doc,
G_CALLBACK (on_notebook_tab_double_click),
docman);
+ page->doc_widget_key_press_id =
+ g_signal_connect (G_OBJECT (doc), "key-press-event",
+ G_CALLBACK (on_doc_widget_key_press_event), docman);
+
page->widget = GTK_WIDGET (doc); /* this is the notebook-page child widget */
page->doc = doc;
page->box = box;
@@ -1301,6 +1324,9 @@ anjuta_docman_remove_document (AnjutaDocman *docman, IAnjutaDocument *doc)
g_signal_emit (G_OBJECT (docman), docman_signals[DOC_CHANGED], 0, NULL);
}
+
+ g_signal_handler_disconnect (doc, page->doc_widget_key_press_id);
+
g_free (page);
}
gtk_widget_destroy(GTK_WIDGET(doc));
diff --git a/plugins/document-manager/search-box.c b/plugins/document-manager/search-box.c
index c2ada5c..e36040d 100644
--- a/plugins/document-manager/search-box.c
+++ b/plugins/document-manager/search-box.c
@@ -89,7 +89,7 @@ G_DEFINE_TYPE (SearchBox, search_box, GTK_TYPE_HBOX);
static void
on_search_box_hide (GtkWidget* button, SearchBox* search_box)
{
- gtk_widget_hide (GTK_WIDGET (search_box));
+ search_box_hide (search_box);
}
static void
@@ -186,13 +186,7 @@ on_goto_key_pressed (GtkWidget* entry, GdkEventKey* event, SearchBox* search_box
}
case GDK_KEY_Escape:
{
- gtk_widget_hide (GTK_WIDGET (search_box));
- search_box_set_entry_color (search_box, TRUE);
- if (search_box->priv->current_editor)
- {
- ianjuta_document_grab_focus (IANJUTA_DOCUMENT (search_box->priv->current_editor),
- NULL);
- }
+ search_box_hide (search_box);
}
default:
{
@@ -1151,6 +1145,18 @@ search_box_grab_line_focus (SearchBox* search_box)
}
void
+search_box_hide (SearchBox* search_box)
+{
+ gtk_widget_hide (GTK_WIDGET (search_box));
+ search_box_set_entry_color (search_box, TRUE);
+ if (search_box->priv->current_editor)
+ {
+ ianjuta_document_grab_focus (IANJUTA_DOCUMENT (search_box->priv->current_editor),
+ NULL);
+ }
+}
+
+void
search_box_set_replace (SearchBox* search_box, gboolean replace)
{
if (replace)
diff --git a/plugins/document-manager/search-box.h b/plugins/document-manager/search-box.h
index 04578fe..10e84bb 100644
--- a/plugins/document-manager/search-box.h
+++ b/plugins/document-manager/search-box.h
@@ -58,6 +58,7 @@ GtkWidget* search_box_new (AnjutaDocman* docman);
void search_box_fill_search_focus (SearchBox* search_box, gboolean on_replace);
void search_box_grab_line_focus (SearchBox* search_box);
+void search_box_hide (SearchBox* search_box);
void search_box_set_replace (SearchBox* object, gboolean replace);
gboolean search_box_incremental_search (SearchBox* search_box, gboolean search_forward,
gboolean wrap);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]