static GHashTable *listener_list = NULL;
static gint listener_idx = 1;
static GSList *key_listener_list = NULL;
-static guint key_snooper_id = 0;
typedef struct _GailUtilListenerInfo GailUtilListenerInfo;
typedef struct _GailKeyEventInfo GailKeyEventInfo;
guint key;
} KeyEventListener;
-static gint
-gail_key_snooper (GtkWidget *the_widget,
- GdkEventKey *event,
- gpointer data)
+gboolean
+_gail_util_key_snooper (GtkWidget *the_widget,
+ GdkEventKey *event)
{
GSList *l;
AtkKeyEventStruct *atk_event;
static guint key = 0;
KeyEventListener *listener;
- if (key_snooper_id == 0)
- key_snooper_id = gtk_key_snooper_install (gail_key_snooper, NULL);
-
key++;
listener = g_slice_new0 (KeyEventListener);
break;
}
}
-
- if (key_listener_list == NULL)
- {
- gtk_key_snooper_remove (key_snooper_id);
- key_snooper_id = 0;
- }
}
static AtkObject *
void _gail_util_install (void);
+gboolean _gail_util_key_snooper (GtkWidget *the_widget,
+ GdkEventKey *event);
+
G_END_DECLS
#endif /* __GAIL_UTIL_H__ */
#include "gtkwidgetprivate.h"
#include "gtkwindowprivate.h"
+#include "a11y/gailutil.h"
/* Private type definitions
*/
GSList *slist;
gint return_val = FALSE;
+ return_val = _gail_util_key_snooper (grab_widget, event);
+
slist = key_snoopers;
while (slist && !return_val)
{