1
0
mirror of https://github.com/brl/mutter.git synced 2025-07-06 02:49:52 +00:00
Commit Graph

5240 Commits

Author SHA1 Message Date
275ab901b0 window: set the corresponding client pointer on focused windows.
The client window determines the device pair that is used for
core protocol calls such as XQueryPointer(), so different
clients using the core protocol can be focused by different
devices simultaneously.
2012-11-03 19:47:36 -04:00
b3a9d1b39a core: enable XInput2 by default
This is nothing but the beginning, things work with a single
pointer/keyboard pair, but will be largely broken with multiple
devices interacting simultaneously, so we first need a policy
to establish a sensible behavior for extra pointer/keyboard
pairs.

the MUTTER_USE_CORE_DEVICES envvar has been added to force use
of Xlib core events for devices in order to check for regressions.
2012-11-03 19:47:36 -04:00
ac187476ae xi2: Workaround some bugs in XI2 passive grabs
XIAllMasterDevices doesn't quite work for key grabs, so only do
this at the moment for the Virtual Core Keyboard
2012-11-03 19:47:36 -04:00
f512da8c47 display: Ignore events from slave devices
Mutter only handles master devices.
2012-11-03 19:47:36 -04:00
2b47bffbee compositor: use meta_device_grab() for pointer/keyboard grabs
These happen invariably on the VCP/VCK pair.
2012-11-03 19:47:36 -04:00
8da5a01c92 screen: Use meta_device_pointer_set_window_cursor() for startup sequence.
At the moment feedback is only provided for the Virtual Core Pointer
2012-11-03 19:47:36 -04:00
25dc04440b device-map: Add meta_device_map_list_devices()
This function returns a list of the devices currently handled by
the device map.
2012-11-03 19:47:36 -04:00
7138cc7ea4 core: Make frame handle per-pointer cursors. 2012-11-03 19:47:36 -04:00
04cbdb4e23 workspace: use triggering device to focus the default window on workspace switch 2012-11-03 19:47:36 -04:00
e138726ded screen: make "monitor under pointer" logic work for several devices 2012-11-03 19:47:36 -04:00
84dfc98636 window: query the guessed pointer's modifiers on _NET_WM_MOVERESIZE 2012-11-03 19:47:36 -04:00
95247457ef display: Use the grab pointer for delayed window raising 2012-11-03 19:47:35 -04:00
9b1b7b71e2 keybindings: use the right device for querying the modifier mask. 2012-11-03 19:47:35 -04:00
4facab385d devices: make meta_device_pointer_query_position() return a boolean
like in XQueryPointer/XIQueryPointer, the return value tells whether
the pointer device is on the same screen than the passed window.
2012-11-03 19:47:35 -04:00
cc6dba2113 display: Update mouse mode focus code for XI2 2012-11-03 19:47:35 -04:00
5f6f67fb4e core: Make keyboard focus handling happen per-keyboard
MetaFocusInfo is a struct holding all necessary info, code has
been updated to use the per-keyboard focus info instead of the
old fields.
2012-11-03 19:47:35 -04:00
0d97e6adeb core: Add meta_device_keyboard_[gs]et_focus_window()
These functions are meant to replace X[GS]etInputFocus() calls across
the core.
2012-11-03 19:47:35 -04:00
991fdeb9dd display: Use meta_device_grab() for pointer active grabs. 2012-11-03 19:47:35 -04:00
df908e5256 keybindings: Use meta_device_grab() for keyboard active grabs 2012-11-03 19:47:35 -04:00
4b88c1c72a window: Use meta_device_pointer_warp() 2012-11-03 19:47:35 -04:00
33d4732bde core: Keep track of per pointer/keyboard grabs
There is now a MetaGrabInfo struct, holding all information about
an ongoing grab, there were unfortunately no means of making this
commit smaller, as things are too intertwined to separate it,

On places where it was most obvious, the correct device has been
used (in reaction to events, for example), in other parts, the
private API has been extended to include the MetaDevice (or device
ID for core.h functions), in other places, the virtual core
pointer/keyboard are used out of cluelessness.
2012-11-03 19:47:35 -04:00
2bbd82ba51 ui: Use input-events.h to translate XEvents to GdkEvents
This is the only use in the UI part of core functions not
exported via core.h, but this is sort of a hack within a hack,
and still better than doing the XInput2 vs core dance again.
2012-11-03 19:47:35 -04:00
13acafabe2 devices: Make MetaDevice/MetaDeviceMap partly public
MetaDevice is quite limited outside of the core, mostly useful
to represent a device, and get the paired one.
2012-11-03 19:47:34 -04:00
20537b9bb0 keybindings: Replace XGrabKey() with meta_device_map_grab_key() 2012-11-03 19:47:34 -04:00
373ef2e6f1 display: Replace XGrabButton with meta_device_map_grab_button() 2012-11-03 19:47:34 -04:00
93c7a22161 core: Add XInput2 device map implementation 2012-11-03 19:47:34 -04:00
9f06372e17 Replace XAllowEvents with meta_device_allow_events() 2012-11-03 19:37:53 -04:00
b3ecd268f6 Use meta_core_select_events() for input events 2012-11-03 19:37:52 -04:00
c32ee410e9 core: Add method to select events on a window
This function handles XInput2 vs core in input events.
2012-11-03 19:37:52 -04:00
3584f38d08 devices-xi2: Export function to translate event mask 2012-11-03 19:37:52 -04:00
712d2feb73 Add XInput2 input devices implementation 2012-11-03 19:37:52 -04:00
7b21bd8c6f window: use input event helper functions in grab operations. 2012-11-03 19:37:52 -04:00
c7c1053ade input-events: Add method to get the device for an event 2012-11-03 19:37:52 -04:00
d7bd7c9a40 core: Add device map object
It will contain the input devices available
2012-11-03 19:37:52 -04:00
96cdedf569 core: Add core devices implementation 2012-11-03 19:37:52 -04:00
8865578933 device: Add methods to pair devices 2012-11-03 19:37:52 -04:00
1a29f2cd0f Add pointer/keyboard abstract classes 2012-11-03 19:37:52 -04:00
324d9fdb14 compositor: Use helper functions for input events 2012-11-03 19:37:52 -04:00
190037cd72 keybindings: Use input event helper functions 2012-11-03 19:37:52 -04:00
a3ca52bf0f window: use input event helper functions on notify_focus() 2012-11-03 19:37:51 -04:00
29b5fd7fd7 display: get crossing/focus events details via helper functions 2012-11-03 19:37:51 -04:00
7a3d49b88e display: get button event coordinates with the helper functions 2012-11-03 19:37:51 -04:00
3e3ad71a68 display: get button events state from helper functions 2012-11-03 19:37:51 -04:00
1c3b695848 display: get button number from helper input event function 2012-11-03 19:37:51 -04:00
e1379441d4 display: Use helper function to get input events' timestamp 2012-11-03 19:37:51 -04:00
d75f43f504 display: Use helper functions for getting window/root in input events 2012-11-03 19:37:51 -04:00
de6dceb3ac display: Get the right window/time for input events 2012-11-03 19:37:51 -04:00
03ddc0cd94 display: separate input/non-input events handling in the event callback
We now use meta_input_event_get_type() to discern input events from the
others. This commit has involved plenty of indenting changes, so it's
better seen with git diff -b.
2012-11-03 19:37:51 -04:00
f440af2c02 core: Add helper code to handle input events
These will be used with every input event out there so they're
dealt with uniformly.
2012-11-03 19:37:51 -04:00
8b3ef16460 display: Add XInput2 variables in private struct 2012-11-03 19:37:51 -04:00