summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2015-12-16 19:26:21 +0100
committerCarlos Garnacho <carlosg@gnome.org>2015-12-16 19:47:07 +0100
commit4a7589ea1254938536b3c891ddae8c35ff1dfcb1 (patch)
treea56eb73c53ce2efaf1de3cb51a19585200857794
parent0f98f225d1b81e0c8bd0bbcf901ef8368bdde096 (diff)
downloadgtk+-4a7589ea1254938536b3c891ddae8c35ff1dfcb1.tar.gz
GtkWindow: Avoid GdkDeviceManager API
We can iterate over the seats' pointers, instead of over master pointers.
-rw-r--r--gtk/gtkwindow.c28
1 files changed, 11 insertions, 17 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 802904c8d0..ce8d57c734 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -8124,35 +8124,29 @@ do_focus_change (GtkWidget *widget,
static gboolean
gtk_window_has_mnemonic_modifier_pressed (GtkWindow *window)
{
- GList *devices, *d;
- GdkDeviceManager *device_manager;
+ GList *seats, *s;
gboolean retval = FALSE;
if (!window->priv->mnemonic_modifier)
return FALSE;
- device_manager = gdk_display_get_device_manager (gtk_widget_get_display (GTK_WIDGET (window)));
- devices = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_MASTER);
+ seats = gdk_display_list_seats (gtk_widget_get_display (GTK_WIDGET (window)));
- for (d = devices; d; d = d->next)
+ for (s = seats; s; s = s->next)
{
- GdkDevice *dev = d->data;
+ GdkDevice *dev = gdk_seat_get_pointer (s->data);
+ GdkModifierType mask;
- if (gdk_device_get_source (dev) == GDK_SOURCE_MOUSE)
+ gdk_device_get_state (dev, _gtk_widget_get_window (GTK_WIDGET (window)),
+ NULL, &mask);
+ if (window->priv->mnemonic_modifier == (mask & gtk_accelerator_get_default_mod_mask ()))
{
- GdkModifierType mask;
-
- gdk_device_get_state (dev, _gtk_widget_get_window (GTK_WIDGET (window)),
- NULL, &mask);
- if (window->priv->mnemonic_modifier == (mask & gtk_accelerator_get_default_mod_mask ()))
- {
- retval = TRUE;
- break;
- }
+ retval = TRUE;
+ break;
}
}
- g_list_free (devices);
+ g_list_free (seats);
return retval;
}