diff options
author | Alexander Larsson <alexl@redhat.com> | 2009-12-17 12:09:06 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2009-12-17 12:09:06 +0100 |
commit | e5806d3a65f0b6dda23d4c4c12d53a5d09cc1f52 (patch) | |
tree | c6f71b15a0b10f88595281a82a4c8e7c7e2eabb8 | |
parent | aecc6b6abf1e1c313d2d4473902a2b9eb0e11827 (diff) | |
download | nautilus-e5806d3a65f0b6dda23d4c4c12d53a5d09cc1f52.tar.gz |
Add event for search bar getting focus
-rw-r--r-- | src/nautilus-search-bar.c | 27 | ||||
-rw-r--r-- | src/nautilus-search-bar.h | 1 |
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); |