mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 03:20:46 -05:00
backend: Only show cursor when showing stage if pointer is present
This avoids showing the cursor when initially there is no pointer device, nor touchscreen device. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
This commit is contained in:
parent
b31a639378
commit
c8089f07a3
@ -456,6 +456,9 @@ on_device_added (ClutterSeat *seat,
|
|||||||
|
|
||||||
if (device_type == CLUTTER_TOUCHSCREEN_DEVICE)
|
if (device_type == CLUTTER_TOUCHSCREEN_DEVICE)
|
||||||
meta_cursor_tracker_set_pointer_visible (priv->cursor_tracker, FALSE);
|
meta_cursor_tracker_set_pointer_visible (priv->cursor_tracker, FALSE);
|
||||||
|
else if (device_type == CLUTTER_POINTER_DEVICE &&
|
||||||
|
!clutter_seat_has_touchscreen (seat))
|
||||||
|
meta_cursor_tracker_set_pointer_visible (priv->cursor_tracker, TRUE);
|
||||||
|
|
||||||
if (device_type == CLUTTER_TOUCHSCREEN_DEVICE ||
|
if (device_type == CLUTTER_TOUCHSCREEN_DEVICE ||
|
||||||
device_type == CLUTTER_TABLET_DEVICE ||
|
device_type == CLUTTER_TABLET_DEVICE ||
|
||||||
@ -566,8 +569,26 @@ static void
|
|||||||
on_stage_shown_cb (MetaBackend *backend)
|
on_stage_shown_cb (MetaBackend *backend)
|
||||||
{
|
{
|
||||||
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
|
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
|
||||||
|
ClutterSeat *seat = clutter_backend_get_default_seat (priv->clutter_backend);
|
||||||
|
g_autoptr (GList) devices = NULL;
|
||||||
|
const GList *l;
|
||||||
|
|
||||||
|
devices = clutter_seat_list_devices (seat);
|
||||||
|
for (l = devices; l; l = l->next)
|
||||||
|
{
|
||||||
|
ClutterInputDevice *device = l->data;
|
||||||
|
|
||||||
|
if (clutter_input_device_get_device_mode (device) ==
|
||||||
|
CLUTTER_INPUT_MODE_LOGICAL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (clutter_input_device_get_device_type (device) !=
|
||||||
|
CLUTTER_POINTER_DEVICE)
|
||||||
|
continue;
|
||||||
|
|
||||||
meta_cursor_tracker_set_pointer_visible (priv->cursor_tracker, TRUE);
|
meta_cursor_tracker_set_pointer_visible (priv->cursor_tracker, TRUE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user