diff --git a/client.cpp b/client.cpp index 57f6bb5488..6fca64ed0c 100644 --- a/client.cpp +++ b/client.cpp @@ -623,8 +623,8 @@ bool Client::manage( bool isMapped, bool doNotShow, bool isInitial ) maximize( Client::MaximizeHorizontal ); - if ( isMaximizable() && !isMaximized() && width() >= area.width() && height() >= area.height() - && ( geom.topLeft() == area.topLeft() || + if ( isMaximizable() && !isMaximized() && width() >= area.width() && height() >= area.height() + && ( geom.topLeft() == area.topLeft() || geom.topLeft() == workspace()->geometry().topLeft() ) ) { maximize( Client::MaximizeFull ); } @@ -1792,7 +1792,7 @@ void Client::gravitate( bool invert ) */ bool Client::x11Event( XEvent * e) { - if ( e->type == EnterNotify && e->xcrossing.mode == NotifyNormal ) { + if ( e->type == EnterNotify && ( e->xcrossing.mode == NotifyNormal || e->xcrossing.mode == NotifyUngrab ) ) { if ( options->focusPolicy == Options::ClickToFocus ) return TRUE;