diff --git a/NEWS b/NEWS index a69e48ae..476a2497 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +* Add support to be able to remove an alert which is not the top +one on the queue (erikos) * Fullscreen support (hide toolbar and tray) and tray support in activity window (erikos) diff --git a/lib/sugar/graphics/window.py b/lib/sugar/graphics/window.py index e55199f5..b21de1c9 100644 --- a/lib/sugar/graphics/window.py +++ b/lib/sugar/graphics/window.py @@ -80,13 +80,15 @@ class Window(gtk.Window): def remove_alert(self, alert): if alert in self._alerts: self._alerts.remove(alert) - self._vbox.remove(alert) - if len(self._alerts) >= 1: - self._vbox.pack_start(self._alerts[0], False) - if self.toolbox is not None: - self._vbox.reorder_child(self._alerts[0], 1) - else: - self._vbox.reorder_child(self._alert[0], 0) + # if the alert is the visible one on top of the queue + if alert.get_parent() is not None: + self._vbox.remove(alert) + if len(self._alerts) >= 1: + self._vbox.pack_start(self._alerts[0], False) + if self.toolbox is not None: + self._vbox.reorder_child(self._alerts[0], 1) + else: + self._vbox.reorder_child(self._alert[0], 0) def __window_realize_cb(self, window): group = gtk.Window()