mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-20 05:50:11 +00:00
x11: Unset GdkX11DeviceXI2 scroll valuators on device change
Scroll valuators were being just appended again and again, leading to 1) a growing memory issue anytime a device changed 2) the first scroll valuators to stay permanent on the application lifetime, as the first stored valuators would always match. https://bugzilla.gnome.org/show_bug.cgi?id=705203
This commit is contained in:
parent
189b9c643d
commit
a53a931755
@ -876,6 +876,14 @@ _gdk_device_xi2_reset_scroll_valuators (GdkX11DeviceXI2 *device)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_gdk_device_xi2_unset_scroll_valuators (GdkX11DeviceXI2 *device)
|
||||||
|
{
|
||||||
|
if (device->scroll_valuators->len > 0)
|
||||||
|
g_array_remove_range (device->scroll_valuators, 0,
|
||||||
|
device->scroll_valuators->len);
|
||||||
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
_gdk_x11_device_xi2_get_id (GdkX11DeviceXI2 *device)
|
_gdk_x11_device_xi2_get_id (GdkX11DeviceXI2 *device)
|
||||||
{
|
{
|
||||||
|
@ -765,6 +765,7 @@ handle_device_changed (GdkX11DeviceManagerXI2 *device_manager,
|
|||||||
if (device)
|
if (device)
|
||||||
{
|
{
|
||||||
_gdk_device_reset_axes (device);
|
_gdk_device_reset_axes (device);
|
||||||
|
_gdk_device_xi2_unset_scroll_valuators ((GdkX11DeviceXI2 *) device);
|
||||||
translate_device_classes (display, device, ev->classes, ev->num_classes);
|
translate_device_classes (display, device, ev->classes, ev->num_classes);
|
||||||
|
|
||||||
g_signal_emit_by_name (G_OBJECT (device), "changed");
|
g_signal_emit_by_name (G_OBJECT (device), "changed");
|
||||||
|
@ -231,6 +231,8 @@ guint _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state,
|
|||||||
XIButtonState *buttons_state,
|
XIButtonState *buttons_state,
|
||||||
XIGroupState *group_state);
|
XIGroupState *group_state);
|
||||||
gint _gdk_x11_device_xi2_get_id (GdkX11DeviceXI2 *device);
|
gint _gdk_x11_device_xi2_get_id (GdkX11DeviceXI2 *device);
|
||||||
|
void _gdk_device_xi2_unset_scroll_valuators (GdkX11DeviceXI2 *device);
|
||||||
|
|
||||||
|
|
||||||
GdkDevice * _gdk_x11_device_manager_xi2_lookup (GdkX11DeviceManagerXI2 *device_manager_xi2,
|
GdkDevice * _gdk_x11_device_manager_xi2_lookup (GdkX11DeviceManagerXI2 *device_manager_xi2,
|
||||||
gint device_id);
|
gint device_id);
|
||||||
|
Loading…
Reference in New Issue
Block a user