]> Pileus Git - ~andy/gtk/commitdiff
Get rid of the focus_gtk vfunc
authorMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jul 2011 03:04:00 +0000 (23:04 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jul 2011 03:04:00 +0000 (23:04 -0400)
Only GtkWidgetAccessible and GtkWindowAccessible had implementations,
and they could easily be converted to focus_event handlers.

gtk/a11y/gtkwidgetaccessible.c
gtk/a11y/gtkwidgetaccessible.h
gtk/a11y/gtkwindowaccessible.c

index 1826636e1d79024d2f64c7d5c1267faa62d209ce..c631da996ebc83d1f11cd772b8c0c96e70f8b9f0 100644 (file)
@@ -37,20 +37,18 @@ static void atk_component_interface_init (AtkComponentIface *iface);
 G_DEFINE_TYPE_WITH_CODE (GtkWidgetAccessible, _gtk_widget_accessible, GTK_TYPE_ACCESSIBLE,
                          G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
 
-/* Translate GtkWidget::focus-in/out-event to the focus_gtk vfunc */
+/* Translate GtkWidget::focus-in/out-event to AtkObject::focus-event */
 static gboolean
 focus_cb (GtkWidget     *widget,
           GdkEventFocus *event)
 {
-  GtkWidgetAccessible *accessible;
-  GtkWidgetAccessibleClass *klass;
+  AtkObject *obj;
 
-  accessible = GTK_WIDGET_ACCESSIBLE (gtk_widget_get_accessible (widget));
-  klass = GTK_WIDGET_ACCESSIBLE_GET_CLASS (accessible);
-  if (klass->focus_gtk)
-    return klass->focus_gtk (widget, event);
-  else
-    return FALSE;
+  obj = gtk_widget_get_accessible (widget);
+
+  g_signal_emit_by_name (obj, "focus-event", event->in);
+
+  return FALSE;
 }
 
 /* Translate GtkWidget property change notification to the notify_gtk vfunc */
@@ -99,8 +97,8 @@ map_cb (GtkWidget *widget)
 }
 
 static void
-focus_event (AtkObject *obj,
-             gboolean   focus_in)
+gtk_widget_accessible_focus_event (AtkObject *obj,
+                                   gboolean   focus_in)
 {
   AtkObject *focus_obj;
 
@@ -129,8 +127,6 @@ gtk_widget_accessible_initialize (AtkObject *obj,
   g_signal_connect (widget, "map", G_CALLBACK (map_cb), NULL);
   g_signal_connect (widget, "unmap", G_CALLBACK (map_cb), NULL);
 
-  g_signal_connect (accessible, "focus-event", G_CALLBACK (focus_event), NULL);
-
   obj->role = ATK_ROLE_UNKNOWN;
 }
 
@@ -512,25 +508,6 @@ gtk_widget_accessible_notify_gtk (GObject    *obj,
     atk_object_notify_state_change (atk_obj, ATK_STATE_VERTICAL, !value);
 }
 
-/* This function is the default implementation for the focus_gtk
- * vfunc which gets called for focus_in/out_event.
- *
- * It emits a focus-event signal on the GtkWidgetAccessible.
- */
-static gboolean
-gtk_widget_accessible_focus_gtk (GtkWidget     *widget,
-                                 GdkEventFocus *event)
-{
-  AtkObject* accessible;
-  gboolean return_val;
-  return_val = FALSE;
-
-  accessible = gtk_widget_get_accessible (widget);
-
-  g_signal_emit_by_name (accessible, "focus-event", event->in, &return_val);
-  return FALSE;
-}
-
 static AtkAttributeSet *
 gtk_widget_accessible_get_attributes (AtkObject *obj)
 {
@@ -553,7 +530,6 @@ _gtk_widget_accessible_class_init (GtkWidgetAccessibleClass *klass)
   GtkAccessibleClass *accessible_class = GTK_ACCESSIBLE_CLASS (klass);
 
   klass->notify_gtk = gtk_widget_accessible_notify_gtk;
-  klass->focus_gtk = gtk_widget_accessible_focus_gtk;
 
   accessible_class->connect_widget_destroyed = gtk_widget_accessible_connect_widget_destroyed;
 
@@ -564,6 +540,7 @@ _gtk_widget_accessible_class_init (GtkWidgetAccessibleClass *klass)
   class->get_index_in_parent = gtk_widget_accessible_get_index_in_parent;
   class->initialize = gtk_widget_accessible_initialize;
   class->get_attributes = gtk_widget_accessible_get_attributes;
+  class->focus_event = gtk_widget_accessible_focus_event;
 }
 
 static void
index 4b2059bd65d502f711c4e7ee813cd61b8e75e183..5d78d17d21141267fba2f97a997ae2394fadaf54 100644 (file)
@@ -48,11 +48,6 @@ struct _GtkWidgetAccessibleClass
    */
   void (*notify_gtk)                   (GObject             *object,
                                         GParamSpec          *pspec);
-  /*
-   * Signal handler for focus_in_event and focus_out_event signal on GTK widget
-   */
-  gboolean (*focus_gtk)                (GtkWidget           *widget,
-                                        GdkEventFocus       *event);
 
 };
 
index d7d35b151a6ad04c36148230ba1bf402c95c1555..815577bc4edf6e1f785bc0de911bb1f960ecd541 100644 (file)
@@ -58,16 +58,11 @@ G_DEFINE_TYPE_WITH_CODE (GtkWindowAccessible, _gtk_window_accessible, GTK_TYPE_C
                          G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
 
 
-static gboolean
-gtk_window_accessible_focus_gtk (GtkWidget     *widget,
-                                 GdkEventFocus *event)
+static void
+gtk_window_accessible_focus_event (AtkObject *obj,
+                                   gboolean   focus_in)
 {
-  AtkObject* obj;
-
-  obj = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (obj, ATK_STATE_ACTIVE, event->in);
-
-  return FALSE;
+  atk_object_notify_state_change (obj, ATK_STATE_ACTIVE, focus_in);
 }
 
 static void
@@ -321,7 +316,6 @@ _gtk_window_accessible_class_init (GtkWindowAccessibleClass *klass)
   GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
   AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
 
-  widget_class->focus_gtk = gtk_window_accessible_focus_gtk;
   widget_class->notify_gtk = gtk_window_accessible_notify_gtk;
 
   class->get_name = gtk_window_accessible_get_name;
@@ -329,6 +323,7 @@ _gtk_window_accessible_class_init (GtkWindowAccessibleClass *klass)
   class->ref_relation_set = gtk_window_accessible_ref_relation_set;
   class->ref_state_set = gtk_window_accessible_ref_state_set;
   class->initialize = gtk_window_accessible_initialize;
+  class->focus_event = gtk_window_accessible_focus_event;
 
   gtk_window_accessible_signals [ACTIVATE] =
     g_signal_new ("activate",