aboutsummaryrefslogtreecommitdiff
path: root/src/ui/button.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/button.cpp')
-rw-r--r--src/ui/button.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/ui/button.cpp b/src/ui/button.cpp
index b9ee9cf09..4ec67ac4d 100644
--- a/src/ui/button.cpp
+++ b/src/ui/button.cpp
@@ -23,6 +23,7 @@
#include "button.h"
#include "skin.h"
+#include <QMouseEvent>
Button::Button (QWidget *parent, uint normal, uint pressed)
: PixmapWidget (parent)
@@ -53,11 +54,24 @@ void Button::setON (bool on)
void Button::mousePressEvent (QMouseEvent *e)
{
setON (TRUE);
+ m_cursorin = TRUE;
QWidget::mousePressEvent(e);
}
void Button::mouseReleaseEvent (QMouseEvent*)
{
setON (FALSE);
- emit clicked();
+ if (m_cursorin)
+ emit clicked();
+}
+
+void Button::mouseMoveEvent (QMouseEvent *e)
+{
+ if ( !m_cursorin && rect().contains(e->pos()) ) {
+ m_cursorin = TRUE;
+ setON (TRUE);
+ } else if ( m_cursorin && !rect().contains(e->pos()) ) {
+ m_cursorin = FALSE;
+ setON (FALSE);
+ }
}