From cf7f7a6520897b485f002a38bd86f837b404b971 Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Sun, 24 Jul 2016 09:07:37 +0200 Subject: [PATCH] Add hidden option to open tray menu on left mouse click Adds option "tray_menu_open_on_left_click" which is "false" by default so the main window opens on left mouse click. Since tray/indicator areas in some desktop environments may override the mouse behavior this option is not visible in configuration dialog. It can be only change by editing configuration file and restarting the app. Fixes #378 --- src/common/appconfig.h | 5 +++++ src/gui/mainwindow.cpp | 5 ++++- src/gui/mainwindow.h | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/common/appconfig.h b/src/common/appconfig.h index 49c4a22..1c3cdb1 100644 --- a/src/common/appconfig.h +++ b/src/common/appconfig.h @@ -217,6 +217,11 @@ struct tray_images : Config { static Value defaultValue() { return true; } }; +struct tray_menu_open_on_left_click : Config { + static QString name() { return "tray_menu_open_on_left_click"; } + static Value defaultValue() { return false; } +}; + struct tray_tab : Config { static QString name() { return "tray_tab"; } }; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index e575a12..7d6dbfc 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -1692,6 +1692,7 @@ void MainWindow::loadSettings() m_options.trayCurrentTab = appConfig.option(); m_options.trayTabName = appConfig.option(); m_options.trayImages = appConfig.option(); + m_options.trayMenuOpenOnLeftClick = appConfig.option(); m_options.itemPopupInterval = appConfig.option(); m_options.clipboardNotificationLines = appConfig.option(); m_options.clipboardTab = appConfig.option(); @@ -1821,7 +1822,9 @@ void MainWindow::trayActivated(QSystemTrayIcon::ActivationReason reason) // Don't do this on OS X, we only ever get "Trigger" Q_UNUSED(reason); #else - if ( reason == QSystemTrayIcon::MiddleClick ) { + if ( reason == QSystemTrayIcon::MiddleClick + || (m_options.trayMenuOpenOnLeftClick && reason == QSystemTrayIcon::Trigger) ) + { toggleMenu(); } else if ( reason == QSystemTrayIcon::Trigger || reason == QSystemTrayIcon::DoubleClick ) { // Like toggleVisible() but hide window if visible and not focused diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index 2ac800a..af1ccb4 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -66,6 +66,7 @@ struct MainWindowOptions { , trayTabName() , trayItems(5) , trayImages(true) + , trayMenuOpenOnLeftClick(false) , itemPopupInterval(0) , clipboardNotificationLines(0) , transparency(0) @@ -89,6 +90,7 @@ struct MainWindowOptions { QString trayTabName; int trayItems; bool trayImages; + bool trayMenuOpenOnLeftClick; int itemPopupInterval; int clipboardNotificationLines; int transparency;