diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-11-04 15:46:59 +0100 |
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2014-11-04 15:46:59 +0100 |
| commit | 85717e9bbe5e402b2020c4f385da70d3f7e4b5f3 (patch) | |
| tree | fc1fd4d5e60efb6936e4ac4ee76709e8817cf718 /services | |
| parent | 152d0666e3b4226be87db1c64a8a978fad43c534 (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.c | 9 |
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); } |
