#ifndef SPI_DEVICE_EVENT_CONTROLLER_H_
#define SPI_DEVICE_EVENT_CONTROLLER_H_
-#ifdef HAVE_X11
-#include <X11/Xlib.h>
-#endif
#include <dbus/dbus.h>
typedef struct _SpiDEController SpiDEController;
-#include "registry.h"
#include "de-types.h"
+#include "registry.h"
G_BEGIN_DECLS
-#define SPI_DEVICE_EVENT_CONTROLLER_TYPE (spi_device_event_controller_get_type ())
-#define SPI_DEVICE_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SPI_DEVICE_EVENT_CONTROLLER_TYPE, SpiDEController))
-#define SPI_DEVICE_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SPI_DEVICE_EVENT_CONTROLLER_TYPE, SpiDEControllerClass))
-#define SPI_IS_DEVICE_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SPI_DEVICE_EVENT_CONTROLLER_TYPE))
+#define SPI_DEVICE_EVENT_CONTROLLER_TYPE (spi_device_event_controller_get_type ())
+#define SPI_DEVICE_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SPI_DEVICE_EVENT_CONTROLLER_TYPE, SpiDEController))
+#define SPI_DEVICE_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SPI_DEVICE_EVENT_CONTROLLER_TYPE, SpiDEControllerClass))
+#define SPI_IS_DEVICE_EVENT_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SPI_DEVICE_EVENT_CONTROLLER_TYPE))
#define SPI_IS_DEVICE_EVENT_CONTROLLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SPI_DEVICE_EVENT_CONTROLLER_TYPE))
#define SPI_DEVICE_EVENT_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPI_DEVICE_EVENT_CONTROLLER_TYPE, SpiDEControllerClass))
-struct _SpiDEController {
- GObject parent;
- DBusConnection *bus;
- SpiRegistry *registry;
- GList *key_listeners;
- GList *mouse_listeners;
- GList *keygrabs_list;
- GQueue *message_queue;
- guint message_queue_idle;
+struct _SpiDEController
+{
+ GObject parent;
+ DBusConnection *bus;
+ GList *key_listeners;
+ GList *mouse_listeners;
+ GList *keygrabs_list;
+ GQueue *message_queue;
+ guint message_queue_idle;
+
+ guint mouse_mask_state;
+ gboolean have_mouse_event_listener;
};
-typedef enum {
+typedef enum
+{
SPI_DEVICE_TYPE_KBD,
- SPI_DEVICE_TYPE_MOUSE,
SPI_DEVICE_TYPE_LAST_DEFINED
} SpiDeviceTypeCategory;
-typedef struct {
+typedef struct
+{
char *bus_name;
char *path;
SpiDeviceTypeCategory type;
gulong types;
} DEControllerListener;
-typedef struct {
+typedef struct
+{
DEControllerListener listener;
- GSList *keys;
+ GSList *keys;
Accessibility_ControllerEventMask mask;
- Accessibility_EventListenerMode *mode;
+ Accessibility_EventListenerMode *mode;
} DEControllerKeyListener;
typedef struct
gboolean fix,
guint *modmask);
- guint (*mouse_check) (SpiDEController *controller,
- gint *x,
- gint *y,
- gboolean *moved);
+ guint (*mouse_check) (SpiDEController *controller,
+ gint *x,
+ gint *y,
+ gboolean *moved);
- gboolean (*register_global_keygrabs) (SpiDEController *controller,
- DEControllerKeyListener *key_listener);
+ gboolean (*register_global_keygrabs) (SpiDEController *controller,
+ DEControllerKeyListener *key_listener);
- void (*deregister_global_keygrabs) (SpiDEController *controller,
- DEControllerKeyListener *key_listener);
+ void (*deregister_global_keygrabs) (SpiDEController *controller,
+ DEControllerKeyListener *key_listener);
gboolean (*synth_keycode_press) (SpiDEController *controller,
- guint keycode);
+ guint keycode);
gboolean (*synth_keycode_release) (SpiDEController *controller,
- guint keycode);
+ guint keycode);
gboolean (*lock_modifiers) (SpiDEController *controller,
unsigned modifiers);
Accessibility_ControllerEventMask mod_mask);
void (*emit_modifier_event) (SpiDEController *controller,
- guint prev_mask,
- guint current_mask);
+ guint prev_mask,
+ guint current_mask);
void (*generate_mouse_event) (SpiDEController *controller,
gint x,
void (*finalize) (SpiDEController *controller);
} SpiDEControllerPlat;
-typedef struct {
+typedef struct
+{
GObjectClass parent_class;
SpiDEControllerPlat plat;
} SpiDEControllerClass;
-GType spi_device_event_controller_get_type (void);
-SpiDEController *spi_device_event_controller_new (SpiRegistry *registry,
- DBusConnection *bus);
+GType spi_device_event_controller_get_type (void);
-gboolean spi_clear_error_state (void);
-
-void spi_device_event_controller_start_poll_mouse (SpiRegistry *registry);
-void spi_device_event_controller_stop_poll_mouse (void);
+void spi_device_event_controller_start_poll_mouse (SpiDEController *dec);
+void spi_device_event_controller_stop_poll_mouse (SpiDEController *dec);
void spi_remove_device_listeners (SpiDEController *controller, const char *bus_name);
-SpiDEController *spi_registry_dec_new (SpiRegistry *reg, DBusConnection *bus);
+SpiDEController *spi_registry_dec_new (DBusConnection *bus);
gboolean
-spi_controller_notify_mouselisteners (SpiDEController *controller,
- const Accessibility_DeviceEvent *event);
+spi_controller_notify_keylisteners (SpiDEController *controller,
+ Accessibility_DeviceEvent *key_event,
+ dbus_bool_t is_system_global);
-gboolean
-spi_controller_notify_keylisteners (SpiDEController *controller,
- Accessibility_DeviceEvent *key_event,
- dbus_bool_t is_system_global);
-
-gboolean spi_controller_update_key_grabs (SpiDEController *controller,
- Accessibility_DeviceEvent *recv);
+gboolean spi_controller_update_key_grabs (SpiDEController *controller,
+ Accessibility_DeviceEvent *recv);
gboolean spi_dec_synth_keysym (SpiDEController *controller, long keysym);
-void spi_dec_dbus_emit(SpiDEController *controller, const char *interface, const char *name, const char *minor, int a1, int a2);
-
-#ifdef HAVE_X11
-void spi_dec_setup_x11 (SpiDEControllerClass *klass);
-#endif
-
-long ucs2keysym (long ucs);
-long keysym2ucs(long keysym);
+void spi_dec_dbus_emit (SpiDEController *controller, const char *interface, const char *name, const char *minor, int a1, int a2);
G_END_DECLS