summaryrefslogtreecommitdiff
path: root/applets/notification_area/na-tray-manager.c
diff options
context:
space:
mode:
authorinfirit <[email protected]>2014-11-21 19:09:42 +0100
committerinfirit <[email protected]>2014-11-22 15:13:50 +0100
commitaa4e6f2cdcb5fedd208f99216e5443caf200245e (patch)
tree2c54b38f43bdb3ba7fcfb661e710c765af827f79 /applets/notification_area/na-tray-manager.c
parent942cbeb00cc425fcce0f416f3ae1c76e49610ebc (diff)
downloadmate-panel-aa4e6f2cdcb5fedd208f99216e5443caf200245e.tar.bz2
mate-panel-aa4e6f2cdcb5fedd208f99216e5443caf200245e.tar.xz
na: Fix handling of SYSTEM_TRAY_CANCEL_MESSAGE
We were not looking at the right field for the message ID: the ID is in the 4th field for BEGIN_MESSAGE, but 2nd field for CANCEL_MESSAGE. Taken from gnome-panel commit: 8ff843458425d525b10fc5d9b7bb357248c637c8 From: Vincent Untz <[email protected]>
Diffstat (limited to 'applets/notification_area/na-tray-manager.c')
-rw-r--r--applets/notification_area/na-tray-manager.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/applets/notification_area/na-tray-manager.c b/applets/notification_area/na-tray-manager.c
index 1483bcd0..6b61adea 100644
--- a/applets/notification_area/na-tray-manager.c
+++ b/applets/notification_area/na-tray-manager.c
@@ -394,13 +394,17 @@ na_tray_manager_handle_begin_message (NaTrayManager *manager,
if (!socket)
return;
+ timeout = xevent->data.l[2];
+ len = xevent->data.l[3];
+ id = xevent->data.l[4];
+
/* Check if the same message is already in the queue and remove it if so */
for (p = manager->messages; p; p = p->next)
{
PendingMessage *pmsg = p->data;
if (xevent->window == pmsg->window &&
- xevent->data.l[4] == pmsg->id)
+ id == pmsg->id)
{
/* Hmm, we found it, now remove it */
pending_message_free (pmsg);
@@ -410,9 +414,7 @@ na_tray_manager_handle_begin_message (NaTrayManager *manager,
}
}
- timeout = xevent->data.l[2];
- len = xevent->data.l[3];
- id = xevent->data.l[4];
+
if (len == 0)
{
@@ -440,6 +442,9 @@ na_tray_manager_handle_cancel_message (NaTrayManager *manager,
{
GList *p;
GtkSocket *socket;
+ long id;
+
+ id = xevent->data.l[2];
/* Check if the message is in the queue and remove it if so */
for (p = manager->messages; p; p = p->next)
@@ -447,7 +452,7 @@ na_tray_manager_handle_cancel_message (NaTrayManager *manager,
PendingMessage *msg = p->data;
if (xevent->window == msg->window &&
- xevent->data.l[4] == msg->id)
+ id == msg->id)
{
pending_message_free (msg);
manager->messages = g_list_remove_link (manager->messages, p);