diff --git a/clients/ozone/oxygenbutton.cpp b/clients/ozone/oxygenbutton.cpp index 64c6a5dd5a..6c282e6205 100644 --- a/clients/ozone/oxygenbutton.cpp +++ b/clients/ozone/oxygenbutton.cpp @@ -139,15 +139,31 @@ void OxygenButton::leaveEvent(QEvent *e) } ////////////////////////////////////////////////////////////////////////////// -// pressSlot() +// mousePressEvent() // ------------ // Mouse has pressed the button -// TODO: never called? -void OxygenButton::pressSlot() + +void OxygenButton::mousePressEvent(QMouseEvent *e) { status_ = Oxygen::Pressed; update(); + + KCommonDecorationButton::mousePressEvent(e); +} + +////////////////////////////////////////////////////////////////////////////// +// mouseReleaseEvent() +// ------------ +// Mouse has released the button + +void OxygenButton::mouseReleaseEvent(QMouseEvent *e) +{ + status_ = Oxygen::Normal; + update(); + + KCommonDecorationButton::mouseReleaseEvent(e); } + ////////////////////////////////////////////////////////////////////////////// // drawButton() // ------------ @@ -201,7 +217,7 @@ void OxygenButton::paintEvent(QPaintEvent *) } QLinearGradient lg = helper_.decoGradient(QRect(4,4,13,13), color); - QColor bt = OxygenFactory::blendTitlebarColors()?pal.button().color() + QColor bt = OxygenFactory::blendTitlebarColors()?pal.window().color() :client_.options()->color(KDecorationDefines::ColorButtonBg,client_.isActive()); painter.drawPixmap(0, 0, helper_.windecoButton(bt, status_ == Oxygen::Pressed)); diff --git a/clients/ozone/oxygenbutton.h b/clients/ozone/oxygenbutton.h index 1dbeae4138..e6529d20ac 100644 --- a/clients/ozone/oxygenbutton.h +++ b/clients/ozone/oxygenbutton.h @@ -57,6 +57,10 @@ public: const int lastMousePress(){return lastmouse_;} void reset(long unsigned int){repaint();} +protected: + void mousePressEvent(QMouseEvent *e); + void mouseReleaseEvent(QMouseEvent *e); + private: void enterEvent(QEvent *e); void leaveEvent(QEvent *e); @@ -64,9 +68,6 @@ private: void drawIcon(QPainter *p, QPalette &pal, ButtonType &type); QColor buttonDetailColor(const QPalette &palette); -private Q_SLOTS: - void pressSlot(); - private: OxygenClient &client_; OxygenHelper &helper_;