diff --git a/client.cpp b/client.cpp index 42b8fc2e0c..ca29899d91 100644 --- a/client.cpp +++ b/client.cpp @@ -842,7 +842,7 @@ bool Client::windowEvent( XEvent * e) fetchName(); if ( ( dirty & NET::WMStrut ) != 0 ) workspace()->updateClientArea(); - if ( ( dirty & NET::WMIcon) != 0 ) + if ( ( dirty & NET::WMIcon) != 0 ) getWMHints(); switch (e->type) { @@ -858,21 +858,21 @@ bool Client::windowEvent( XEvent * e) case ButtonRelease: break; case FocusIn: - if ( e->xfocus.mode == NotifyUngrab ) - break; // we don't care - if ( e->xfocus.detail == NotifyPointer ) - break; // we don't care + if ( e->xfocus.mode == NotifyUngrab ) + break; // we don't care + if ( e->xfocus.detail == NotifyPointer ) + break; // we don't care setActive( TRUE ); break; case FocusOut: - if ( e->xfocus.mode == NotifyGrab ) - break; // we don't care + if ( e->xfocus.mode == NotifyGrab ) + break; // we don't care if ( isShade() ) break; // we neither - if ( e->xfocus.detail != NotifyNonlinear ) - return TRUE; // hack for motif apps like netscape - if ( QApplication::activePopupWidget() ) - break; + if ( e->xfocus.detail != NotifyNonlinear ) + return TRUE; // hack for motif apps like netscape + if ( QApplication::activePopupWidget() ) + break; setActive( FALSE ); break; case ReparentNotify: @@ -1976,7 +1976,7 @@ bool Client::x11Event( XEvent * e) autoRaiseTimer->start( options->autoRaiseInterval, TRUE ); } - if ( options->focusPolicy != Options::FocusStrictlyUnderMouse && ( isDesktop() || isDock() || isMenu() ) ) + if ( options->focusPolicy != Options::FocusStrictlyUnderMouse && ( isDesktop() || isDock() || isMenu() ) ) return TRUE; workspace()->requestFocus( this ); diff --git a/main.cpp b/main.cpp index 6b61b46528..1530e06a06 100644 --- a/main.cpp +++ b/main.cpp @@ -155,6 +155,9 @@ bool Application::x11EventFilter( XEvent *e ) case PropertyNotify: kwin_time = e->xproperty.time; break; + case EnterNotify: + case LeaveNotify: + kwin_time = e->xcrossing.time; default: break; }