diff options
Diffstat (limited to 'src/Ewmh.cc')
-rw-r--r-- | src/Ewmh.cc | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index ea73807..019751f 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -783,31 +783,9 @@ bool Ewmh::checkClientMessage(const XClientMessageEvent &ce, | |||
783 | // ce.window = window to focus | 783 | // ce.window = window to focus |
784 | 784 | ||
785 | if (winclient->fbwindow()) { | 785 | if (winclient->fbwindow()) { |
786 | 786 | winclient->focus(); | |
787 | FluxboxWindow* fbwin = winclient->fbwindow(); | 787 | winclient->fbwindow()->raise(); |
788 | |||
789 | // if the raised window is on a different workspace | ||
790 | // we do what the user wish: | ||
791 | // either ignore|go to that workspace|get the window | ||
792 | if (fbwin->screen().currentWorkspaceID() != fbwin->workspaceNumber() | ||
793 | && !fbwin->isStuck()) { | ||
794 | BScreen::FollowModel model = (ce.data.l[0] == 2) ? | ||
795 | fbwin->screen().getUserFollowModel() : | ||
796 | fbwin->screen().getFollowModel(); | ||
797 | if (model == BScreen::FOLLOW_ACTIVE_WINDOW) { | ||
798 | fbwin->screen().changeWorkspaceID(fbwin->workspaceNumber()); | ||
799 | } else if (model == BScreen::FETCH_ACTIVE_WINDOW) { | ||
800 | fbwin->screen().sendToWorkspace(fbwin->screen().currentWorkspaceID(), fbwin); | ||
801 | } else if (model == BScreen::SEMIFOLLOW_ACTIVE_WINDOW) { | ||
802 | if (fbwin->isIconic()) | ||
803 | fbwin->screen().sendToWorkspace(fbwin->screen().currentWorkspaceID(), fbwin); | ||
804 | else | ||
805 | fbwin->screen().changeWorkspaceID(fbwin->workspaceNumber()); | ||
806 | } // else we ignore it. my favourite mode :) | ||
807 | } | ||
808 | fbwin->raise(); | ||
809 | } | 788 | } |
810 | winclient->focus(); | ||
811 | return true; | 789 | return true; |
812 | } else if (ce.message_type == m_net_close_window) { | 790 | } else if (ce.message_type == m_net_close_window) { |
813 | if (winclient == 0) | 791 | if (winclient == 0) |