2008-11-18 Emmanuele Bassi <ebassi@linux.intel.com>
authorEmmanuele Bassi <ebassi@openedhand.com>
Tue, 18 Nov 2008 14:06:33 +0000 (14:06 +0000)
committerEmmanuele Bassi <ebassi@openedhand.com>
Tue, 18 Nov 2008 14:06:33 +0000 (14:06 +0000)
* 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.

ChangeLog
clutter-gtk/gtk-clutter-embed.c

index a3dade6..5c633d0 100644 (file)
--- 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:
index 899c0ae..44c339f 100644 (file)
@@ -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;
 }