- 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
131 lines
5.8 KiB
Diff
131 lines
5.8 KiB
Diff
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) {
|
|
+ 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);
|
|
}
|
|
@@ -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>
|
|
<method name="Scroll">
|
|
<arg type="i" name="delta" direction="in" />
|
|
<arg type="s" name="orientation" direction="in" />
|