diff --git a/libappindicator-activate-support.patch b/libappindicator-activate-support.patch index ba45f87..3611e20 100644 --- a/libappindicator-activate-support.patch +++ b/libappindicator-activate-support.patch @@ -1,28 +1,130 @@ ---- a/src/app-indicator.c -+++ b/src/app-indicator.c -@@ -1188,6 +1188,12 @@ bus_method_call (GDBusConnection * conne +diff -urN libappindicator.orig/bindings/mono/libappindicator-api.metadata libappindicator/bindings/mono/libappindicator-api.metadata +--- libappindicator.orig/bindings/mono/libappindicator-api.metadata 2017-02-15 15:15:21.000000000 +0100 ++++ libappindicator/bindings/mono/libappindicator-api.metadata 2019-01-13 16:46:20.254218208 +0100 +@@ -13,6 +13,8 @@ + connection-changed + ScrollEvent + scroll-event ++ ActivateEvent ++ activate-event + NewIcon + new-icon + NewIconThemePath +diff -urN libappindicator.orig/src/app-indicator.c libappindicator/src/app-indicator.c +--- libappindicator.orig/src/app-indicator.c 2017-02-15 15:15:36.000000000 +0100 ++++ libappindicator/src/app-indicator.c 2019-01-13 17:01:18.940800769 +0100 +@@ -115,6 +115,7 @@ + CONNECTION_CHANGED, + NEW_ICON_THEME_PATH, + SCROLL_EVENT, ++ ACTIVATE_EVENT, + LAST_SIGNAL + }; + +@@ -603,6 +604,20 @@ + _application_service_marshal_VOID__INT_UINT, + G_TYPE_NONE, 2, G_TYPE_INT, GDK_TYPE_SCROLL_DIRECTION); + ++ /** ++ * AppIndicator::activate-event: ++ * @arg0: The #AppIndicator object ++ * ++ * Signaled when the #AppIndicator receives a activate event. ++ */ ++ signals[ACTIVATE_EVENT] = g_signal_new(APP_INDICATOR_SIGNAL_ACTIVATE_EVENT, ++ G_TYPE_FROM_CLASS(klass), ++ G_SIGNAL_RUN_LAST, ++ G_STRUCT_OFFSET (AppIndicatorClass, activate_event), ++ NULL, NULL, ++ NULL, ++ G_TYPE_NONE, 0); ++ + /* DBus interfaces */ + if (item_node_info == NULL) { + GError * error = NULL; +@@ -1188,6 +1203,8 @@ { gtk_widget_activate (menuitem); } + } else if (g_strcmp0(method, "Activate") == 0) { -+ GtkMenu * menu = app_indicator_get_menu(app); -+ if (menu != NULL) { -+ gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 1, -+ gtk_get_current_event_time()); -+ } ++ g_signal_emit(G_OBJECT(app), signals[ACTIVATE_EVENT], 0); } else { g_warning("Calling method '%s' on the app-indicator and it's unknown", method); } ---- a/src/notification-item.xml -+++ b/src/notification-item.xml -@@ -31,6 +31,10 @@ - - - +@@ -1224,6 +1241,13 @@ + return g_variant_new_string(priv->absolute_attention_icon_name); + } + return g_variant_new_string(priv->attention_icon_name ? priv->attention_icon_name : ""); ++ } else if (g_strcmp0(property, "ToolTip") == 0) { ++ const char *title = priv->title; ++ if (!title) ++ title = g_get_application_name(); ++ if (!title) ++ title = ""; ++ return g_variant_new ("(sa(iiay)ss)", priv->icon_name, NULL, title, ""); + } else if (g_strcmp0(property, "Title") == 0) { + const gchar * output = NULL; + if (priv->title == NULL) { +@@ -1676,19 +1700,7 @@ + static void + status_icon_activate (GtkStatusIcon * icon, gpointer data) + { +- GtkMenu * menu = app_indicator_get_menu(APP_INDICATOR(data)); +- if (menu == NULL) +- return; +- +- gtk_menu_popup(menu, +- NULL, /* Parent Menu */ +- NULL, /* Parent item */ +- gtk_status_icon_position_menu, +- icon, +- 1, /* Button */ +- gtk_get_current_event_time()); +- +- return; ++ g_signal_emit(G_OBJECT(data), signals[ACTIVATE_EVENT], 0); + } + + /* Handles the right-click action by the status icon by showing +diff -urN libappindicator.orig/src/app-indicator.h libappindicator/src/app-indicator.h +--- libappindicator.orig/src/app-indicator.h 2017-02-15 15:15:21.000000000 +0100 ++++ libappindicator/src/app-indicator.h 2019-01-13 16:46:52.027991740 +0100 +@@ -119,6 +119,7 @@ + #define APP_INDICATOR_SIGNAL_CONNECTION_CHANGED "connection-changed" + #define APP_INDICATOR_SIGNAL_NEW_ICON_THEME_PATH "new-icon-theme-path" + #define APP_INDICATOR_SIGNAL_SCROLL_EVENT "scroll-event" ++#define APP_INDICATOR_SIGNAL_ACTIVATE_EVENT "activate-event" + + /** + * AppIndicatorCategory: +@@ -228,7 +229,7 @@ + void (*app_indicator_reserved_3)(void); + void (*app_indicator_reserved_4)(void); + void (*app_indicator_reserved_5)(void); +- void (*app_indicator_reserved_6)(void); ++ void (*activate_event)(AppIndicator *indicator, gpointer user_data); + }; + + /** +diff -urN libappindicator.orig/src/notification-item.xml libappindicator/src/notification-item.xml +--- libappindicator.orig/src/notification-item.xml 2017-02-15 15:15:21.000000000 +0100 ++++ libappindicator/src/notification-item.xml 2019-01-13 17:03:04.238047406 +0100 +@@ -9,6 +9,7 @@ + + + ++ + + + + + + + - - - + + + diff --git a/libappindicator.changes b/libappindicator.changes index 8533c4c..926c879 100644 --- a/libappindicator.changes +++ b/libappindicator.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Jan 13 19:146:00 UTC 2019 - ximi.obs@gmail.com + +- Changed the activate-support patch to signal an "activate-event" + so users can create callbacks themselves. + Original patch from Yichao Yu . + ------------------------------------------------------------------- Sat Mar 10 14:14:54 UTC 2018 - dimstar@opensuse.org diff --git a/libappindicator.spec b/libappindicator.spec index eb52cd5..350c30b 100644 --- a/libappindicator.spec +++ b/libappindicator.spec @@ -1,7 +1,7 @@ # # spec file for package libappindicator # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,13 +26,13 @@ Name: libappindicator Version: 12.10.1+bzr20170215 Release: 0 Summary: Application indicators library -License: LGPL-2.0 AND LGPL-3.0 AND GPL-3.0 +License: LGPL-2.0-only AND LGPL-3.0-only AND GPL-3.0-only Group: System/Libraries URL: https://launchpad.net/libappindicator Source: https://launchpad.net/ubuntu/+archive/primary/+files/%{name}_%{_version}.orig.tar.gz # PATCH-FIX-UPSTREAM 0001_Fix_mono_dir.patch hrvoje.senjan@gmail.com -- Fix location of .pc files. Patch0: 0001_Fix_mono_dir.patch -# PATCH-FIX-OPENSUSE libappindicator-activate-support.patch sor.alexei@meowr.ru -- Open menu on the left-click action. +# PATCH-FIX-OPENSUSE libappindicator-activate-support.patch Yichao Yu -- Send "activate-event" signal on the left-click action. Patch1: libappindicator-activate-support.patch # PATCH-FIX=UPSTREAM libappindicator-no-Werror.patch dimstar@opensuse.org -- Don't add -Werror on build: the code is aging and does not keep up Patch2: libappindicator-no-Werror.patch