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