From a64191ed77ea2dcbbdc39502fe55742c0ddaa6da Mon Sep 17 00:00:00 2001 From: billh Date: Mon, 24 Feb 2003 20:05:55 +0000 Subject: [PATCH] Fixes for 106932, and added support for synthesis of mouse buttons 4 and 5. git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@404 e2bd861d-eb25-0410-b326-f6ed22b6b98c --- ChangeLog | 32 ++++++++++++ cspi/spi_text.c | 10 ++-- libspi/application.c | 106 -------------------------------------- libspi/value.c | 1 + registryd/deviceeventcontroller.c | 18 ++++--- registryd/registry.h | 1 + 6 files changed, 51 insertions(+), 117 deletions(-) diff --git a/ChangeLog b/ChangeLog index b581181..e97d8c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,35 @@ +2003-02-24 Bill Haneman + + * cspi/spi_text.c: + (get_accessible_text_boundary_type): + Move default return value to (new) default case in switch. + (get_accessible_text_clip_type): + Move default return value to (new) default case in switch. + + * libspi/application.c: + (lookup_toolkit_event_for_name, reverse_lookup_name_for_toolkit_event): + Remove unused methods. + (impl_accessibility_application_register_object_event_listener): + Remove unused methods. + + * libspi/value.c: + Added #include of . + + * registryd/deviceeventcontroller.c: + (spi_dec_ungrab_mouse): Bracketed with #ifdefs, since + we don't currently use this method. + (spi_dec_init_mouse_listener): Don't call XkbGetMap unless + have_xkb is TRUE. + (impl_generate_key_event): + Remove unused variables. + (impl_generate_mouse_event): + Initialize button to zero, just in case we get an invalid + input. Added support for mouse buttons 4 and 5. + (spi_device_event_controller_new): + Removed unused variable declaration for 'private'. + (registry.h): + Added #include of + 2003-02-14 Padraig O'Briain * configure.in: Update to work when X is not installed in expected diff --git a/cspi/spi_text.c b/cspi/spi_text.c index 7579bd0..ab13b04 100644 --- a/cspi/spi_text.c +++ b/cspi/spi_text.c @@ -57,9 +57,10 @@ get_accessible_text_boundary_type (AccessibleTextBoundaryType type) /* Fixme */ return Accessibility_TEXT_BOUNDARY_CHAR; break; + default: + /* FIXME */ + return Accessibility_TEXT_BOUNDARY_CHAR; } - /* FIXME */ - return Accessibility_TEXT_BOUNDARY_CHAR; } static Accessibility_TEXT_CLIP_TYPE @@ -73,11 +74,12 @@ get_accessible_text_clip_type (AccessibleTextClipType type) case SPI_TEXT_CLIP_MIN: return Accessibility_TEXT_CLIP_MIN; break; - case SPI_TEXT_CLIP_MAX: + case SPI_TEXT_CLIP_MAX: return Accessibility_TEXT_CLIP_MAX; break; + default: + return Accessibility_TEXT_CLIP_BOTH; } - return Accessibility_TEXT_CLIP_BOTH; } static AccessibleTextRange ** diff --git a/libspi/application.c b/libspi/application.c index 7e6d77e..0667885 100644 --- a/libspi/application.c +++ b/libspi/application.c @@ -43,24 +43,6 @@ static void notify_listeners (GList *listeners, SpiAccessible *source, Accessibility_Event *e); -static const char *reverse_lookup_name_for_toolkit_event (char *toolkit_name); - -static const char * -lookup_toolkit_event_for_name (const char *generic_name) -{ - char *toolkit_specific_name; - SpiApplicationClass *klass = g_type_class_peek (SPI_APPLICATION_TYPE); -#ifdef SPI_DEBUG - fprintf (stderr, "looking for %s in hash table.\n", generic_name); -#endif - toolkit_specific_name = - (char *) g_hash_table_lookup (klass->toolkit_event_names, generic_name); -#ifdef SPI_DEBUG - fprintf (stderr, "generic event %s converted to %s\n", generic_name, toolkit_specific_name); -#endif - return toolkit_specific_name; -} - /* * Implemented GObject::finalize */ @@ -146,54 +128,6 @@ get_atk_object_ref (GObject *gobject) } static gboolean -spi_application_object_event_listener (GSignalInvocationHint *signal_hint, - guint n_param_values, - const GValue *param_values, - gpointer data) -{ - Accessibility_Event e; - AtkObject *aobject; - SpiAccessible *source; - GSignalQuery signal_query; - gchar *event_name; - const char *generic_name; - - g_return_val_if_fail (the_app != NULL, FALSE); - - g_signal_query (signal_hint->signal_id, &signal_query); - - /* TODO: move GTK reference out of app.c into bridge */ - event_name = g_strdup_printf ("Gtk:%s:%s", - g_type_name (signal_query.itype), - signal_query.signal_name); - - generic_name = reverse_lookup_name_for_toolkit_event (event_name); - - fprintf (stderr, "Received (object) signal %s maps to '%s'\n", - event_name, generic_name); - - g_free (event_name); - - g_return_val_if_fail (generic_name, FALSE); - - aobject = get_atk_object_ref (g_value_get_object (param_values + 0)); - - source = spi_accessible_new (aobject); - e.type = CORBA_string_dup (generic_name); - e.source = CORBA_OBJECT_NIL; - e.detail1 = 0; - e.detail2 = 0; - spi_init_any_nil (&e.any_data); - notify_listeners (the_app->toolkit_listeners, source, &e); - - bonobo_object_unref (BONOBO_OBJECT (source)); - - g_object_unref (G_OBJECT (aobject)); - - return TRUE; -} - -static gboolean spi_application_toolkit_event_listener (GSignalInvocationHint *signal_hint, guint n_param_values, const GValue *param_values, @@ -255,30 +189,6 @@ impl_accessibility_application_register_toolkit_event_listener (PortableServer_S } static void -impl_accessibility_application_register_object_event_listener (PortableServer_Servant servant, - Accessibility_EventListener listener, - const CORBA_char *event_name, - CORBA_Environment *ev) -{ - guint spi_listener_id = 0; - const char *toolkit_specific_event_name = - lookup_toolkit_event_for_name (event_name); - if (toolkit_specific_event_name) - { - spi_listener_id = - atk_add_global_event_listener (spi_application_object_event_listener, - toolkit_specific_event_name); - the_app->toolkit_listeners = g_list_append (the_app->toolkit_listeners, - CORBA_Object_duplicate (listener, ev)); - } -#ifdef SPI_DEBUG - fprintf (stderr, "registered %d for object events named: %s\n", - spi_listener_id, - event_name); -#endif -} - -static void notify_listeners (GList *listeners, SpiAccessible *source, Accessibility_Event *e) { GList *l; @@ -301,22 +211,6 @@ notify_listeners (GList *listeners, SpiAccessible *source, Accessibility_Event * } } -static const char * -reverse_lookup_name_for_toolkit_event (char *toolkit_specific_name) -{ - const char *generic_name; - SpiApplicationClass *klass = g_type_class_peek (SPI_APPLICATION_TYPE); -#ifdef SPI_DEBUG - fprintf (stderr, "(reverse lookup) looking for %s in hash table.\n", toolkit_specific_name); -#endif - generic_name = - (const char *) g_hash_table_lookup (klass->generic_event_names, toolkit_specific_name); -#ifdef SPI_DEBUG - fprintf (stderr, "toolkit event %s converted to %s\n", toolkit_specific_name, generic_name); -#endif - return generic_name; -} - static void init_toolkit_names (GHashTable **generic_event_names, GHashTable **toolkit_event_names) { diff --git a/libspi/value.c b/libspi/value.c index c2eade5..412beeb 100644 --- a/libspi/value.c +++ b/libspi/value.c @@ -23,6 +23,7 @@ /* value.c : implements the Value interface */ #include +#include #include #include diff --git a/registryd/deviceeventcontroller.c b/registryd/deviceeventcontroller.c index 9171c5b..ef04e36 100644 --- a/registryd/deviceeventcontroller.c +++ b/registryd/deviceeventcontroller.c @@ -446,6 +446,7 @@ spi_dec_poll_mouse_moving (gpointer data) } } +#ifdef WE_NEED_UGRAB_MOUSE static int spi_dec_ungrab_mouse (gpointer data) { @@ -457,6 +458,7 @@ spi_dec_ungrab_mouse (gpointer data) } return FALSE; } +#endif static void spi_dec_init_mouse_listener (SpiRegistry *registry) @@ -1000,7 +1002,6 @@ spi_controller_register_with_devices (SpiDEController *controller) g_object_get_qdata (G_OBJECT (controller), spi_dec_private_quark); /* FIXME: should check for extension first! */ XTestGrabControl (spi_get_display (), True); - priv->xkb_desc = XkbGetMap (spi_get_display (), 0, XkbUseCoreKbd); /* calls to device-specific implementations and routines go here */ /* register with: keyboard hardware code handler */ @@ -1012,10 +1013,12 @@ spi_controller_register_with_devices (SpiDEController *controller) &priv->xkb_base_error_code, NULL, NULL); if (priv->have_xkb) { + priv->xkb_desc = XkbGetMap (spi_get_display (), 0, XkbUseCoreKbd); XkbSelectEvents (spi_get_display (), XkbUseCoreKbd, XkbStateNotifyMask, XkbStateNotifyMask); } + gdk_window_add_filter (NULL, global_filter_fn, controller); gdk_window_set_events (gdk_get_default_root_window (), @@ -1790,11 +1793,7 @@ impl_generate_keyboard_event (PortableServer_Servant servant, { SpiDEController *controller = SPI_DEVICE_EVENT_CONTROLLER (bonobo_object (servant)); - DEControllerPrivateData *priv; long key_synth_code; - unsigned int slow_keys_delay; - unsigned int press_time; - unsigned int release_time; #ifdef SPI_DEBUG fprintf (stderr, "synthesizing keystroke %ld, type %d\n", @@ -1847,7 +1846,7 @@ impl_generate_mouse_event (PortableServer_Servant servant, const CORBA_char *eventName, CORBA_Environment *ev) { - int button; + int button = 0; gboolean error = FALSE; Display *display = spi_get_display (); #ifdef SPI_DEBUG @@ -1869,6 +1868,12 @@ impl_generate_mouse_event (PortableServer_Servant servant, case '3': button = 3; break; + case '4': + button = 4; + break; + case '5': + button = 5; + break; default: error = TRUE; } @@ -2005,7 +2010,6 @@ spi_device_event_controller_new (SpiRegistry *registry) { SpiDEController *retval = g_object_new ( SPI_DEVICE_EVENT_CONTROLLER_TYPE, NULL); - DEControllerPrivateData *private; retval->registry = SPI_REGISTRY (bonobo_object_ref ( BONOBO_OBJECT (registry))); diff --git a/registryd/registry.h b/registryd/registry.h index 1d13bff..597f1ee 100644 --- a/registryd/registry.h +++ b/registryd/registry.h @@ -25,6 +25,7 @@ #define SPI_REGISTRY_H_ #include +#include #include typedef struct _SpiRegistry SpiRegistry; -- 2.7.4