diff --git a/activation.cpp b/activation.cpp index 25471c1dba..f1458744b9 100644 --- a/activation.cpp +++ b/activation.cpp @@ -308,8 +308,8 @@ void Workspace::requestFocus( Client* c, bool force ) Client* modal = c->findModal(); if( modal != NULL && modal != c ) { - if( !modal->isOnDesktop( c->desktop())) - modal->setDesktop( c->desktop()); + if( !modal->isOnDesktop( c->desktop())) // move the modal to client's desktop + modal->setDesktop( c->isOnAllDesktops() ? currentDesktop() : c->desktop()); requestFocus( modal, force ); return; }