From a2bad425f6ef0bbc4814affc7dfe17a0c0eb43a6 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sun, 5 May 2013 00:01:10 +0200 Subject: [PATCH] Fix window close, icon toggle logic "Toggle" should mean "show or hide all windows", not "flip the visibility state of windows". Case: one receiver window is open. When a new receiver is connected, I also expect it to be open. Instead it is hidden, so I click the icon. Now the new receiver window is shown, but the previous one is hidden. Huh?! Indeed, let's fix that. --- lib/solaar/ui/main_window.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/solaar/ui/main_window.py b/lib/solaar/ui/main_window.py index 3c0a1b98..144e871b 100644 --- a/lib/solaar/ui/main_window.py +++ b/lib/solaar/ui/main_window.py @@ -303,7 +303,7 @@ def _create(receiver): window.set_skip_pager_hint(True) window.set_keep_above(True) # window.set_decorations(Gdk.DECOR_BORDER | Gdk.DECOR_TITLE) - window.connect('delete-event', _hide) + window.connect('delete-event', lambda widget, event: _hide(widget)) _windows[receiver.path] = window return window @@ -315,19 +315,17 @@ def _destroy(receiver): w.destroy() -def toggle_all(trigger): +def toggle_all(status_icon): if not _windows: return visible = [w.get_visible() for w in _windows.values()] if all(visible): - map(_hide, _windows.values()) + for w in _windows.values(): + _hide(w) else: for w in _windows.values(): - if w.get_visible(): - _hide(w) - else: - _show(w, trigger) + _show(w, status_icon) # #