summaryrefslogtreecommitdiff
path: root/services
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2014-11-04 15:46:59 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2014-11-04 15:46:59 +0100
commit85717e9bbe5e402b2020c4f385da70d3f7e4b5f3 (patch)
treefc1fd4d5e60efb6936e4ac4ee76709e8817cf718 /services
parent152d0666e3b4226be87db1c64a8a978fad43c534 (diff)
PanelService: add support for indicatror horizontal scroll events when a menu is opened
Fixes LP: #1389247 (bzr r3884.4.2)
Diffstat (limited to 'services')
-rw-r--r--services/panel-service.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/services/panel-service.c b/services/panel-service.c
index 2f5703e9c..2471cd620 100644
--- a/services/panel-service.c
+++ b/services/panel-service.c
@@ -593,19 +593,20 @@ event_filter (GdkXEvent *ev, GdkEvent *gev, PanelService *self)
}
}
}
- else if (entry && (event->detail == 2 || event->detail == 4 || event->detail == 5))
+ else if (entry && (event->detail == 2 || event->detail >= 4 || event->detail <= 7))
{
/* If we're scrolling or middle-clicking over an indicator
* (which is not an appmenu entry) then we need to send the
* event to the indicator itself, and avoid it to close */
gchar *entry_id = get_indicator_entry_id_by_entry (entry);
- if (event->detail == 4 || event->detail == 5)
+ if (event->detail >= 4 || event->detail <= 7)
{
- gint32 delta = (event->detail == 4) ? 120 : -120;
+ gint32 delta = (event->detail >= 6) ? NUX_HORIZONTAL_SCROLL_DELTA : NUX_VERTICAL_SCROLL_DELTA;
+ delta = (event->detail % 2 == 0) ? delta : delta * -1;
panel_service_scroll_entry (self, entry_id, delta);
}
- else if (entry == priv->pressed_entry)
+ else if (event->detail == 2 && entry == priv->pressed_entry)
{
panel_service_secondary_activate_entry (self, entry_id);
}