mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-29 23:32:04 +02:00
clapper-app: Do not trigger default scroll handler on GtkRange
In addition to GtkScrolledWindow, when also hovering over GtkRange subclassing widgets like GtkScale, do not trigger accidentally default app window scroll handler. We want the hovered upon widget and only that widget to handle scroll events in such case.
This commit is contained in:
@@ -471,11 +471,14 @@ scroll_cb (GtkEventControllerScroll *scroll,
|
||||
|
||||
pickup = _pick_pointer_widget (self);
|
||||
|
||||
/* We do not want to accidentally allow this controller
|
||||
* to handle scrolls when hovering over scrolled window */
|
||||
if (pickup && (GTK_IS_SCROLLED_WINDOW (pickup)
|
||||
|| gtk_widget_get_ancestor (pickup, GTK_TYPE_SCROLLED_WINDOW)))
|
||||
return FALSE;
|
||||
/* We do not want to accidentally allow this controller to handle
|
||||
* scrolls when hovering over widgets that also handle scroll */
|
||||
while ((pickup && !CLAPPER_GTK_IS_VIDEO (pickup))) {
|
||||
if (GTK_IS_SCROLLED_WINDOW (pickup) || GTK_IS_RANGE (pickup))
|
||||
return FALSE;
|
||||
|
||||
pickup = gtk_widget_get_parent (pickup);
|
||||
}
|
||||
|
||||
device = gtk_event_controller_get_current_event_device (GTK_EVENT_CONTROLLER (scroll));
|
||||
|
||||
|
Reference in New Issue
Block a user