aboutsummaryrefslogtreecommitdiffstats
path: root/lib/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'lib/widgets')
-rw-r--r--lib/widgets/ephy-location-entry.c14
-rw-r--r--lib/widgets/ephy-location-entry.h1
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 */