[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/kwin
From:       Luboš Luňák <l.lunak () kde ! org>
Date:       2004-03-11 13:15:04
Message-ID: 20040311131504.5CC179990 () office ! kde ! org
[Download RAW message or body]

CVS commit by lunakl: 

Ignore FocusIn events for clients which were unmapped by kwin
but had got focus shortly before. Otherwise quick switching between
two virtual desktops with Konsoles can result in demand attention
state.


  M +1 -0      activation.cpp   2.26
  M +2 -0      events.cpp   1.64


--- kdebase/kwin/activation.cpp  #2.25:2.26
@@ -404,4 +404,5 @@ void Workspace::gotFocusIn( const Client
         while( should_get_focus.first() != c )
             should_get_focus.pop_front();
+        should_get_focus.pop_front(); // remove 'c'
         }
     }

--- kdebase/kwin/events.cpp  #1.63:1.64
@@ -1310,4 +1310,6 @@ void Client::focusInEvent( XFocusInEvent
     if ( e->detail == NotifyPointer )
         return;  // we don't care
+    if( !isShown( false ) || !isOnCurrentDesktop()) // we unmapped it, but it got focus meanwhile ->
+        return;            // activateNextClient() already transferred focus elsewhere
     // check if this client is in should_get_focus list or if activation is allowed
     bool activate =  workspace()->allowClientActivation( this, -1U, true );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic