summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Ewmh.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc
index e5bf6b5..ce0afb5 100644
--- a/src/Ewmh.cc
+++ b/src/Ewmh.cc
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: Ewmh.cc,v 1.51 2004/09/11 13:34:36 fluxgen Exp $ 22// $Id: Ewmh.cc,v 1.52 2004/10/16 22:20:05 akir Exp $
23 23
24#include "Ewmh.hh" 24#include "Ewmh.hh"
25 25
@@ -617,9 +617,22 @@ bool Ewmh::checkClientMessage(const XClientMessageEvent &ce,
617 // ce.window = window to focus 617 // ce.window = window to focus
618 618
619 winclient->focus(); 619 winclient->focus();
620 if (winclient->fbwindow()) 620 if (winclient->fbwindow()) {
621 winclient->fbwindow()->raise(); 621
622 622 FluxboxWindow* fbwin = winclient->fbwindow();
623 fbwin->raise();
624
625 // if the raised window is on a different workspace
626 // we do what the user wish:
627 // either ignore|go to that workspace|get the window
628 if (fbwin->screen().currentWorkspaceID() != fbwin->workspaceNumber()) {
629 if (fbwin->screen().getFollowModel() == BScreen::FOLLOW_ACTIVE_WINDOW) {
630 fbwin->screen().changeWorkspaceID(fbwin->workspaceNumber());
631 } else if (fbwin->screen().getFollowModel() == BScreen::FETCH_ACTIVE_WINDOW) {
632 fbwin->screen().sendToWorkspace(fbwin->screen().currentWorkspaceID(), fbwin);
633 } // else we ignore it. my favourite mode :)
634 }
635 }
623 return true; 636 return true;
624 } else if (ce.message_type == m_net_close_window) { 637 } else if (ce.message_type == m_net_close_window) {
625 if (winclient == 0) 638 if (winclient == 0)