mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 03:00:46 +03:00
feat: hide all popup menus when press leftbutton on somewhere else
Log: according to the bug on https://bugreports.qt.io/browse/QTBUG-83972, The menu will always stay if not click one of the item. So I try to make a hack for it, wait qt solve it someday
This commit is contained in:
parent
1d8fc18304
commit
7d95ac23ce
5 changed files with 39 additions and 0 deletions
|
@ -25,6 +25,14 @@ Item {
|
|||
|
||||
property string searchString: ""
|
||||
|
||||
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
|
||||
Connections {
|
||||
function onHideMenu() {
|
||||
messageContextMenu.close()
|
||||
}
|
||||
target: MainWindow
|
||||
}
|
||||
|
||||
ScrollBar {
|
||||
id: scrollbar
|
||||
parent: chat.parent
|
||||
|
|
|
@ -20,6 +20,15 @@ Page {
|
|||
property int avatarSize: Math.ceil(fontMetrics.lineSpacing * 2.3)
|
||||
property bool collapsed: false
|
||||
|
||||
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
|
||||
Connections {
|
||||
function onHideMenu() {
|
||||
userInfoMenu.close()
|
||||
roomContextMenu.close()
|
||||
}
|
||||
target: MainWindow
|
||||
}
|
||||
|
||||
Component {
|
||||
id: roomDirectoryComponent
|
||||
|
||||
|
|
|
@ -30,6 +30,14 @@ Pane {
|
|||
|
||||
property string searchString: ""
|
||||
|
||||
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
|
||||
Connections {
|
||||
function onHideMenu() {
|
||||
roomOptionsMenu.close()
|
||||
}
|
||||
target: MainWindow
|
||||
}
|
||||
|
||||
onRoomIdChanged: {
|
||||
searchString = "";
|
||||
searchButton.searchActive = false;
|
||||
|
|
|
@ -359,6 +359,16 @@ MainWindow::event(QEvent *event)
|
|||
return QQuickView::event(event);
|
||||
}
|
||||
|
||||
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
|
||||
void
|
||||
MainWindow::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->button() == Qt::LeftButton) {
|
||||
emit hideMenu();
|
||||
}
|
||||
return QQuickView::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::restoreWindowSize()
|
||||
{
|
||||
|
|
|
@ -69,6 +69,8 @@ public:
|
|||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
bool event(QEvent *event) override;
|
||||
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
|
||||
void mousePressEvent(QMouseEvent *) override;
|
||||
|
||||
private slots:
|
||||
//! Handle interaction with the tray icon.
|
||||
|
@ -77,6 +79,8 @@ private slots:
|
|||
virtual void setWindowTitle(int notificationCount);
|
||||
|
||||
signals:
|
||||
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
|
||||
void hideMenu();
|
||||
void reload();
|
||||
void secretsChanged();
|
||||
|
||||
|
|
Loading…
Reference in a new issue