mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-19 06:14:03 +00:00
app: change the list of available devices to something that makes sense
Include the client pointer, its slaves, and all floating devices.
This commit is contained in:
parent
b3ac92d0d6
commit
9e7d1206ac
|
@ -343,6 +343,7 @@ gimp_device_manager_display_opened (GdkDisplayManager *disp_manager,
|
|||
{
|
||||
GimpDeviceManagerPrivate *private = GET_PRIVATE (manager);
|
||||
GdkDeviceManager *gdk_manager;
|
||||
GdkDevice *device;
|
||||
GList *devices;
|
||||
GList *list;
|
||||
const gchar *display_name;
|
||||
|
@ -362,13 +363,16 @@ gimp_device_manager_display_opened (GdkDisplayManager *disp_manager,
|
|||
|
||||
gdk_manager = gdk_display_get_device_manager (gdk_display);
|
||||
|
||||
device = gdk_device_manager_get_client_pointer (gdk_manager);
|
||||
gimp_device_manager_device_added (gdk_manager, device, manager);
|
||||
|
||||
devices = gdk_device_manager_list_devices (gdk_manager,
|
||||
GDK_DEVICE_TYPE_MASTER);
|
||||
GDK_DEVICE_TYPE_SLAVE);
|
||||
|
||||
/* create device info structures for present devices */
|
||||
for (list = devices; list; list = g_list_next (list))
|
||||
{
|
||||
GdkDevice *device = list->data;
|
||||
device = list->data;
|
||||
|
||||
gimp_device_manager_device_added (gdk_manager, device, manager);
|
||||
}
|
||||
|
@ -381,7 +385,7 @@ gimp_device_manager_display_opened (GdkDisplayManager *disp_manager,
|
|||
/* create device info structures for present devices */
|
||||
for (list = devices; list; list = g_list_next (list))
|
||||
{
|
||||
GdkDevice *device = list->data;
|
||||
device = list->data;
|
||||
|
||||
gimp_device_manager_device_added (gdk_manager, device, manager);
|
||||
}
|
||||
|
@ -407,6 +411,7 @@ gimp_device_manager_display_closed (GdkDisplay *gdk_display,
|
|||
{
|
||||
GimpDeviceManagerPrivate *private = GET_PRIVATE (manager);
|
||||
GdkDeviceManager *gdk_manager;
|
||||
GdkDevice *device;
|
||||
GList *devices;
|
||||
GList *list;
|
||||
const gchar *display_name;
|
||||
|
@ -440,12 +445,17 @@ gimp_device_manager_display_closed (GdkDisplay *gdk_display,
|
|||
gimp_device_manager_display_closed,
|
||||
manager);
|
||||
|
||||
gdk_manager = gdk_display_get_device_manager (gdk_display);
|
||||
|
||||
device = gdk_device_manager_get_client_pointer (gdk_manager);
|
||||
gimp_device_manager_device_removed (gdk_manager, device, manager);
|
||||
|
||||
devices = gdk_device_manager_list_devices (gdk_manager,
|
||||
GDK_DEVICE_TYPE_MASTER);
|
||||
GDK_DEVICE_TYPE_SLAVE);
|
||||
|
||||
for (list = devices; list; list = list->next)
|
||||
{
|
||||
GdkDevice *device = list->data;
|
||||
device = list->data;
|
||||
|
||||
gimp_device_manager_device_removed (gdk_manager, device, manager);
|
||||
}
|
||||
|
@ -457,7 +467,7 @@ gimp_device_manager_display_closed (GdkDisplay *gdk_display,
|
|||
|
||||
for (list = devices; list; list = list->next)
|
||||
{
|
||||
GdkDevice *device = list->data;
|
||||
device = list->data;
|
||||
|
||||
gimp_device_manager_device_removed (gdk_manager, device, manager);
|
||||
}
|
||||
|
@ -477,6 +487,10 @@ gimp_device_manager_device_added (GdkDeviceManager *gdk_manager,
|
|||
if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
|
||||
return;
|
||||
|
||||
if (device != gdk_device_manager_get_client_pointer (gdk_manager) &&
|
||||
gdk_device_get_device_type (device) == GDK_DEVICE_TYPE_MASTER)
|
||||
return;
|
||||
|
||||
display = gdk_device_manager_get_display (gdk_manager);
|
||||
|
||||
device_info =
|
||||
|
|
Loading…
Reference in a new issue