summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-12-17 12:09:06 +0100
committerAlexander Larsson <alexl@redhat.com>2009-12-17 12:09:06 +0100
commite5806d3a65f0b6dda23d4c4c12d53a5d09cc1f52 (patch)
treec6f71b15a0b10f88595281a82a4c8e7c7e2eabb8
parentaecc6b6abf1e1c313d2d4473902a2b9eb0e11827 (diff)
downloadnautilus-e5806d3a65f0b6dda23d4c4c12d53a5d09cc1f52.tar.gz
Add event for search bar getting focus
-rw-r--r--src/nautilus-search-bar.c27
-rw-r--r--src/nautilus-search-bar.h1
2 files changed, 27 insertions, 1 deletions
diff --git a/src/nautilus-search-bar.c b/src/nautilus-search-bar.c
index 8ed94ac89..b8d524003 100644
--- a/src/nautilus-search-bar.c
+++ b/src/nautilus-search-bar.c
@@ -37,6 +37,7 @@ struct NautilusSearchBarDetails {
enum {
ACTIVATE,
CANCEL,
+ FOCUS_IN,
LAST_SIGNAL
};
@@ -79,7 +80,16 @@ nautilus_search_bar_class_init (NautilusSearchBarClass *class)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
-
+
+ signals[FOCUS_IN] =
+ g_signal_new ("focus-in",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NautilusSearchBarClass, focus_in),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
signals[CANCEL] =
g_signal_new ("cancel",
G_TYPE_FROM_CLASS (class),
@@ -120,6 +130,19 @@ entry_activate_cb (GtkWidget *entry, NautilusSearchBar *bar)
}
}
+static gboolean
+focus_in_event_callback (GtkWidget *widget,
+ GdkEventFocus *event,
+ gpointer user_data)
+{
+ NautilusSearchBar *bar;
+
+ bar = NAUTILUS_SEARCH_BAR (user_data);
+
+ g_signal_emit (bar, signals[FOCUS_IN], 0);
+
+ return FALSE;
+}
static void
nautilus_search_bar_init (NautilusSearchBar *bar)
@@ -158,6 +181,8 @@ nautilus_search_bar_init (NautilusSearchBar *bar)
G_CALLBACK (entry_activate_cb), bar);
g_signal_connect (bar->details->entry, "icon-release",
G_CALLBACK (entry_icon_release_cb), bar);
+ g_signal_connect (bar->details->entry, "focus-in-event",
+ G_CALLBACK (focus_in_event_callback), bar);
gtk_widget_show (bar->details->entry);
}
diff --git a/src/nautilus-search-bar.h b/src/nautilus-search-bar.h
index 8b24fba3d..0bc7c9ad3 100644
--- a/src/nautilus-search-bar.h
+++ b/src/nautilus-search-bar.h
@@ -51,6 +51,7 @@ typedef struct {
void (* activate) (NautilusSearchBar *bar);
void (* cancel) (NautilusSearchBar *bar);
+ void (* focus_in) (NautilusSearchBar *bar);
} NautilusSearchBarClass;
GType nautilus_search_bar_get_type (void);