[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/applets/tasks
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2009-06-22 23:51:19
Message-ID: 1245714679.620234.3889.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 985505 by aseigo:
don't update geometry more than three times a second; prevents taking up more cpu \
than needed when taskbar is undergoing changes in size, particularly when it's made \
to resize constantly due to another widget BUG:186594
M +15 -5 abstracttaskitem.cpp
M +2 -0 abstracttaskitem.h
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/abstracttaskitem.cpp \
#985504:985505 @@ -68,6 +68,7 @@
m_animId(0),
m_alpha(1),
m_backgroundPrefix("normal"),
+ m_updateGeometryTimerId(0),
m_updateTimerId(0),
m_hoverEffectTimerId(0),
m_attentionTimerId(0),
@@ -363,7 +364,11 @@
void AbstractTaskItem::timerEvent(QTimerEvent *event)
{
- if (event->timerId() == m_updateTimerId) {
+ if (event->timerId() == m_updateGeometryTimerId) {
+ killTimer(m_updateGeometryTimerId);
+ m_updateGeometryTimerId = 0;
+ publishIconGeometry();
+ } else if (event->timerId() == m_updateTimerId) {
killTimer(m_updateTimerId);
m_updateTimerId = 0;
update();
@@ -383,6 +388,9 @@
update();
} else if (event->timerId() == m_hoverEffectTimerId) {
+ killTimer(m_hoverEffectTimerId);
+ m_hoverEffectTimerId = 0;
+
#ifdef Q_WS_X11
QList<WId> windows;
@@ -444,9 +452,6 @@
reinterpret_cast<unsigned char *>(data.data()), \
data.size()); }
#endif
-
- killTimer(m_hoverEffectTimerId);
- m_hoverEffectTimerId = 0;
} else {
QGraphicsWidget::timerEvent(event);
}
@@ -839,7 +844,12 @@
void AbstractTaskItem::setGeometry(const QRectF& geometry)
{
QGraphicsWidget::setGeometry(geometry);
- publishIconGeometry();
+ if (m_lastGeometryUpdate.elapsed() < 350) {
+ m_updateGeometryTimerId = startTimer(350 - m_lastGeometryUpdate.elapsed());
+ } else {
+ publishIconGeometry();
+ m_lastGeometryUpdate.restart();
+ }
}
QRectF AbstractTaskItem::iconRect(const QRectF &b) const
--- trunk/KDE/kdebase/workspace/plasma/applets/tasks/abstracttaskitem.h \
#985504:985505 @@ -224,7 +224,9 @@
QRectF m_activeRect;
QPointF _dragOffset;
+ QTime m_lastGeometryUpdate;
QTime m_lastUpdate;
+ int m_updateGeometryTimerId;
int m_updateTimerId;
int m_hoverEffectTimerId;
int m_attentionTimerId;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic