forked from openkylin/ukui-menu
!8 解决wayland窗口状态错误导致开始菜单单例显示隐藏失败问题
This commit is contained in:
parent
fd51a285e0
commit
fc64d52106
|
@ -1,3 +1,10 @@
|
|||
ukui-menu (3.1.1-ok4~0712) yangtze; urgency=medium
|
||||
|
||||
* close-cd #128498
|
||||
修复【wayland】【开始菜单】多次点击tab键和回车键后,开始菜单点不开问题
|
||||
|
||||
-- lixueman <lixueman@kylinos.cn> Tue, 12 Jul 2022 16:11:49 +0800
|
||||
|
||||
ukui-menu (3.1.1-ok4~0708) yangtze; urgency=medium
|
||||
|
||||
* 调整全屏窗口初始化代码结构
|
||||
|
|
|
@ -350,19 +350,17 @@ void QtSingleApplication::activateWindow()
|
|||
myDebug() << "单例触发activateWindow";
|
||||
if (!g_projectCodeName.contains("V10SP1-edu")) {
|
||||
MainWindow *w = qobject_cast<MainWindow *>(actWin);
|
||||
w->windowOption();
|
||||
|
||||
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();
|
||||
}
|
||||
// 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<TabletWindow *>(actWin);
|
||||
w->showPCMenu();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue