Consistency with helper/modal windows and multiple desktops. When focusing a window, bring its helper windows. This happened before when switching its desktop, but if you have 2 windows on different desktops and switch between them, the helpers should come to both when they are being used. When a new helper/modal window maps on a different desktop and you are using the application, then the helper/modal window is moved to the current desktop to be with the application you are using.
Dana Jansens danakj@orodu.net
1 files changed,
13 insertions(+),
1 deletions(-)
jump to
M
openbox/client.c
→
openbox/client.c
@@ -256,6 +256,15 @@
/* the session should get the last say though */ client_restore_session_state(self); + /* don't put helper/modal windows on a different desktop if they are + related to the focused window. */ + if (!screen_compare_desktops(self->desktop, screen_desktop) && + focus_client && client_search_transient(focus_client, self) && + (client_helper(self) || self->modal)) + { + self->desktop = screen_desktop; + } + /* tell startup notification that this app started */ launch_time = sn_app_started(self->startup_id, self->class, self->name);@@ -3928,6 +3937,9 @@ "Client %s can't be focused", self->title);
return FALSE; } + /* if we have helper windows they should be there with the window */ + client_bring_helper_windows(self); + ob_debug_type(OB_DEBUG_FOCUS, "Focusing client \"%s\" (0x%x) at time %u", self->title, self->window, event_time());@@ -4020,7 +4032,7 @@ helpers, modals, iconic);
if (((helpers && client_helper(self)) || (modals && self->modal)) && - ((self->desktop != desktop && self->desktop != DESKTOP_ALL) || + (!screen_compare_desktops(self->desktop, desktop) || (iconic && self->iconic))) { if (iconic && self->iconic)