diff options
Diffstat (limited to 'lib/widgets')
-rw-r--r-- | lib/widgets/ephy-location-entry.c | 14 | ||||
-rw-r--r-- | lib/widgets/ephy-location-entry.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/widgets/ephy-location-entry.c b/lib/widgets/ephy-location-entry.c index 15bcac979..0db0694ee 100644 --- a/lib/widgets/ephy-location-entry.c +++ b/lib/widgets/ephy-location-entry.c @@ -95,6 +95,7 @@ static gpointer gtk_hbox_class; */ enum EphyLocationEntrySignalsEnum { ACTIVATED, + FINISHED, LAST_SIGNAL }; static gint EphyLocationEntrySignals[LAST_SIGNAL]; @@ -123,6 +124,15 @@ ephy_location_entry_class_init (EphyLocationEntryClass *klass) 2, G_TYPE_STRING, G_TYPE_STRING); + EphyLocationEntrySignals[FINISHED] = g_signal_new ( + "finished", G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_FIRST | G_SIGNAL_RUN_LAST | G_SIGNAL_RUN_CLEANUP, + G_STRUCT_OFFSET (EphyLocationEntryClass, finished), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0, + G_TYPE_NONE); } static gboolean @@ -130,6 +140,8 @@ location_focus_out_cb (GtkWidget *widget, GdkEventFocus *event, EphyLocationEntr { w->priv->editing = FALSE; + g_signal_emit (w, EphyLocationEntrySignals[FINISHED], 0); + return FALSE; } @@ -435,6 +447,8 @@ ephy_location_entry_activate_cb (GtkEntry *entry, EphyLocationEntry *w) w->priv->editing = FALSE; g_signal_emit (w, EphyLocationEntrySignals[ACTIVATED], 0, target, content); + g_signal_emit (w, EphyLocationEntrySignals[FINISHED], 0); + g_free (content); } diff --git a/lib/widgets/ephy-location-entry.h b/lib/widgets/ephy-location-entry.h index 5a7014bae..1b9f37f25 100644 --- a/lib/widgets/ephy-location-entry.h +++ b/lib/widgets/ephy-location-entry.h @@ -52,6 +52,7 @@ struct _EphyLocationEntryClass void (*activated) (EphyLocationEntry *w, const char *content, const char *target); + void (*finished) (EphyLocationEntry *w); }; /* Remember: fields are public read-only */ |