diff options
author | Neil Herald <neil.herald@gmail.com> | 2016-04-17 09:08:29 +0100 |
---|---|---|
committer | Neil Herald <neil.herald@gmail.com> | 2016-04-22 21:22:51 +0100 |
commit | 2774b8552dcc89ae744700af5832dbf76c138a9e (patch) | |
tree | 9610caa687d6f6b3b379d14d2030fa497457ce5b /libnautilus-private/nautilus-dnd.c | |
parent | aea50a84347e86c44a83fc33a07ea35da8679b80 (diff) | |
download | nautilus-2774b8552dcc89ae744700af5832dbf76c138a9e.tar.gz |
toolbar: fix ops button so it gets removed when multiple windows open
In some cases, the operations button doesn't get removed from every
Nautilus window. And if clicked, an empty popover will appear. One case
is when the user starts a long operation, and then closes the popovers
in all windows once the operations have completed (and before the
buttons are due to be removed).
All windows get notified that the operations have finished. But if
there's a popover open in any window at that point, the windows don't
schedule removal of the button - as the logic is to keep the buttons
visible while there are popovers open. When the user then closes the
popover in the last window, that window knows there are no popovers in
the other windows, so it removes the button from it's toolbar. But
there's nothing to notify the other windows to remove their buttons.
The fix is to implement a more robust solution; instead of the windows
checking the other windows for popovers (windows shouldn't know about
the other windows anyway), the progress info manager maintains a list of
viewers. When an popover is open or closed, the window tells the manager
to update it's list of viewers. When there are no entries in the list,
the info manager notifies all listeners (the windows), so they all know
when to schedule removal of their buttons.
https://bugzilla.gnome.org/show_bug.cgi?id=765019
Diffstat (limited to 'libnautilus-private/nautilus-dnd.c')
0 files changed, 0 insertions, 0 deletions