aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/app-indicator.c19
-rw-r--r--src/notification-item.xml4
2 files changed, 18 insertions, 5 deletions
diff --git a/src/app-indicator.c b/src/app-indicator.c
index 4bef6de..26d8c73 100644
--- a/src/app-indicator.c
+++ b/src/app-indicator.c
@@ -929,12 +929,25 @@ bus_method_call (GDBusConnection * connection, const gchar * sender,
AppIndicator * app = APP_INDICATOR(user_data);
GVariant * retval = NULL;
- if (g_strcmp0(method, "XAyatanaScrollAction") == 0) {
- gint delta;
+ if (g_strcmp0(method, "Scroll") == 0) {
guint direction;
+ gint delta;
+ const gchar *orientation;
+
+ g_variant_get(params, "(i&s)", &delta, &orientation);
+
+ if (g_strcmp0(orientation, "horizontal") == 0) {
+ direction = (delta >= 0) ? GDK_SCROLL_RIGHT : GDK_SCROLL_LEFT;
+ } else if (g_strcmp0(orientation, "vertical") == 0) {
+ direction = (delta >= 0) ? GDK_SCROLL_DOWN : GDK_SCROLL_UP;
+ } else {
+ g_dbus_method_invocation_return_value(invocation, retval);
+ return;
+ }
- g_variant_get(params, "(iu)", &delta, &direction);
+ delta = ABS(delta);
g_signal_emit(app, signals[SCROLL_EVENT], 0, delta, direction);
+
} else {
g_warning("Calling method '%s' on the app-indicator and it's unknown", method);
}
diff --git a/src/notification-item.xml b/src/notification-item.xml
index 48e9695..127eb3a 100644
--- a/src/notification-item.xml
+++ b/src/notification-item.xml
@@ -17,9 +17,9 @@
<property name="XAyatanaOrderingIndex" type="u" access="read" />
<!-- Methods -->
- <method name="XAyatanaScrollAction">
+ <method name="Scroll">
<arg type="i" name="delta" direction="in" />
- <arg type="u" name="direction" direction="in" />
+ <arg type="s" name="orientation" direction="in" />
</method>
<!-- Signals -->