app: sort plugged devices to the start of the list
and sort plugged/unplugged devices alphabetically
This commit is contained in:
parent
12aa801441
commit
3facba67d4
3 changed files with 28 additions and 0 deletions
|
|
@ -555,6 +555,9 @@ gimp_device_info_set_device (GimpDeviceInfo *info,
|
|||
gimp_device_info_set_key (info, i,
|
||||
info->keys[i].keyval,
|
||||
info->keys[i].modifiers);
|
||||
|
||||
/* sort order depends on device presence */
|
||||
gimp_object_name_changed (GIMP_OBJECT (info));
|
||||
}
|
||||
|
||||
GdkInputMode
|
||||
|
|
@ -710,3 +713,22 @@ gimp_device_info_get_by_device (GdkDevice *device)
|
|||
|
||||
return g_object_get_data (G_OBJECT (device), GIMP_DEVICE_INFO_DATA_KEY);
|
||||
}
|
||||
|
||||
gint
|
||||
gimp_device_info_compare (GimpDeviceInfo *a,
|
||||
GimpDeviceInfo *b)
|
||||
{
|
||||
if (a->device && ! b->device)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else if (! a->device && b->device)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return - strcmp (gimp_object_get_name (a),
|
||||
gimp_object_get_name (b));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,6 +106,9 @@ void gimp_device_info_changed (GimpDeviceInfo *info);
|
|||
|
||||
GimpDeviceInfo * gimp_device_info_get_by_device (GdkDevice *device);
|
||||
|
||||
gint gimp_device_info_compare (GimpDeviceInfo *a,
|
||||
GimpDeviceInfo *b);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
|||
|
|
@ -112,6 +112,9 @@ gimp_devices_init (Gimp *gimp,
|
|||
manager->current_device = gdk_display_get_core_pointer (gdk_display);
|
||||
manager->change_notify = change_notify;
|
||||
|
||||
gimp_list_set_sort_func (GIMP_LIST (manager->device_info_list),
|
||||
(GCompareFunc) gimp_device_info_compare);
|
||||
|
||||
displays = gdk_display_manager_list_displays (disp_manager);
|
||||
|
||||
/* present displays in the order in which they were opened */
|
||||
|
|
|
|||
Loading…
Reference in a new issue