From 2d81d28e7aac11608b7571475260a355a1dbc0a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Tue, 1 Feb 2011 16:35:51 +0100 Subject: [PATCH] kwin: Use QBasicTimer instead of managing the timer ID manually. --- composite.cpp | 19 ++++++------------- workspace.cpp | 1 - workspace.h | 4 ++-- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/composite.cpp b/composite.cpp index a3825b0e6d..7ad046024c 100644 --- a/composite.cpp +++ b/composite.cpp @@ -247,9 +247,7 @@ void Workspace::finishCompositing() effects = NULL; delete scene; scene = NULL; - if (compositeTimer) - killTimer(compositeTimer); - compositeTimer = 0; + compositeTimer.stop(); mousePollingTimer.stop(); repaints_region = QRegion(); for (ClientList::ConstIterator it = clients.constBegin(); @@ -364,9 +362,8 @@ void Workspace::addRepaintFull() void Workspace::timerEvent(QTimerEvent *te) { - if (te->timerId() == compositeTimer) { - killTimer(compositeTimer); - compositeTimer = 0; + if (te->timerId() == compositeTimer.timerId()) { + compositeTimer.stop(); performCompositing(); } else QObject::timerEvent(te); @@ -463,9 +460,6 @@ void Workspace::setCompositeTimer() if (!compositing()) // should not really happen, but there may be e.g. some damage events still pending return; - if (compositeTimer) - killTimer(compositeTimer); - // interval - "time since last paint completion" - "time we need to paint" uint passed = nextPaintReference.msecsTo(QTime::currentTime()) << 10; uint delay = fpsInterval; @@ -477,7 +471,8 @@ void Workspace::setCompositeTimer() delay -= ((passed + ((scene->estimatedRenderTime() + vBlankPadding) << 10)) % vBlankInterval); } else delay = qBound(0, int(delay - passed), 250 << 10); - compositeTimer = startTimer(delay >> 10); + + compositeTimer.start(delay >> 10, this); } void Workspace::startMousePolling() @@ -561,9 +556,7 @@ void Workspace::checkCompositePaintTime(int msec) "If this was only a temporary problem, you can resume using the '%1' shortcut.\n" "You can disable functionality checks in System Settings (on the Advanced tab in Desktop Effects).", shortcut); Notify::raise(Notify::CompositingSlow, message); - if (compositeTimer) - killTimer(compositeTimer); - compositeTimer = startTimer(1000); // so that it doesn't trigger sooner than suspendCompositing() + compositeTimer.start(1000, this); // so that it doesn't trigger sooner than suspendCompositing() } } diff --git a/workspace.cpp b/workspace.cpp index 9c7769787e..922de171fb 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -152,7 +152,6 @@ Workspace::Workspace(bool restore) , forced_global_mouse_grab(false) , cm_selection(NULL) , compositingSuspended(false) - , compositeTimer(0) , xrrRefreshRate(0) , overlay(None) , overlay_visible(true) diff --git a/workspace.h b/workspace.h index edada9bcb3..c3917891b5 100644 --- a/workspace.h +++ b/workspace.h @@ -1177,7 +1177,7 @@ private: KSelectionOwner* cm_selection; bool compositingSuspended; - int compositeTimer; + QBasicTimer compositeTimer; QTime nextPaintReference; QTimer mousePollingTimer; uint vBlankInterval, vBlankPadding, fpsInterval, estimatedRenderTime; @@ -1469,7 +1469,7 @@ inline bool Workspace::hasClient(const Client* c) inline void Workspace::checkCompositeTimer() { - if (!compositeTimer) + if (!compositeTimer.isActive()) setCompositeTimer(); }