From acedc631b8c1a703d2e31fb4f7e213f7e9b0f11c Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Sat, 14 Sep 2019 17:14:42 +0200 Subject: [PATCH] WIP: OSX: Figure out failing test Signed-off-by: Lukas Holecek --- src/gui/clipboardbrowserplaceholder.cpp | 6 ++++++ src/gui/mainwindow.cpp | 28 +++++++++++++++++++++++++ src/gui/mainwindow.h | 1 + utils/travis/script-osx.sh | 3 +-- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/gui/clipboardbrowserplaceholder.cpp b/src/gui/clipboardbrowserplaceholder.cpp index 82e89512a..04cf276ba 100644 --- a/src/gui/clipboardbrowserplaceholder.cpp +++ b/src/gui/clipboardbrowserplaceholder.cpp @@ -211,6 +211,12 @@ void ClipboardBrowserPlaceholder::unloadBrowser() return; COPYQ_LOG( QString("Tab \"%1\": Unloading").arg(m_tabName) ); + setFocusProxy(nullptr); + if (m_browser->hasFocus()) { + setFocus(); + Q_ASSERT(!m_browser->hasFocus()); + } + m_browser->hide(); m_browser->saveUnsavedItems(); m_browser->deleteLater(); m_browser = nullptr; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 23a6abe8c..a7751466f 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -86,6 +86,8 @@ #include #include +#include + #include #include @@ -1678,6 +1680,8 @@ bool MainWindow::toggleMenu(TrayMenu *menu, QPoint pos) return false; } + logFocus(); + menu->popup( toScreen(pos, menu) ); menu->raise(); @@ -1686,6 +1690,8 @@ bool MainWindow::toggleMenu(TrayMenu *menu, QPoint pos) QApplication::processEvents(); stealFocus(*menu); + logFocus(); + return true; } @@ -2243,10 +2249,22 @@ bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *r return QMainWindow::nativeEvent(eventType, message, result); } +void MainWindow::logFocus() +{ + qDebug() << "FOCUS:" << focusWidget() + << "BROWSER:" << browserOrNull() + << "PLACEHOLDER:" << getPlaceholder() + << "POPUP:" << QApplication::activePopupWidget() + << "FOCUS:" << QApplication::focusWidget() + << "MODAL:" << QApplication::activeModalWidget(); +} + void MainWindow::loadSettings() { COPYQ_LOG("Loading configuration"); + logFocus(); + stopMenuCommandFilters(&m_itemMenuMatchCommands); stopMenuCommandFilters(&m_trayMenuMatchCommands); terminateAction(&m_displayActionId); @@ -2398,6 +2416,8 @@ void MainWindow::loadSettings() updateEnabledCommands(); COPYQ_LOG("Configuration loaded"); + + logFocus(); } void MainWindow::loadTheme(const QSettings &themeSettings) @@ -2981,8 +3001,12 @@ void MainWindow::onFilterChanged(const QRegExp &re) void MainWindow::raiseLastWindowAfterMenuClosed() { + logFocus(); + if ( m_lastWindow && !isAnyApplicationWindowActive() ) m_lastWindow->raise(); + + logFocus(); } void MainWindow::updateFocusWindows() @@ -3084,6 +3108,8 @@ void MainWindow::updateTrayMenuItemsTimeout() return; } + logFocus(); + COPYQ_LOG("Updating tray menu"); WidgetSizeGuard sizeGuard(m_trayMenu); @@ -3100,6 +3126,8 @@ void MainWindow::updateTrayMenuItemsTimeout() addTrayAction(Actions::File_Exit); filterTrayMenuItems(QString()); + + logFocus(); } void MainWindow::filterMenuItems(const QString &searchText) diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index d81c2ab54..bd887f828 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -439,6 +439,7 @@ class MainWindow final : public QMainWindow bool nativeEvent(const QByteArray &eventType, void *message, long *result) override; private: + void logFocus(); ClipboardBrowserPlaceholder *getPlaceholderForMenu(); ClipboardBrowserPlaceholder *getPlaceholderForTrayMenu(); void filterMenuItems(const QString &searchText); diff --git a/utils/travis/script-osx.sh b/utils/travis/script-osx.sh index fa683125f..f82567127 100755 --- a/utils/travis/script-osx.sh +++ b/utils/travis/script-osx.sh @@ -36,8 +36,7 @@ brew uninstall --force qt5 # Run tests (retry once on error). export COPYQ_TESTS_SKIP_COMMAND_EDIT=1 export COPYQ_TESTS_SKIP_CONFIG_MOVE=1 -"$executable" tests || - "$executable" tests +"$executable" tests configTrayTab # Print dependencies to let us further make sure that we don't depend on local libraries otool -L $executable