From 9d4a7c3d19368d6e087d74a6217dd2c25406d3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Sun, 28 Aug 2011 14:23:34 +0200 Subject: [PATCH] drop ignored damage events from the X11 event queue --- composite.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/composite.cpp b/composite.cpp index 7257bb6203..e58537d4c7 100644 --- a/composite.cpp +++ b/composite.cpp @@ -587,7 +587,19 @@ static QVector damageRects; void Toplevel::damageNotifyEvent(XDamageNotifyEvent* e) { if (damageRatio == 1.0) // we know that we're completely damaged, no need to tell us again + { // drop events + while (XPending(display())) { + EventUnion e2; + if (XPeekEvent(display(), &e2.e) && e2.e.type == Extensions::damageNotifyEvent() && + e2.e.xany.window == frameId()) { + XNextEvent(display(), &e2.e); + continue; + } + break; + } + return; + } const float area = rect().width()*rect().height(); damageRects.reserve(16);