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

List:       kwin
Subject:    FIX for XSYNC issue, bugs 178269, 183263, 241094,
From:       Thomas =?iso-8859-1?q?L=FCbking?= <thomas.luebking () web ! de>
Date:       2010-07-15 13:56:19
Message-ID: 201007151556.20205.thomas.luebking () web ! de
[Download RAW message or body]

as clemens kindly provided a testcase on bug 243094 and after testing the code 
a bit i think i found the source of the issue and a fix.

disclaimer:
i've no knowledge about the protocol design at all, sorry

it turned out that if a second sync request is send to the client before a 
sync event is received this seems to mess up things in the client and no more 
sync events are received in kwin for that client.

the solution was to move the unconditioned "sync_resize_pending = false;" into 
the Client::syncEvent()

this fixes the testcase, it will no more fallback to the sync timer (notice 
that a 10 second block after 50 resize events in the testcase is intended and 
raises the issue)

i also tested a(n unsync')d wine client w/o any regression.

it would be great if whoever wrote the XSYNC code could have a look into this 
solution and merge it or give an Ok to commit.

Thanks,
Thomas

["fix_178269_et_al.diff" (text/x-patch)]

Index: events.cpp
===================================================================
--- events.cpp	(Revision 1149465)
+++ events.cpp	(Arbeitskopie)
@@ -1698,6 +1698,7 @@
             sync_timeout = NULL;
             if( sync_resize_pending )
                 performMoveResize();
+            sync_resize_pending = false;
             }
         }
     }
Index: geometry.cpp
===================================================================
--- geometry.cpp	(Revision 1149465)
+++ geometry.cpp	(Arbeitskopie)
@@ -3299,7 +3299,6 @@
         sendSyncRequest();
         }
 #endif
-    sync_resize_pending = false;
     if( transparent )
         {
         if( !haveResizeEffect )


_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin


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

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