mirror of
https://github.com/brl/mutter.git
synced 2025-04-14 14:19:40 +00:00
backends/native: Use ClutterEvent getter methods
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153>
This commit is contained in:
parent
8f3e503c04
commit
dbbfd03436
@ -292,10 +292,10 @@ find_pending_event_by_keycode (gconstpointer a,
|
|||||||
gconstpointer b)
|
gconstpointer b)
|
||||||
{
|
{
|
||||||
const SlowKeysEventPending *pa = a;
|
const SlowKeysEventPending *pa = a;
|
||||||
const ClutterKeyEvent *ka = (ClutterKeyEvent *) pa->event;
|
const ClutterEvent *ea = pa->event;
|
||||||
const ClutterKeyEvent *kb = b;
|
const ClutterEvent *eb = b;
|
||||||
|
|
||||||
return kb->hardware_keycode - ka->hardware_keycode;
|
return clutter_event_get_key_code (eb) - clutter_event_get_key_code (ea);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GSource *
|
static GSource *
|
||||||
@ -321,9 +321,8 @@ start_slow_keys (ClutterEvent *event,
|
|||||||
MetaInputDeviceNative *device)
|
MetaInputDeviceNative *device)
|
||||||
{
|
{
|
||||||
SlowKeysEventPending *slow_keys_event;
|
SlowKeysEventPending *slow_keys_event;
|
||||||
ClutterKeyEvent *key_event = (ClutterKeyEvent *) event;
|
|
||||||
|
|
||||||
if (key_event->flags & CLUTTER_EVENT_FLAG_REPEATED)
|
if (clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_REPEATED)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
slow_keys_event = g_new0 (SlowKeysEventPending, 1);
|
slow_keys_event = g_new0 (SlowKeysEventPending, 1);
|
||||||
@ -397,7 +396,7 @@ start_bounce_keys (ClutterEvent *event,
|
|||||||
{
|
{
|
||||||
stop_bounce_keys (device);
|
stop_bounce_keys (device);
|
||||||
|
|
||||||
device->debounce_key = ((ClutterKeyEvent *) event)->hardware_keycode;
|
device->debounce_key = clutter_event_get_key_code (event);
|
||||||
device->debounce_timer =
|
device->debounce_timer =
|
||||||
timeout_source_new (device->seat_impl,
|
timeout_source_new (device->seat_impl,
|
||||||
get_debounce_delay (CLUTTER_INPUT_DEVICE (device)),
|
get_debounce_delay (CLUTTER_INPUT_DEVICE (device)),
|
||||||
@ -422,13 +421,13 @@ static gboolean
|
|||||||
debounce_key (ClutterEvent *event,
|
debounce_key (ClutterEvent *event,
|
||||||
MetaInputDeviceNative *device)
|
MetaInputDeviceNative *device)
|
||||||
{
|
{
|
||||||
return (device->debounce_key == ((ClutterKeyEvent *) event)->hardware_keycode);
|
return (device->debounce_key == clutter_event_get_key_code (event));
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
key_event_is_modifier (ClutterEvent *event)
|
key_event_is_modifier (ClutterEvent *event)
|
||||||
{
|
{
|
||||||
switch (event->key.keyval)
|
switch (clutter_event_get_key_symbol (event))
|
||||||
{
|
{
|
||||||
case XKB_KEY_Shift_L:
|
case XKB_KEY_Shift_L:
|
||||||
case XKB_KEY_Shift_R:
|
case XKB_KEY_Shift_R:
|
||||||
@ -694,16 +693,21 @@ static void
|
|||||||
handle_enablekeys_press (ClutterEvent *event,
|
handle_enablekeys_press (ClutterEvent *event,
|
||||||
MetaInputDeviceNative *device)
|
MetaInputDeviceNative *device)
|
||||||
{
|
{
|
||||||
if (event->key.keyval == XKB_KEY_Shift_L || event->key.keyval == XKB_KEY_Shift_R)
|
uint32_t keyval, time_ms;
|
||||||
|
|
||||||
|
keyval = clutter_event_get_key_symbol (event);
|
||||||
|
time_ms = clutter_event_get_time (event);
|
||||||
|
|
||||||
|
if (keyval == XKB_KEY_Shift_L || keyval == XKB_KEY_Shift_R)
|
||||||
{
|
{
|
||||||
start_toggle_slowkeys (device);
|
start_toggle_slowkeys (device);
|
||||||
|
|
||||||
if (event->key.time > device->last_shift_time + 15 * 1000 /* 15 secs */)
|
if (time_ms > device->last_shift_time + 15 * 1000 /* 15 secs */)
|
||||||
device->shift_count = 1;
|
device->shift_count = 1;
|
||||||
else
|
else
|
||||||
device->shift_count++;
|
device->shift_count++;
|
||||||
|
|
||||||
device->last_shift_time = event->key.time;
|
device->last_shift_time = time_ms;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -716,7 +720,11 @@ static void
|
|||||||
handle_enablekeys_release (ClutterEvent *event,
|
handle_enablekeys_release (ClutterEvent *event,
|
||||||
MetaInputDeviceNative *device)
|
MetaInputDeviceNative *device)
|
||||||
{
|
{
|
||||||
if (event->key.keyval == XKB_KEY_Shift_L || event->key.keyval == XKB_KEY_Shift_R)
|
uint32_t keyval;
|
||||||
|
|
||||||
|
keyval = clutter_event_get_key_symbol (event);
|
||||||
|
|
||||||
|
if (keyval == XKB_KEY_Shift_L || keyval == XKB_KEY_Shift_R)
|
||||||
{
|
{
|
||||||
stop_toggle_slowkeys (device);
|
stop_toggle_slowkeys (device);
|
||||||
if (device->shift_count >= 5)
|
if (device->shift_count >= 5)
|
||||||
@ -1027,7 +1035,8 @@ static void
|
|||||||
start_mousekeys_move (ClutterEvent *event,
|
start_mousekeys_move (ClutterEvent *event,
|
||||||
MetaInputDeviceNative *device)
|
MetaInputDeviceNative *device)
|
||||||
{
|
{
|
||||||
device->last_mousekeys_key = event->key.keyval;
|
device->last_mousekeys_key =
|
||||||
|
clutter_event_get_key_symbol (event);
|
||||||
|
|
||||||
if (device->move_mousekeys_timer != 0)
|
if (device->move_mousekeys_timer != 0)
|
||||||
return;
|
return;
|
||||||
@ -1039,7 +1048,7 @@ static gboolean
|
|||||||
handle_mousekeys_press (ClutterEvent *event,
|
handle_mousekeys_press (ClutterEvent *event,
|
||||||
MetaInputDeviceNative *device)
|
MetaInputDeviceNative *device)
|
||||||
{
|
{
|
||||||
if (!(event->key.flags & CLUTTER_EVENT_FLAG_SYNTHETIC))
|
if (!(clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_SYNTHETIC))
|
||||||
stop_mousekeys_move (device);
|
stop_mousekeys_move (device);
|
||||||
|
|
||||||
/* Do not handle mousekeys if NumLock is ON */
|
/* Do not handle mousekeys if NumLock is ON */
|
||||||
@ -1047,7 +1056,7 @@ handle_mousekeys_press (ClutterEvent *event,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* Button selection */
|
/* Button selection */
|
||||||
switch (event->key.keyval)
|
switch (clutter_event_get_key_symbol (event))
|
||||||
{
|
{
|
||||||
case XKB_KEY_KP_Divide:
|
case XKB_KEY_KP_Divide:
|
||||||
device->mousekeys_btn = CLUTTER_BUTTON_PRIMARY;
|
device->mousekeys_btn = CLUTTER_BUTTON_PRIMARY;
|
||||||
@ -1063,7 +1072,7 @@ handle_mousekeys_press (ClutterEvent *event,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Button events */
|
/* Button events */
|
||||||
switch (event->key.keyval)
|
switch (clutter_event_get_key_symbol (event))
|
||||||
{
|
{
|
||||||
case XKB_KEY_KP_Begin:
|
case XKB_KEY_KP_Begin:
|
||||||
case XKB_KEY_KP_5:
|
case XKB_KEY_KP_5:
|
||||||
@ -1086,7 +1095,7 @@ handle_mousekeys_press (ClutterEvent *event,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Pointer motion */
|
/* Pointer motion */
|
||||||
switch (event->key.keyval)
|
switch (clutter_event_get_key_symbol (event))
|
||||||
{
|
{
|
||||||
case XKB_KEY_KP_1:
|
case XKB_KEY_KP_1:
|
||||||
case XKB_KEY_KP_2:
|
case XKB_KEY_KP_2:
|
||||||
@ -1121,7 +1130,7 @@ handle_mousekeys_release (ClutterEvent *event,
|
|||||||
if (is_numlock_active (device))
|
if (is_numlock_active (device))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
switch (event->key.keyval)
|
switch (clutter_event_get_key_symbol (event))
|
||||||
{
|
{
|
||||||
case XKB_KEY_KP_0:
|
case XKB_KEY_KP_0:
|
||||||
case XKB_KEY_KP_1:
|
case XKB_KEY_KP_1:
|
||||||
@ -1163,10 +1172,13 @@ meta_input_device_native_process_kbd_a11y_event_in_impl (ClutterInputDevice *dev
|
|||||||
ClutterEvent *event)
|
ClutterEvent *event)
|
||||||
{
|
{
|
||||||
MetaInputDeviceNative *device_evdev = META_INPUT_DEVICE_NATIVE (device);
|
MetaInputDeviceNative *device_evdev = META_INPUT_DEVICE_NATIVE (device);
|
||||||
|
ClutterEventType event_type;
|
||||||
|
|
||||||
|
event_type = clutter_event_type (event);
|
||||||
|
|
||||||
if (device_evdev->a11y_flags & META_A11Y_KEYBOARD_ENABLED)
|
if (device_evdev->a11y_flags & META_A11Y_KEYBOARD_ENABLED)
|
||||||
{
|
{
|
||||||
if (event->type == CLUTTER_KEY_PRESS)
|
if (event_type == CLUTTER_KEY_PRESS)
|
||||||
handle_enablekeys_press (event, device_evdev);
|
handle_enablekeys_press (event, device_evdev);
|
||||||
else
|
else
|
||||||
handle_enablekeys_release (event, device_evdev);
|
handle_enablekeys_release (event, device_evdev);
|
||||||
@ -1174,10 +1186,10 @@ meta_input_device_native_process_kbd_a11y_event_in_impl (ClutterInputDevice *dev
|
|||||||
|
|
||||||
if (device_evdev->a11y_flags & META_A11Y_MOUSE_KEYS_ENABLED)
|
if (device_evdev->a11y_flags & META_A11Y_MOUSE_KEYS_ENABLED)
|
||||||
{
|
{
|
||||||
if (event->type == CLUTTER_KEY_PRESS &&
|
if (event_type == CLUTTER_KEY_PRESS &&
|
||||||
handle_mousekeys_press (event, device_evdev))
|
handle_mousekeys_press (event, device_evdev))
|
||||||
return TRUE; /* swallow event */
|
return TRUE; /* swallow event */
|
||||||
if (event->type == CLUTTER_KEY_RELEASE &&
|
if (event_type == CLUTTER_KEY_RELEASE &&
|
||||||
handle_mousekeys_release (event, device_evdev))
|
handle_mousekeys_release (event, device_evdev))
|
||||||
return TRUE; /* swallow event */
|
return TRUE; /* swallow event */
|
||||||
}
|
}
|
||||||
@ -1185,30 +1197,32 @@ meta_input_device_native_process_kbd_a11y_event_in_impl (ClutterInputDevice *dev
|
|||||||
if ((device_evdev->a11y_flags & META_A11Y_BOUNCE_KEYS_ENABLED) &&
|
if ((device_evdev->a11y_flags & META_A11Y_BOUNCE_KEYS_ENABLED) &&
|
||||||
(get_debounce_delay (device) != 0))
|
(get_debounce_delay (device) != 0))
|
||||||
{
|
{
|
||||||
if ((event->type == CLUTTER_KEY_PRESS) && debounce_key (event, device_evdev))
|
if ((event_type == CLUTTER_KEY_PRESS) && debounce_key (event, device_evdev))
|
||||||
{
|
{
|
||||||
notify_bounce_keys_reject (device_evdev);
|
notify_bounce_keys_reject (device_evdev);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (event->type == CLUTTER_KEY_RELEASE)
|
else if (event_type == CLUTTER_KEY_RELEASE)
|
||||||
start_bounce_keys (event, device_evdev);
|
{
|
||||||
|
start_bounce_keys (event, device_evdev);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((device_evdev->a11y_flags & META_A11Y_SLOW_KEYS_ENABLED) &&
|
if ((device_evdev->a11y_flags & META_A11Y_SLOW_KEYS_ENABLED) &&
|
||||||
(get_slow_keys_delay (device) != 0))
|
(get_slow_keys_delay (device) != 0))
|
||||||
{
|
{
|
||||||
if (event->type == CLUTTER_KEY_PRESS)
|
if (event_type == CLUTTER_KEY_PRESS)
|
||||||
return start_slow_keys (event, device_evdev);
|
return start_slow_keys (event, device_evdev);
|
||||||
else if (event->type == CLUTTER_KEY_RELEASE)
|
else if (event_type == CLUTTER_KEY_RELEASE)
|
||||||
return stop_slow_keys (event, device_evdev);
|
return stop_slow_keys (event, device_evdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device_evdev->a11y_flags & META_A11Y_STICKY_KEYS_ENABLED)
|
if (device_evdev->a11y_flags & META_A11Y_STICKY_KEYS_ENABLED)
|
||||||
{
|
{
|
||||||
if (event->type == CLUTTER_KEY_PRESS)
|
if (event_type == CLUTTER_KEY_PRESS)
|
||||||
return handle_stickykeys_press (event, device_evdev);
|
return handle_stickykeys_press (event, device_evdev);
|
||||||
else if (event->type == CLUTTER_KEY_RELEASE)
|
else if (event_type == CLUTTER_KEY_RELEASE)
|
||||||
return handle_stickykeys_release (event, device_evdev);
|
return handle_stickykeys_release (event, device_evdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ meta_seat_native_handle_event_post (ClutterSeat *seat,
|
|||||||
{
|
{
|
||||||
MetaSeatNative *seat_native = META_SEAT_NATIVE (seat);
|
MetaSeatNative *seat_native = META_SEAT_NATIVE (seat);
|
||||||
ClutterInputDevice *device = clutter_event_get_source_device (event);
|
ClutterInputDevice *device = clutter_event_get_source_device (event);
|
||||||
ClutterEventType event_type = event->type;
|
ClutterEventType event_type = clutter_event_type (event);
|
||||||
|
|
||||||
if (event_type == CLUTTER_PROXIMITY_OUT)
|
if (event_type == CLUTTER_PROXIMITY_OUT)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user