Make middle and right click on window buttons work again.
The solution looks a bit like a workaround for some kwin problem, though.
Why do I have to always fake a LeftButton press?

svn path=/trunk/kdebase/kwin/; revision=255894
This commit is contained in:
Luciano Montanaro 2003-10-03 12:03:16 +00:00
parent 47f5381fca
commit 5e32acc176
2 changed files with 14 additions and 16 deletions

View file

@ -209,12 +209,16 @@ void B2Button::setPixmaps(int button_id)
void B2Button::mousePressEvent( QMouseEvent* e ) void B2Button::mousePressEvent( QMouseEvent* e )
{ {
last_button = e->button(); last_button = e->button();
QButton::mousePressEvent(e); QMouseEvent me(e->type(), e->pos(), e->globalPos(),
LeftButton, e->state());
QButton::mousePressEvent(&me);
} }
void B2Button::mouseReleaseEvent( QMouseEvent* e ) void B2Button::mouseReleaseEvent( QMouseEvent* e )
{ {
QButton::mouseReleaseEvent(e); QMouseEvent me(e->type(), e->pos(), e->globalPos(),
LeftButton, e->state());
QButton::mouseReleaseEvent(&me);
} }
// ===================================== // =====================================
@ -315,27 +319,23 @@ void B2Titlebar::paintEvent(QPaintEvent *)
void B2Titlebar::mouseDoubleClickEvent( QMouseEvent * ) void B2Titlebar::mouseDoubleClickEvent( QMouseEvent * )
{ {
client->titlebarDblClickOperation(); client->titlebarDblClickOperation();
// ?? client->workspace()->requestFocus( client );
} }
#if 0 // TODO JUMPYTITLEBAR #if 0
void B2Titlebar::mousePressEvent( QMouseEvent * e ) void B2Titlebar::mousePressEvent( QMouseEvent * e )
{ {
shift_move = e->state() & ShiftButton; shift_move = e->state() & ShiftButton;
if (shift_move) { if (shift_move) {
moveOffset = e->globalPos(); moveOffset = e->globalPos();
} else {
client->processMousePressEvent(e);
// client->performWindowOperation(KDecoration::MoveOp);
} }
QMouseEvent _e(QEvent::MouseButtonPress, mapToParent(e->pos()),
e->globalPos(), e->button(), e->state());
client->processMousePressEvent(&_e);
} }
void B2Titlebar::mouseReleaseEvent( QMouseEvent * e ) void B2Titlebar::mouseReleaseEvent( QMouseEvent * e )
{ {
shift_move = false; shift_move = false;
QMouseEvent _e(QEvent::MouseButtonRelease, mapToParent(e->pos()),
e->globalPos(), e->button(), e->state());
//client->widget()->mouseReleaseEvent(&_e);
} }
void B2Titlebar::mouseMoveEvent( QMouseEvent * e ) void B2Titlebar::mouseMoveEvent( QMouseEvent * e )
@ -347,12 +347,9 @@ void B2Titlebar::mouseMoveEvent( QMouseEvent * e )
if (oldx >= 0 && oldx <= rect().right()) { if (oldx >= 0 && oldx <= rect().right()) {
client->titleMoveRel(xdiff); client->titleMoveRel(xdiff);
} }
} else { }
QMouseEvent _e(QEvent::MouseMove, mapToParent(e->pos()),
e->globalPos(), e->button(), e->state());
//client->widget()->mouseMoveEvent( &_e);
}
} }
#endif #endif
// ===================================== // =====================================
@ -442,6 +439,7 @@ void B2Client::init()
button[i]->setBg(c); button[i]->setBg(c);
titlebar->recalcBuffer(); titlebar->recalcBuffer();
titlebar->installEventFilter(this);
positionButtons(); positionButtons();
//connect(options(), SIGNAL(resetClients()), this, SLOT(slotReset())); //connect(options(), SIGNAL(resetClients()), this, SLOT(slotReset()));

View file

@ -70,7 +70,7 @@ protected:
void paintEvent( QPaintEvent* ); void paintEvent( QPaintEvent* );
bool x11Event(XEvent *e); bool x11Event(XEvent *e);
void mouseDoubleClickEvent( QMouseEvent * ); void mouseDoubleClickEvent( QMouseEvent * );
#if 0 // TODO JUMPYTITLEBAR #if 0
void mousePressEvent( QMouseEvent * ); void mousePressEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * ); void mouseReleaseEvent( QMouseEvent * );
void mouseMoveEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *);