Accepting request 665338 from home:Ximi1970:branches:X11:Unity

- Changed the activate-support patch to signal an "activate-event"
  so users can create callbacks themselves.
  Original patch from Yichao Yu <yyc1992@gmail.com>.

OBS-URL: https://build.opensuse.org/request/show/665338
OBS-URL: https://build.opensuse.org/package/show/X11:Unity/libappindicator?expand=0&rev=16
This commit is contained in:
Alexei Sorokin 2019-01-13 22:04:21 +00:00 committed by Git OBS Bridge
parent e15eaf42d2
commit 0f11ae15a5
3 changed files with 129 additions and 20 deletions

View File

@ -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 @@
<attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='connection_changed']" name="cname">connection-changed</attr>
<attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='scroll_event']" name="name">ScrollEvent</attr>
<attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='scroll_event']" name="cname">scroll-event</attr>
+ <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='activate_event']" name="name">ActivateEvent</attr>
+ <attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='activate_event']" name="cname">activate-event</attr>
<attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon']" name="name">NewIcon</attr>
<attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon']" name="cname">new-icon</attr>
<attr path="/api/namespace/object[@cname='AppIndicator']/signal[@field_name='new_icon_theme_path']" name="name">NewIconThemePath</attr>
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 @@
<method name="XAyatanaSecondaryActivate">
<arg type="u" name="timestamp" direction="in" />
</method>
@@ -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 @@
<property name="IconName" type="s" access="read" />
<property name="IconAccessibleDesc" type="s" access="read" />
<property name="AttentionIconName" type="s" access="read" />
+ <property name="ToolTip" type="(sa(iiay)ss)" access="read" />
<property name="AttentionAccessibleDesc" type="s" access="read" />
<property name="Title" type="s" access="read" />
<!-- An additional path to add to the theme search path
@@ -20,6 +21,10 @@
<property name="XAyatanaOrderingIndex" type="u" access="read" />
<!-- Methods -->
+ <method name="Activate">
+ <arg type="i" name="x" direction="in" />
+ <arg type="i" name="y" direction="in" />
+ </method>
<!-- Signals -->
<signal name="NewIcon">
<method name="Scroll">
<arg type="i" name="delta" direction="in" />
<arg type="s" name="orientation" direction="in" />

View File

@ -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 <yyc1992@gmail.com>.
-------------------------------------------------------------------
Sat Mar 10 14:14:54 UTC 2018 - dimstar@opensuse.org

View File

@ -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 <yyc1992@gmail.com> -- 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