[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/suse_kickoff_qstyle/kicker/kicker/buttons
From: Dirk Mueller <mueller () kde ! org>
Date: 2006-11-13 16:40:34
Message-ID: 1163436034.574311.27215.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 604663 by mueller:
- sloppy region support for the activate-on-hover feature
M +42 -10 knewbutton.cpp
M +2 -0 knewbutton.h
--- branches/work/suse_kickoff_qstyle/kicker/kicker/buttons/knewbutton.cpp #604662:604663
@@ -254,15 +254,29 @@
void KNewButton::enterEvent(QEvent* e)
{
- KButton::enterEvent(e);
+ KButton::enterEvent(e);
- m_mouseInside = true;
- if (KickerSettings::openOnHover())
- m_hoverTimer = startTimer(kMax(200,QApplication::doubleClickInterval()/2));
+ QSize s(size());
+ s *= 0.25;
+ s = s.expandedTo(QSize(6,6));
- m_active = true;
- m_movie->unpause();
- m_movie->restart();
+ switch (popupDirection()) {
+ case KPanelApplet::Left:
+ m_sloppyRegion = QRect(rect().topRight() - QPoint(s.width()-1, 0), s);
+ break;
+ case KPanelApplet::Right:
+ m_sloppyRegion = QRect(rect().topLeft(), s);
+ break;
+ case KPanelApplet::Up:
+ m_sloppyRegion = QRect(rect().bottomLeft() - QPoint(0, s.height()-1), s);
+ break;
+ case KPanelApplet::Down:
+ m_sloppyRegion = QRect(rect().topLeft(), s);
+ }
+
+ m_active = true;
+ m_movie->unpause();
+ m_movie->restart();
}
void KNewButton::rewindMovie()
@@ -276,7 +290,7 @@
if (m_hoverTimer != -1)
killTimer(m_hoverTimer);
- m_hoverTimer = startTimer(500);
+ m_hoverTimer = startTimer(QApplication::startDragTime());
m_mouseInside = true;
m_drag = true;
}
@@ -297,6 +311,24 @@
KButton::leaveEvent(e);
}
+void KNewButton::mouseMoveEvent(QMouseEvent* e)
+{
+ KButton::mouseMoveEvent(e);
+
+ m_mouseInside = m_sloppyRegion.contains(e->pos());
+
+ if ( m_sloppyRegion.contains(e->pos()))
+ {
+ if (m_hoverTimer == -1 && KickerSettings::openOnHover())
+ m_hoverTimer = startTimer(kMax(200,QApplication::doubleClickInterval()/2));
+ }
+ else if (m_hoverTimer != -1)
+ {
+ killTimer(m_hoverTimer);
+ m_hoverTimer = -1;
+ }
+}
+
void KNewButton::slotStopAnimation()
{
m_active = false;
@@ -368,8 +400,8 @@
void KNewButton::timerEvent(QTimerEvent* e)
{
- if (e->timerId() == m_hoverTimer) {
-
+ if (e->timerId() == m_hoverTimer)
+ {
if (m_mouseInside && !isDown())
showMenu();
--- branches/work/suse_kickoff_qstyle/kicker/kicker/buttons/knewbutton.h #604662:604663
@@ -70,6 +70,7 @@
virtual void enterEvent(QEvent* e);
virtual void leaveEvent(QEvent* e);
+ virtual void mouseMoveEvent(QMouseEvent* e);
virtual void dragEnterEvent(QDragEnterEvent*);
virtual void dragLeaveEvent(QDragLeaveEvent*);
virtual bool eventFilter(QObject *, QEvent *);
@@ -81,6 +82,7 @@
QMovie* m_movie;
QPixmap m_active_pixmap;
QPoint m_oldPos;
+ QRect m_sloppyRegion;
int m_hoverTimer;
int m_openTimer;
bool m_active;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic