예제 #1
0
static void
on_evdev_key_pressed (guint32  time_,
                      guint32  key,
                      guint32  state,
                      gpointer data)
{
  Rebinder *rebinder = data;
  Binding *binding;

  if (!state)
    {
      fakekey_release (rebinder->fake);
      return;
    }

  /* don't look at events with keycodes < 255, they go through X */
  if (key <= 255)
    return;

  /* Custom bindings (from rebinder.conf) */
  binding = find_binding_by_keycode (rebinder, key);

  /* Try to find the keycode in the static binding pool */
  if (binding == NULL)
    binding = find_evdev_binding_by_keycode (key);

  if (binding == NULL)
    return;

  MEX_NOTE (EVDEV, "Sending keysym 0x%08x (%s)", (int) binding->keysym,
            XKeysymToString (binding->keysym));

  fakekey_press_keysym (rebinder->fake, binding->keysym,  0);
}
예제 #2
0
void
fvkbd_key_send_xkeysym(KeySym sym)
{
	gint ret;

	ret = fakekey_press_keysym(get_fakekey_instance(), sym, 0);
	fakekey_release(get_fakekey_instance());
	DBG("action: send sym: %x, result:%d\n", (unsigned int)sym, ret);
}