+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:
}
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);
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;
}