diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/FbCommands.cc | 3 | ||||
-rw-r--r-- | src/Screen.cc | 2 | ||||
-rw-r--r-- | src/Window.cc | 14 |
3 files changed, 13 insertions, 6 deletions
diff --git a/src/FbCommands.cc b/src/FbCommands.cc index 28c0a30..1cc1afe 100644 --- a/src/FbCommands.cc +++ b/src/FbCommands.cc | |||
@@ -433,8 +433,7 @@ void DeiconifyCmd::execute() { | |||
433 | (*it)->isStuck()) { | 433 | (*it)->isStuck()) { |
434 | if (m_dest == ORIGIN || m_dest == ORIGINQUIET) | 434 | if (m_dest == ORIGIN || m_dest == ORIGINQUIET) |
435 | screen->sendToWorkspace(old_workspace_num, (*it), change_ws); | 435 | screen->sendToWorkspace(old_workspace_num, (*it), change_ws); |
436 | else | 436 | (*it)->deiconify(false); |
437 | (*it)->deiconify(false); | ||
438 | } | 437 | } |
439 | } | 438 | } |
440 | break; | 439 | break; |
diff --git a/src/Screen.cc b/src/Screen.cc index 155a113..ebcaaed 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -1263,7 +1263,7 @@ void BScreen::sendToWorkspace(unsigned int id, FluxboxWindow *win, bool changeWS | |||
1263 | 1263 | ||
1264 | // if the window is on current workspace, show it; else hide it. | 1264 | // if the window is on current workspace, show it; else hide it. |
1265 | if (id == currentWorkspace()->workspaceID() && !win->isIconic()) | 1265 | if (id == currentWorkspace()->workspaceID() && !win->isIconic()) |
1266 | win->deiconify(false, false); | 1266 | win->show(); |
1267 | else { | 1267 | else { |
1268 | win->hide(true); | 1268 | win->hide(true); |
1269 | FocusControl::revertFocus(*this); | 1269 | FocusControl::revertFocus(*this); |
diff --git a/src/Window.cc b/src/Window.cc index 0db3b80..6a12664 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1415,9 +1415,17 @@ void FluxboxWindow::deiconify(bool reassoc, bool do_raise) { | |||
1415 | if (oplock) return; | 1415 | if (oplock) return; |
1416 | oplock = true; | 1416 | oplock = true; |
1417 | 1417 | ||
1418 | if (iconic || reassoc) { | 1418 | if (iconic && |
1419 | screen().reassociateWindow(this, screen().currentWorkspace()->workspaceID(), false); | 1419 | m_workspace_number != screen().currentWorkspace()->workspaceID()) { |
1420 | } else if (moving || m_workspace_number != screen().currentWorkspace()->workspaceID()) { | 1420 | // reassociate first, so it gets removed from screen's icon list |
1421 | screen().reassociateWindow(this, m_workspace_number, false); | ||
1422 | iconic = false; | ||
1423 | return; | ||
1424 | } | ||
1425 | |||
1426 | if (iconic || reassoc) | ||
1427 | screen().reassociateWindow(this, screen().currentWorkspaceID(), false); | ||
1428 | else if (moving || m_workspace_number != screen().currentWorkspaceID()) { | ||
1421 | oplock = false; | 1429 | oplock = false; |
1422 | return; | 1430 | return; |
1423 | } | 1431 | } |