diff options
-rw-r--r-- | src/Screen.cc | 4 | ||||
-rw-r--r-- | src/WorkspaceCmd.cc | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 1205d79..ff44f14 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -1535,6 +1535,7 @@ void BScreen::setLayer(FbTk::LayerItem &item, int layernum) { | |||
1535 | Goes to the workspace "right" of the current | 1535 | Goes to the workspace "right" of the current |
1536 | */ | 1536 | */ |
1537 | void BScreen::nextWorkspace(int delta) { | 1537 | void BScreen::nextWorkspace(int delta) { |
1538 | focusControl().stopCyclingFocus(); | ||
1538 | if (delta) | 1539 | if (delta) |
1539 | changeWorkspaceID( (currentWorkspaceID() + delta) % numberOfWorkspaces()); | 1540 | changeWorkspaceID( (currentWorkspaceID() + delta) % numberOfWorkspaces()); |
1540 | else if (m_former_workspace) | 1541 | else if (m_former_workspace) |
@@ -1545,6 +1546,7 @@ void BScreen::nextWorkspace(int delta) { | |||
1545 | Goes to the workspace "left" of the current | 1546 | Goes to the workspace "left" of the current |
1546 | */ | 1547 | */ |
1547 | void BScreen::prevWorkspace(int delta) { | 1548 | void BScreen::prevWorkspace(int delta) { |
1549 | focusControl().stopCyclingFocus(); | ||
1548 | if (delta) | 1550 | if (delta) |
1549 | changeWorkspaceID( (static_cast<signed>(numberOfWorkspaces()) + currentWorkspaceID() - (delta % numberOfWorkspaces())) % numberOfWorkspaces()); | 1551 | changeWorkspaceID( (static_cast<signed>(numberOfWorkspaces()) + currentWorkspaceID() - (delta % numberOfWorkspaces())) % numberOfWorkspaces()); |
1550 | else if (m_former_workspace) | 1552 | else if (m_former_workspace) |
@@ -1555,6 +1557,7 @@ void BScreen::prevWorkspace(int delta) { | |||
1555 | Goes to the workspace "right" of the current | 1557 | Goes to the workspace "right" of the current |
1556 | */ | 1558 | */ |
1557 | void BScreen::rightWorkspace(int delta) { | 1559 | void BScreen::rightWorkspace(int delta) { |
1560 | focusControl().stopCyclingFocus(); | ||
1558 | if (currentWorkspaceID()+delta < numberOfWorkspaces()) | 1561 | if (currentWorkspaceID()+delta < numberOfWorkspaces()) |
1559 | changeWorkspaceID(currentWorkspaceID()+delta); | 1562 | changeWorkspaceID(currentWorkspaceID()+delta); |
1560 | } | 1563 | } |
@@ -1563,6 +1566,7 @@ void BScreen::rightWorkspace(int delta) { | |||
1563 | Goes to the workspace "left" of the current | 1566 | Goes to the workspace "left" of the current |
1564 | */ | 1567 | */ |
1565 | void BScreen::leftWorkspace(int delta) { | 1568 | void BScreen::leftWorkspace(int delta) { |
1569 | focusControl().stopCyclingFocus(); | ||
1566 | if (currentWorkspaceID() >= static_cast<unsigned int>(delta)) | 1570 | if (currentWorkspaceID() >= static_cast<unsigned int>(delta)) |
1567 | changeWorkspaceID(currentWorkspaceID()-delta); | 1571 | changeWorkspaceID(currentWorkspaceID()-delta); |
1568 | } | 1572 | } |
diff --git a/src/WorkspaceCmd.cc b/src/WorkspaceCmd.cc index bca56c6..6d18b73 100644 --- a/src/WorkspaceCmd.cc +++ b/src/WorkspaceCmd.cc | |||
@@ -383,6 +383,7 @@ JumpToWorkspaceCmd::JumpToWorkspaceCmd(int workspace_num):m_workspace_num(worksp | |||
383 | void JumpToWorkspaceCmd::execute() { | 383 | void JumpToWorkspaceCmd::execute() { |
384 | BScreen *screen = Fluxbox::instance()->mouseScreen(); | 384 | BScreen *screen = Fluxbox::instance()->mouseScreen(); |
385 | if (screen != 0) { | 385 | if (screen != 0) { |
386 | screen->focusControl().stopCyclingFocus(); | ||
386 | int num = screen->numberOfWorkspaces(); | 387 | int num = screen->numberOfWorkspaces(); |
387 | int actual = m_workspace_num; | 388 | int actual = m_workspace_num; |
388 | // we need an extra +1, since it's subtracted in FbCommandFactory | 389 | // we need an extra +1, since it's subtracted in FbCommandFactory |