From 168d3cfda4ee6f6cfaf09563310827242fdd7e08 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Mon, 23 Apr 2012 23:22:12 +0200
Subject: [PATCH] [Aleksey Rybalkin] improve popup notification behaviour

---
 src/dialogs.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/dialogs.py b/src/dialogs.py
index 2224397a11..f9dfb325e9 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -2748,6 +2748,7 @@ class PopupNotificationWindow:
         self.account = account
         self.jid = jid
         self.msg_type = msg_type
+        self.index = len(gajim.interface.roster.popup_notification_windows)
 
         xml = gtkgui_helpers.get_gtk_builder('popup_notification_window.ui')
         self.window = xml.get_object('popup_notification_window')
@@ -2832,12 +2833,15 @@ class PopupNotificationWindow:
         self.window.destroy()
 
         if len(gajim.interface.roster.popup_notification_windows) > 0:
-            # we want to remove the first window added in the list
-            gajim.interface.roster.popup_notification_windows.pop(0)
+            # we want to remove the destroyed window from the list
+            gajim.interface.roster.popup_notification_windows.pop(self.index)
 
         # move the rest of popup windows
         gajim.interface.roster.popups_notification_height = 0
+        current_index = 0
         for window_instance in gajim.interface.roster.popup_notification_windows:
+            window_instance.index = current_index
+            current_index += 1
             window_width, window_height = window_instance.window.get_size()
             gajim.interface.roster.popups_notification_height += window_height
             window_instance.window.move(gtk.gdk.screen_width() - window_width,
-- 
GitLab