mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 11:00:54 -05:00
device-manager-evdev: Set and unset the stage for the main seat too
When no input devices are available on startup the device manager might be fast
enough to be constructed so that no default stage is set yet, and thus when
main seat virtual devices are created they won't have a proper stage set.
If then we plug a real device, the events that an input manager could generate
won't be associated to any stage and thus won't be processed.
We need then ensure that when we update the stage for the device manager we
(un)associate it also to the main seat devices.
(cherry picked from commit d7bdc1591f
)
This commit is contained in:
parent
2a6782dc10
commit
72965aaaf0
@ -2070,6 +2070,8 @@ clutter_device_manager_evdev_stage_added_cb (ClutterStageManager *manager,
|
||||
priv->stage = stage;
|
||||
|
||||
/* Set the stage of any devices that don't already have a stage */
|
||||
clutter_seat_evdev_set_stage (priv->main_seat, stage);
|
||||
|
||||
for (l = priv->seats; l; l = l->next)
|
||||
{
|
||||
ClutterSeatEvdev *seat = l->data;
|
||||
@ -2095,6 +2097,8 @@ clutter_device_manager_evdev_stage_removed_cb (ClutterStageManager *manager,
|
||||
|
||||
/* Remove the stage of any input devices that were pointing to this
|
||||
stage so we don't send events to invalid stages */
|
||||
clutter_seat_evdev_set_stage (priv->main_seat, NULL);
|
||||
|
||||
for (l = priv->seats; l; l = l->next)
|
||||
{
|
||||
ClutterSeatEvdev *seat = l->data;
|
||||
|
Loading…
Reference in New Issue
Block a user