Skip to content

Commit 653937a

Browse files
committed
Fix Icon button focus issue on DeepinOS
1 parent 018c302 commit 653937a

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/frontend/TopBar.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,8 +361,17 @@ bool TopBar::eventFilter(QObject *object, QEvent *event) {
361361
event->accept();
362362
} else if (event->type() == QEvent::MouseMove) {
363363
if (canMoveTopbar) {
364-
if(!this->windowHandle()->startSystemMove()){
365-
QMouseEvent *e = (QMouseEvent *) event;
364+
QMouseEvent *e = (QMouseEvent *) event;
365+
if (!(e->buttons() & Qt::LeftButton)) {
366+
// Mouse release event was missed; stop dragging.
367+
canMoveTopbar = false;
368+
ui->buttonIcon->setCursor(Qt::ArrowCursor);
369+
} else if(this->windowHandle()->startSystemMove()){
370+
// The window manager now owns the drag and will consume the
371+
// mouse release event, so reset our drag state immediately.
372+
canMoveTopbar = false;
373+
ui->buttonIcon->setCursor(Qt::ArrowCursor);
374+
} else {
366375
ui->buttonIcon->setCursor(Qt::ClosedHandCursor);
367376
move(e->globalX() - pressedMouseX, e->globalY() - pressedMouseY);
368377
}

src/frontend/TopBar.ui

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ QPushButton {
3737
margin: 2px;
3838
color: rgba(0, 0, 0, 0.7);
3939
font-size: 18px;
40+
outline: none;
41+
}
42+
43+
QPushButton:focus {
44+
outline: none;
4045
}
4146

4247
QPushButton:hover {

0 commit comments

Comments
 (0)