aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkt <markt>2007-11-12 23:16:13 (GMT)
committermarkt <markt>2007-11-12 23:16:13 (GMT)
commitbed4ba4d65dba0d12a8352a46436f25ce3d0e7d1 (patch)
treea858fb9aca5ed5d2e9fe0b7e38a4dd35d2805001
parent5d7043320da1378e7dd3b10f7e425f3b47455b28 (diff)
downloadfluxbox-bed4ba4d65dba0d12a8352a46436f25ce3d0e7d1.zip
fluxbox-bed4ba4d65dba0d12a8352a46436f25ce3d0e7d1.tar.bz2
a little fix for focusing lowered tabs on other workspaces
-rw-r--r--src/Screen.cc6
-rw-r--r--src/Screen.hh2
-rw-r--r--src/Window.cc2
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
1188void BScreen::changeWorkspaceID(unsigned int id) { 1188void 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()) {