static void spi_controller_register_with_devices (SpiDEController *controller);
static gboolean spi_controller_update_key_grabs (SpiDEController *controller,
Accessibility_DeviceEvent *recv);
-static void spi_controller_register_device_listener (SpiDEController *controller,
+static gboolean spi_controller_register_device_listener (SpiDEController *controller,
DEControllerListener *l,
CORBA_Environment *ev);
static void spi_device_event_controller_forward_key_event (SpiDEController *controller,
if (key_listener->keys->_length == 0) /* special case means AnyKey/AllKeys */
{
grab_mask.key_val = AnyKey;
+#ifdef SPI_DEBUG
+ fprintf (stderr, "AnyKey grab!"); */
+#endif
process_cb (controller, &grab_mask);
}
else
}
}
-static void
+static gboolean
spi_controller_register_global_keygrabs (SpiDEController *controller,
DEControllerKeyListener *key_listener)
{
handle_keygrab (controller, key_listener, _register_keygrab);
- spi_controller_update_key_grabs (controller, NULL);
+ return spi_controller_update_key_grabs (controller, NULL);
}
static void
spi_controller_update_key_grabs (controller, NULL);
}
-static void
+static gboolean
spi_controller_register_device_listener (SpiDEController *controller,
DEControllerListener *listener,
CORBA_Environment *ev)
key_listener);
if (key_listener->mode->global)
{
- spi_controller_register_global_keygrabs (controller, key_listener);
+ return spi_controller_register_global_keygrabs (controller, key_listener);
}
+ else
+ return TRUE;
break;
default:
break;
}
+ return FALSE;
}
static GdkFilterReturn
x_default_error_handler = XSetErrorHandler (_spi_controller_device_error_handler);
}
+#define SPI_KEYEVENT_DEBUG
static gboolean
spi_key_set_contains_key (Accessibility_KeySet *key_set,
const Accessibility_DeviceEvent *key_event)
case XK_Return:
key_event.event_string = CORBA_string_dup ("Return");
break;
+ case XK_Home:
+ key_event.event_string = CORBA_string_dup ("Home");
+ break;
+ case XK_Page_Down:
+ key_event.event_string = CORBA_string_dup ("Page_Down");
+ break;
+ case XK_Page_Up:
+ key_event.event_string = CORBA_string_dup ("Page_Up");
+ break;
+ case XK_F1:
+ key_event.event_string = CORBA_string_dup ("F1");
+ break;
+ case XK_F2:
+ key_event.event_string = CORBA_string_dup ("F2");
+ break;
+ case XK_F3:
+ key_event.event_string = CORBA_string_dup ("F3");
+ break;
+ case XK_F4:
+ key_event.event_string = CORBA_string_dup ("F4");
+ break;
+ case XK_F5:
+ key_event.event_string = CORBA_string_dup ("F5");
+ break;
+ case XK_F6:
+ key_event.event_string = CORBA_string_dup ("F6");
+ break;
+ case XK_F7:
+ key_event.event_string = CORBA_string_dup ("F7");
+ break;
+ case XK_F8:
+ key_event.event_string = CORBA_string_dup ("F8");
+ break;
+ case XK_F9:
+ key_event.event_string = CORBA_string_dup ("F9");
+ break;
+ case XK_F10:
+ key_event.event_string = CORBA_string_dup ("F10");
+ break;
+ case XK_F11:
+ key_event.event_string = CORBA_string_dup ("F11");
+ break;
+ case XK_F12:
+ key_event.event_string = CORBA_string_dup ("F12");
+ break;
+ case XK_End:
+ key_event.event_string = CORBA_string_dup ("End");
+ break;
+ case XK_Escape:
+ key_event.event_string = CORBA_string_dup ("Escape");
+ break;
+ case XK_Up:
+ key_event.event_string = CORBA_string_dup ("Up");
+ break;
+ case XK_Down:
+ key_event.event_string = CORBA_string_dup ("Down");
+ break;
+ case XK_Left:
+ key_event.event_string = CORBA_string_dup ("Left");
+ break;
+ case XK_Right:
+ key_event.event_string = CORBA_string_dup ("Right");
+ break;
default:
if (XLookupString (x_key_event, cbuf, cbuf_bytes, &keysym, NULL) > 0)
{
* CORBA Accessibility::DEController::registerKeystrokeListener
* method implementation
*/
-static void
+static CORBA_boolean
impl_register_keystroke_listener (PortableServer_Servant servant,
const Accessibility_DeviceEventListener l,
const Accessibility_KeySet *keys,
(void *) l, (unsigned long) mask);
#endif
dec_listener = spi_dec_key_listener_new (l, keys, mask, type, mode, ev);
- spi_controller_register_device_listener (
- controller, (DEControllerListener *) dec_listener, ev);
+ return spi_controller_register_device_listener (
+ controller, (DEControllerListener *) dec_listener, ev);
}