diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/Window.cc b/src/Window.cc index 305f7f3..da1809d 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1273,13 +1273,8 @@ bool FluxboxWindow::focus() { | |||
1273 | 1273 | ||
1274 | if (screen().currentWorkspaceID() != workspaceNumber() && !isStuck()) { | 1274 | if (screen().currentWorkspaceID() != workspaceNumber() && !isStuck()) { |
1275 | 1275 | ||
1276 | BScreen::FollowModel model = screen().getUserFollowModel(); | 1276 | // fetch the window to the current workspace if minimized |
1277 | if (model == BScreen::IGNORE_OTHER_WORKSPACES) | 1277 | if (isIconic()) |
1278 | return false; | ||
1279 | |||
1280 | // fetch the window to the current workspace | ||
1281 | if (model == BScreen::FETCH_ACTIVE_WINDOW || | ||
1282 | (isIconic() && model == BScreen::SEMIFOLLOW_ACTIVE_WINDOW)) | ||
1283 | screen().sendToWorkspace(screen().currentWorkspaceID(), this, false); | 1278 | screen().sendToWorkspace(screen().currentWorkspaceID(), this, false); |
1284 | // warp to the workspace of the window | 1279 | // warp to the workspace of the window |
1285 | else | 1280 | else |
@@ -2041,14 +2036,10 @@ bool FluxboxWindow::focusRequestFromClient(WinClient &from) { | |||
2041 | return false; | 2036 | return false; |
2042 | 2037 | ||
2043 | bool ret = true; | 2038 | bool ret = true; |
2044 | // check what to do if window is on another workspace | ||
2045 | if (screen().currentWorkspaceID() != workspaceNumber() && !isStuck() && | ||
2046 | screen().getFollowModel() == BScreen::IGNORE_OTHER_WORKSPACES) | ||
2047 | ret = false; | ||
2048 | 2039 | ||
2049 | FluxboxWindow *cur = FocusControl::focusedFbWindow(); | 2040 | FluxboxWindow *cur = FocusControl::focusedFbWindow(); |
2050 | WinClient *client = FocusControl::focusedWindow(); | 2041 | WinClient *client = FocusControl::focusedWindow(); |
2051 | if (ret && cur && getRootTransientFor(&from) != getRootTransientFor(client)) | 2042 | if (cur && getRootTransientFor(&from) != getRootTransientFor(client)) |
2052 | ret = !(cur->isFullscreen() && getOnHead() == cur->getOnHead()) && | 2043 | ret = !(cur->isFullscreen() && getOnHead() == cur->getOnHead()) && |
2053 | !cur->isTyping(); | 2044 | !cur->isTyping(); |
2054 | 2045 | ||