[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#927438: marked as done (indicator object signal: secondary-activate / INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVAT)



Your message dated Thu, 01 Aug 2019 13:40:17 +0000
with message-id <E1htBJZ-0001Yl-0W@fasolo.debian.org>
and subject line Bug#927438: fixed in mate-indicator-applet 1.22.0-1
has caused the Debian Bug report #927438,
regarding indicator object signal: secondary-activate / INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVAT
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
927438: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927438
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: mate-indicator-applet
Severity: important
Version: 1.20.1-1

The MATE Indicator Applet does not handle secondary-activate events, like e.g. xfce4-indicator-applet does.

Expected behaviour

Mouse middle-click on indicator does emit signal "secondary-activate" for the ayatana indicator stack back to the application to handle the event.

Have code very similar to INDICATOR_OBJECT_SIGNAL_ENTRY_SCROLLED.

Actual behaviour

Nothing happens.

References

https://github.com/AyatanaIndicators/libayatana-indicator/blob/master/libayatana-indicator/indicator-object.h#L60
https://github.com/AyatanaIndicators/libayatana-indicator/commits/master/libayatana-indicator/indicator-object.h

Steps to reproduce the behaviour

Python with AyatanaAppIncidator3. See API:
https://lazka.github.io/pgi-docs/AyatanaAppIndicator3-0.1/classes/Indicator.html#AyatanaAppIndicator3.Indicator.set_secondary_activate_target

As a reference implementation, see xfce_indicator_button_button_release at
https://github.com/xfce-mirror/xfce4-indicator-plugin/blob/master/panel-plugin/indicator-button.c#L341

Greets,
Mike
--

DAS-NETZWERKTEAM
c\o Technik- und Ökologiezentrum Eckernförde
Mike Gabriel, Marienthaler str. 17, 24340 Eckernförde
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

--- a/src/applet-main.c	2019-04-18 10:50:43.964025890 +0200
+++ b/src/applet-main.c	2019-04-18 20:13:16.740055539 +0200
@@ -303,6 +303,25 @@
 	return FALSE;
 }
 
+static gboolean
+entry_released (GtkWidget *event_box, GdkEvent *event, gpointer data)
+{
+	if (((GdkEventButton*)event)->button == 2) /* middle button */
+	{
+		IndicatorObject *io = g_object_get_data (G_OBJECT (menuitem), MENU_DATA_INDICATOR_OBJECT);
+		IndicatorObjectEntry *entry = g_object_get_data (G_OBJECT (menuitem), MENU_DATA_INDICATOR_ENTRY);
+
+		g_return_val_if_fail(INDICATOR_IS_OBJECT(io), FALSE);
+
+		g_signal_emit_by_name (io, INDICATOR_OBJECT_SIGNAL_SECONDARY_ACTIVATE, entry,
+			((GdkEventButton*)event)->time);
+
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
 static void
 accessible_desc_update_cb (GtkWidget * widget, gpointer userdata)
 {
@@ -333,15 +352,21 @@
 	GtkWidget * menuitem = gtk_menu_item_new();
 	GtkWidget * box = (packdirection == GTK_PACK_DIRECTION_LTR) ?
 		gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3) : gtk_box_new(GTK_ORIENTATION_VERTICAL, 3);
+	GtkWidget * event_box = gtk_event_box_new();
 
 	/* Allows indicators to receive mouse scroll event */
 	gtk_widget_add_events(GTK_WIDGET(menuitem), GDK_SCROLL_MASK);
+	gtk_widget_add_events(GTK_WIDGET(event_box), GDK_BUTTON_RELEASE_MASK);
 
 	g_object_set_data (G_OBJECT (menuitem), "indicator", io);
 	g_object_set_data (G_OBJECT (menuitem), "box", box);
+	g_object_set_data (G_OBJECT (menuitem), "event-box", event_box);
 
 	g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(entry_activated), entry);
 	g_signal_connect(G_OBJECT(menuitem), "scroll-event", G_CALLBACK(entry_scrolled), entry);
+	g_signal_connect(G_OBJECT(event_box), "button-release-event", G_CALLBACK(entry_released), entry);
+
+	gtk_box_pack_start(GTK_BOX(event_box), GTK_WIDGET(box), FALSE, FALSE, 1);
 
 	if (entry->image != NULL) {
 		gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(entry->image), FALSE, FALSE, 1);
@@ -386,8 +411,8 @@
 
 		g_signal_connect(G_OBJECT(entry->label), "notify::sensitive", G_CALLBACK(sensitive_cb), menuitem);
 	}
-	gtk_container_add(GTK_CONTAINER(menuitem), box);
-	gtk_widget_show(box);
+	gtk_container_add(GTK_CONTAINER(menuitem), event_box);
+	gtk_widget_show_all(event_box);
 
 	if (entry->menu != NULL) {
 		gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), GTK_WIDGET(entry->menu));
@@ -828,14 +853,15 @@
 static gboolean
 reorient_box_cb (GtkWidget *menuitem, gpointer data)
 {
+	GtkWidget *event_box = g_object_get_data(G_OBJECT(menuitem), "event-box");
 	GtkWidget *from = g_object_get_data(G_OBJECT(menuitem), "box");
 	GtkWidget *to = (packdirection == GTK_PACK_DIRECTION_LTR) ?
 		gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0) : gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
 	g_object_set_data(G_OBJECT(from), "to", to);
 	gtk_container_foreach(GTK_CONTAINER(from), (GtkCallback)swap_orient_cb,
 			from);
-	gtk_container_remove(GTK_CONTAINER(menuitem), from);
-	gtk_container_add(GTK_CONTAINER(menuitem), to);
+	gtk_container_remove(GTK_CONTAINER(event_box), from);
+	gtk_container_add(GTK_CONTAINER(event_box), to);
 	g_object_set_data(G_OBJECT(menuitem), "box", to);
 	gtk_widget_show_all(menuitem);
 	return TRUE;

Attachment: pgp1Xia4KXeJo.pgp
Description: Digitale PGP-Signatur


--- End Message ---
--- Begin Message ---
Source: mate-indicator-applet
Source-Version: 1.22.0-1

We believe that the bug you reported is fixed in the latest version of
mate-indicator-applet, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 927438@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Mike Gabriel <sunweaver@debian.org> (supplier of updated mate-indicator-applet package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Wed, 31 Jul 2019 16:45:20 +0200
Source: mate-indicator-applet
Architecture: source
Version: 1.22.0-1
Distribution: unstable
Urgency: medium
Maintainer: Debian+Ubuntu MATE Packaging Team <debian-mate@lists.debian.org>
Changed-By: Mike Gabriel <sunweaver@debian.org>
Closes: 927438
Changes:
 mate-indicator-applet (1.22.0-1) unstable; urgency=medium
 .
   [ Martin Wimpress ]
   * New upstream release.
 .
   [ Mike Gabriel ]
   * debian/patches:
     + Add 1001_secondary-activate.patch. Add support for indicator object
       signal: secondary-activate / INDICATOR_OBJECT_SIGNAL_SECONDARY_
       ACTIVATE. (Closes: #927438).
   * debian/{compat,control}:
     + Use debhelper-compat notation. Bump to DH compat level version 12.
   * debian/control:
     + Bump Standards-Version: to 4.4.0. No changes needed.
   * debian/rules:
     + Drop dbgsym-migration dh_strip override.
   * debian/copyright:
     + Update copyright attributions.
Checksums-Sha1:
 8094f3dbdd4986f59d692d0a923467fbe7b09c64 2546 mate-indicator-applet_1.22.0-1.dsc
 7962e782d741ba21952a6f82e10e0ca810aca428 94732 mate-indicator-applet_1.22.0.orig.tar.xz
 1816d654ef33c24dc7da2aa7e96f40814ac93fad 5972 mate-indicator-applet_1.22.0-1.debian.tar.xz
 fe5b112bfab31a397d3d41dae1e0dc17324f30c1 16535 mate-indicator-applet_1.22.0-1_source.buildinfo
Checksums-Sha256:
 413a2fe67877067c01e201521d88758d0c08c07469498324252dcac58fd92380 2546 mate-indicator-applet_1.22.0-1.dsc
 d3e0ba9cca64d2e567bc86c4e355ba2d6761383daf98c9751cbe8fb701765319 94732 mate-indicator-applet_1.22.0.orig.tar.xz
 931d5c28583c65dbecd77d5ff9e14727bfd554d19f81bb18e859c1c337596fa6 5972 mate-indicator-applet_1.22.0-1.debian.tar.xz
 9be1c0c96b65c95032d8da5c5c7ff86b065b312d9de9e3354f77c26e20c6cc04 16535 mate-indicator-applet_1.22.0-1_source.buildinfo
Files:
 62780bd414a50a5389137548b6ee52aa 2546 x11 optional mate-indicator-applet_1.22.0-1.dsc
 830a7a652b3346559c57287bf6f63da0 94732 x11 optional mate-indicator-applet_1.22.0.orig.tar.xz
 122c24e59155926004420118d6f3f374 5972 x11 optional mate-indicator-applet_1.22.0-1.debian.tar.xz
 e4d6a589956cfe3be1ad92dc9b03a165 16535 x11 optional mate-indicator-applet_1.22.0-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJJBAEBCAAzFiEEm/uu6GwKpf+/IgeCmvRrMCV3GzEFAl1C5Z0VHHN1bndlYXZl
ckBkZWJpYW4ub3JnAAoJEJr0azAldxsxmFQP/1e9Ryh2A8IXUyZup05/4Dp+0HsO
8l8HvldW4gMogPA/nMNIU+i3uhfcYlDzlcB5J40BBmGJayyFM6wPB9vsccD3IZkg
Dn2o66Vgwh4hYytSwwIZFDC0LlAAoLxjY1XrQQomC8GAv5Dqg/odXswW6TSBvsFy
KxI+slbSuoo/6CEhpNeJioNx4/5fc5V2Txsdi5/Mq91bNorz7qKEe5cVx4PYewZf
bCihdjejP4h7MznWxaZcmmUDaSgKpa201heIhIRkTkrKJa0XBL6/vzAzZD/1a39u
dRg00f4stdvEmDPB2RAJ9Oq65ZvRebjerZo+maRmo8enIdNGuWPQgVo82ALR7tR1
ChlrPbVorx2MlnY0hsgnzqYAz9EV2Ggjx/hjTJDUDvPBkQBDbQ9Sgy626cTC/hji
+5ZCf0+A+la7smjRp6GXbyy3ZVYoRJDSAJufxGQzL48T4PBJrl9RjtOIfACLQpD8
4hUefvf4JcynEDyiC3K3GvMqXZeqn0z3Knlop62wAU52I4F5Oj9rea+VVjwtOquA
OdCuSnAUL9F18waky2ZHxl2bODeD6I/4FfBovldJRuUsMg7M+NrVsfERHZpYr01P
WtiX7D3hY86sFbQt/MzE+M1RA0y38h4YvxSkYH286hqyhF7ywk/rRBfHI/weL/qk
w5sCGvOJ6nU1a33T
=BewM
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: