diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 04b8d7fe65..934137466c 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -201,8 +201,9 @@ KeyboardFilter::Filter(BMessage* message, EventTarget** _target, { STRACE(("Set Workspace %ld\n", key - 1)); - fDesktop->SetWorkspaceAsync(key - B_F1_KEY, - (modifiers & B_SHIFT_KEY) != 0); + bool takeWindow = (modifiers & B_SHIFT_KEY) != 0 + || fDesktop->MouseEventWindow() != NULL; + fDesktop->SetWorkspaceAsync(key - B_F1_KEY, takeWindow); return B_SKIP_MESSAGE; } } if (key == 0x11