From 790d3aee0a4ce8674458aab1a528082dcdeeed20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 2 Jan 2009 10:33:46 +0000 Subject: [PATCH] * When the window to be activated isn't a normal visible window (ie. floating or modal), we need to check if our effort to make it visible (by activating its subset window) was successful. This fixes bug #3201. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28843 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Desktop.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 63300f883d..0cae1ec5d4 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -1125,7 +1125,7 @@ Desktop::ScreenChanged(Screen* screen, bool makeDefault) // update our cached screen region fScreenRegion.Set(screen->Frame()); gInputManager->UpdateScreenBounds(screen->Frame()); - + BRegion background; _RebuildClippingForAllWindows(background); @@ -1170,7 +1170,7 @@ Desktop::StoreConfiguration(int32 workspace) fSettings->Save(kWorkspacesSettings); return B_OK; } - + return B_BAD_VALUE; } @@ -1656,6 +1656,11 @@ Desktop::ActivateWindow(Window* window) } ActivateWindow(front); + + if (!window->InWorkspace(fCurrentWorkspace)) { + // This window can't be made active + return; + } } else { // Bring the window to the current workspace // TODO: what if this window is on multiple workspaces?!?