diff --git a/debian/changelog b/debian/changelog index 7351f55f9df27f9c63ec89141450d4c85c6129b4..14d1fa8f0f72f7e592d08f7e958de69927a0d0b6 100755 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +ukui-menu (3.1.1-ok4~0712) yangtze; urgency=medium + + * close-cd #128498 + 修复【wayland】【开始菜单】多次点击tab键和回车键后,开始菜单点不开问题 + + -- lixueman Tue, 12 Jul 2022 16:11:49 +0800 + ukui-menu (3.1.1-ok4~0708) yangtze; urgency=medium * 调整全屏窗口初始化代码结构 diff --git a/src/QtSingleApplication/qtsingleapplication.cpp b/src/QtSingleApplication/qtsingleapplication.cpp index e3ba444ee2b97a7557735e5dfed35e70c5526615..d957182bb690faed6e74ad735e75d800cd0805d8 100755 --- a/src/QtSingleApplication/qtsingleapplication.cpp +++ b/src/QtSingleApplication/qtsingleapplication.cpp @@ -350,19 +350,17 @@ void QtSingleApplication::activateWindow() myDebug() << "单例触发activateWindow"; if (!g_projectCodeName.contains("V10SP1-edu")) { MainWindow *w = qobject_cast(actWin); - - if (this->applicationState() & Qt::ApplicationInactive) { - myDebug() << "单例内触发开始菜单显示"; - actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); - // actWin->raise(); - // actWin->showNormal(); - // actWin->activateWindow(); - w->showWindow(); - } else { - myDebug() << "单例内触发开始菜单隐藏"; - actWin->setWindowState(actWin->windowState() & Qt::WindowMinimized); - w->hideWindow(); - } + w->windowOption(); + +// if (this->applicationState() & Qt::ApplicationInactive) { +// myDebug() << "单例内触发开始菜单显示"; +// actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized); +// w->showWindow(); +// } else { +// myDebug() << "单例内触发开始菜单隐藏"; +// actWin->setWindowState(actWin->windowState() & Qt::WindowMinimized); +// w->hideWindow(); +// } } else { TabletWindow *w = qobject_cast(actWin); w->showPCMenu(); diff --git a/src/UserInterface/ListView/klistview.cpp b/src/UserInterface/ListView/klistview.cpp index b927ba2dfc15f759b3341a8394532fd5067de8b5..96a03e6ebf49c09606ee396da14ee73c475e4ae3 100755 --- a/src/UserInterface/ListView/klistview.cpp +++ b/src/UserInterface/ListView/klistview.cpp @@ -63,6 +63,7 @@ void KListView::paintEvent(QPaintEvent *e) void KListView::mouseMoveEvent(QMouseEvent *e) { this->clearFocus(); + return QListView::mouseMoveEvent(e); } void KListView::mousePressEvent(QMouseEvent *event) diff --git a/src/UserInterface/mainwindow.cpp b/src/UserInterface/mainwindow.cpp index d65d22104bf6805e8114f60e3c45c05fc09bce14..4a3f7d9b6075c924e1bc8fe477bfde267809ac7b 100755 --- a/src/UserInterface/mainwindow.cpp +++ b/src/UserInterface/mainwindow.cpp @@ -181,7 +181,7 @@ void MainWindow::registDbusServer() } else { m_fullWindow->show(); setMaxWindowPos(); - // fullWindow->raise(); + m_fullWindow->raise(); m_fullWindow->activateWindow(); } } @@ -506,6 +506,15 @@ void MainWindow::initTabOrder() setTabOrder(m_minMaxChangeButton, m_powerOffButton); } +void MainWindow::windowOption() +{ + if (this->isVisible() || m_fullWindow->isVisible()) { + hideWindow(); + } else { + showWindow(); + } +} + void MainWindow::initUi() { qDebug() << "init UI"; @@ -684,6 +693,7 @@ bool MainWindow::event(QEvent *event) if (QEvent::WindowDeactivate == event->type()) { //窗口停用 if (QApplication::activeWindow() != this) { qDebug() << " * 鼠标点击窗口外部事件"; + this->setWindowState(this->windowState() & Qt::WindowMinimized); this->hide(); m_topStackedWidget->setCurrentIndex(0); m_lineEdit->clear(); @@ -1340,6 +1350,7 @@ void MainWindow::repaintWidget() m_fullWindow->setFixedSize(width, height); m_fullWindow->repaintWidget(); } + void MainWindow::showNormalWindowSlot() { myDebug() << "Style::m_availableScreenWidth" << Style::m_availableScreenWidth << "Style::m_availableScreenHeight" << Style::m_availableScreenHeight; diff --git a/src/UserInterface/mainwindow.h b/src/UserInterface/mainwindow.h index 4f0baf3a1f0387bf6de6c6df1e8d0df136228910..30aa46bd9d95165ec4049337fb4ef793786993b7 100755 --- a/src/UserInterface/mainwindow.h +++ b/src/UserInterface/mainwindow.h @@ -65,9 +65,7 @@ public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); - void showWindow(); - - void hideWindow(); + void windowOption(); protected: void initSearchUi(); @@ -81,6 +79,8 @@ protected: void registDbusServer(); void setTabletModeFlag(); void initUi(); + void showWindow(); + void hideWindow(); /** * @brief 处理外部点击事件和主窗口键盘控制 * @param event