summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2008-11-18 14:06:33 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2008-11-18 14:06:33 +0000
commit70f4b0cbd568dfa265484a03be3bd08ad15ed12e (patch)
treecc9d28199e31c62e5e9a3b9641862b0c232e4deb
parent4ff52b7adfa037f146089d2831fb7514f233a195 (diff)
downloadclutter-gtk-70f4b0cbd568dfa265484a03be3bd08ad15ed12e.tar.gz
2008-11-18 Emmanuele Bassi <ebassi@linux.intel.com>
* clutter-gtk/gtk-clutter-embed.c: (gtk_clutter_embed_focus_in), (gtk_clutter_embed_focus_out), (gtk_clutter_embed_class_init): Emit the ::activate and ::deactivate signals on the stage when we get a ::focus-in-event and a ::focus-out-event on the ClutterEmbed widget, respectively. Thanks to Jerry Yu.
-rw-r--r--ChangeLog10
-rw-r--r--clutter-gtk/gtk-clutter-embed.c14
2 files changed, 24 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a3dade6..5c633d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-18 Emmanuele Bassi <ebassi@linux.intel.com>
+
+ * clutter-gtk/gtk-clutter-embed.c:
+ (gtk_clutter_embed_focus_in),
+ (gtk_clutter_embed_focus_out),
+ (gtk_clutter_embed_class_init): Emit the ::activate and
+ ::deactivate signals on the stage when we get a ::focus-in-event
+ and a ::focus-out-event on the ClutterEmbed widget, respectively.
+ Thanks to Jerry Yu.
+
2008-11-13 Emmanuele Bassi <ebassi@linux.intel.com>
* clutter-gtk/gtk-clutter-viewport.c:
diff --git a/clutter-gtk/gtk-clutter-embed.c b/clutter-gtk/gtk-clutter-embed.c
index 899c0ae..44c339f 100644
--- a/clutter-gtk/gtk-clutter-embed.c
+++ b/clutter-gtk/gtk-clutter-embed.c
@@ -323,11 +323,24 @@ gtk_clutter_embed_map_event (GtkWidget *widget,
}
static gboolean
+gtk_clutter_embed_focus_in (GtkWidget *widget,
+ GdkEventFocus *event)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (widget)->priv;
+
+ g_signal_emit_by_name (priv->stage, "activate");
+
+ return FALSE;
+}
+
+static gboolean
gtk_clutter_embed_focus_out (GtkWidget *widget,
GdkEventFocus *event)
{
GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (widget)->priv;
+ g_signal_emit_by_name (priv->stage, "deactivate");
+
/* give back key focus to the stage */
clutter_stage_set_key_focus (CLUTTER_STAGE (priv->stage), NULL);
@@ -380,6 +393,7 @@ gtk_clutter_embed_class_init (GtkClutterEmbedClass *klass)
widget_class->motion_notify_event = gtk_clutter_embed_motion_notify_event;
widget_class->expose_event = gtk_clutter_embed_expose_event;
widget_class->map_event = gtk_clutter_embed_map_event;
+ widget_class->focus_in_event = gtk_clutter_embed_focus_in;
widget_class->focus_out_event = gtk_clutter_embed_focus_out;
widget_class->scroll_event = gtk_clutter_embed_scroll_event;
}