diff options
author | markt <markt> | 2007-11-12 23:16:13 (GMT) |
---|---|---|
committer | markt <markt> | 2007-11-12 23:16:13 (GMT) |
commit | bed4ba4d65dba0d12a8352a46436f25ce3d0e7d1 (patch) | |
tree | a858fb9aca5ed5d2e9fe0b7e38a4dd35d2805001 | |
parent | 5d7043320da1378e7dd3b10f7e425f3b47455b28 (diff) | |
download | fluxbox-bed4ba4d65dba0d12a8352a46436f25ce3d0e7d1.zip fluxbox-bed4ba4d65dba0d12a8352a46436f25ce3d0e7d1.tar.bz2 |
a little fix for focusing lowered tabs on other workspaces
-rw-r--r-- | src/Screen.cc | 6 | ||||
-rw-r--r-- | src/Screen.hh | 2 | ||||
-rw-r--r-- | src/Window.cc | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index a53792b..1557409 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -1185,7 +1185,7 @@ int BScreen::removeLastWorkspace() { | |||
1185 | } | 1185 | } |
1186 | 1186 | ||
1187 | 1187 | ||
1188 | void BScreen::changeWorkspaceID(unsigned int id) { | 1188 | void BScreen::changeWorkspaceID(unsigned int id, bool revert) { |
1189 | 1189 | ||
1190 | if (! m_current_workspace || id >= m_workspaces_list.size() || | 1190 | if (! m_current_workspace || id >= m_workspaces_list.size() || |
1191 | id == m_current_workspace->workspaceID()) | 1191 | id == m_current_workspace->workspaceID()) |
@@ -1228,7 +1228,7 @@ void BScreen::changeWorkspaceID(unsigned int id) { | |||
1228 | if (focused && focused->isMoving()) { | 1228 | if (focused && focused->isMoving()) { |
1229 | focused->focus(); | 1229 | focused->focus(); |
1230 | focused->resumeMoving(); | 1230 | focused->resumeMoving(); |
1231 | } else | 1231 | } else if (revert) |
1232 | FocusControl::revertFocus(*this); | 1232 | FocusControl::revertFocus(*this); |
1233 | 1233 | ||
1234 | old->hideAll(false); | 1234 | old->hideAll(false); |
@@ -1257,7 +1257,7 @@ void BScreen::sendToWorkspace(unsigned int id, FluxboxWindow *win, bool changeWS | |||
1257 | 1257 | ||
1258 | // change workspace ? | 1258 | // change workspace ? |
1259 | if (changeWS) | 1259 | if (changeWS) |
1260 | changeWorkspaceID(id); | 1260 | changeWorkspaceID(id, false); |
1261 | 1261 | ||
1262 | // if the window is on current workspace, show it; else hide it. | 1262 | // if the window is on current workspace, show it; else hide it. |
1263 | if (id == currentWorkspace()->workspaceID() && !win->isIconic()) | 1263 | if (id == currentWorkspace()->workspaceID() && !win->isIconic()) |
diff --git a/src/Screen.hh b/src/Screen.hh index 953411c..ac27df1 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -360,7 +360,7 @@ public: | |||
360 | */ | 360 | */ |
361 | std::string getNameOfWorkspace(unsigned int workspace) const; | 361 | std::string getNameOfWorkspace(unsigned int workspace) const; |
362 | /// changes workspace to specified id | 362 | /// changes workspace to specified id |
363 | void changeWorkspaceID(unsigned int); | 363 | void changeWorkspaceID(unsigned int, bool revert = true); |
364 | /** | 364 | /** |
365 | * Sends a window to a workspace | 365 | * Sends a window to a workspace |
366 | * @param workspace the workspace id | 366 | * @param workspace the workspace id |
diff --git a/src/Window.cc b/src/Window.cc index 903756a..aae258c 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1316,7 +1316,7 @@ bool FluxboxWindow::focus() { | |||
1316 | screen().sendToWorkspace(screen().currentWorkspaceID(), this, false); | 1316 | screen().sendToWorkspace(screen().currentWorkspaceID(), this, false); |
1317 | // warp to the workspace of the window | 1317 | // warp to the workspace of the window |
1318 | else | 1318 | else |
1319 | screen().changeWorkspaceID(workspaceNumber()); | 1319 | screen().changeWorkspaceID(workspaceNumber(), false); |
1320 | } | 1320 | } |
1321 | 1321 | ||
1322 | if (isIconic()) { | 1322 | if (isIconic()) { |