mirror of https://github.com/GNOME/gimp.git
widgets: Hook ::configure-pad signal emission to configuration changes
If a pad device configuration gets changed, or reset, we should trigger the creation of new pad controllers for the existing toplevels. Add the plumbing so that saving/resetting a device configuration will result in the same ::configure-pad signal, and trigger it from the relevant places.
This commit is contained in:
parent
46d38827dd
commit
6ca6f87c16
|
@ -106,6 +106,9 @@ static void gimp_device_manager_device_defaults (GdkSeat *seat,
|
|||
GdkDevice *device,
|
||||
GimpDeviceManager *manager);
|
||||
|
||||
static void gimp_device_manager_reconfigure_pad_foreach (GimpDeviceInfo *info,
|
||||
GimpDeviceManager *manager);
|
||||
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GimpDeviceManager, gimp_device_manager,
|
||||
GIMP_TYPE_LIST)
|
||||
|
@ -379,6 +382,16 @@ gimp_device_manager_reset (GimpDeviceManager *manager)
|
|||
}
|
||||
|
||||
g_slist_free (displays);
|
||||
|
||||
gimp_device_manager_reconfigure_pads (manager);
|
||||
}
|
||||
|
||||
void
|
||||
gimp_device_manager_reconfigure_pads (GimpDeviceManager *manager)
|
||||
{
|
||||
gimp_container_foreach (GIMP_CONTAINER (manager),
|
||||
(GFunc) gimp_device_manager_reconfigure_pad_foreach,
|
||||
manager);
|
||||
}
|
||||
|
||||
|
||||
|
@ -742,3 +755,15 @@ gimp_device_manager_device_defaults (GdkSeat *seat,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_device_manager_reconfigure_pad_foreach (GimpDeviceInfo *info,
|
||||
GimpDeviceManager *manager)
|
||||
{
|
||||
if (gimp_device_info_get_device (info, NULL) == NULL)
|
||||
return;
|
||||
if (gimp_device_info_get_source (info) != GDK_SOURCE_TABLET_PAD)
|
||||
return;
|
||||
|
||||
g_signal_emit (manager, device_manager_signals[CONFIGURE_PAD], 0, info);
|
||||
}
|
||||
|
|
|
@ -62,6 +62,9 @@ void gimp_device_manager_set_current_device (GimpDeviceManager *m
|
|||
|
||||
void gimp_device_manager_reset (GimpDeviceManager *manager);
|
||||
|
||||
void gimp_device_manager_reconfigure_pads (GimpDeviceManager *manager);
|
||||
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GIMP_DEVICE_MANAGER_H__ */
|
||||
|
|
|
@ -197,6 +197,7 @@ gimp_devices_save (Gimp *gimp,
|
|||
g_object_unref (file);
|
||||
|
||||
devicerc_deleted = FALSE;
|
||||
gimp_device_manager_reconfigure_pads (manager);
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
|
Loading…
Reference in New Issue