summaryrefslogtreecommitdiffhomepage
path: root/opentrack/main-window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'opentrack/main-window.cpp')
-rw-r--r--opentrack/main-window.cpp54
1 files changed, 23 insertions, 31 deletions
diff --git a/opentrack/main-window.cpp b/opentrack/main-window.cpp
index 139795d5..006d78ed 100644
--- a/opentrack/main-window.cpp
+++ b/opentrack/main-window.cpp
@@ -38,23 +38,23 @@ main_window::main_window() : State(OPENTRACK_BASE_PATH + OPENTRACK_LIBRARY_PATH)
annoy_if_root();
#endif
+ setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | windowFlags());
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+
init_profiles();
init_buttons();
- init_tray_menu();
init_dylibs();
init_shortcuts();
-
- setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | windowFlags());
- setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- adjustSize();
-
- setVisible(!start_in_tray());
+ init_tray_menu();
connect(&pose_update_timer, &QTimer::timeout,
this, &main_window::show_pose, Qt::DirectConnection);
connect(&det_timer, &QTimer::timeout,
this, &main_window::maybe_start_profile_from_executable);
det_timer.start(1000);
+
+ adjustSize();
+ ensure_tray(); // calls QWidget::show()
}
void main_window::init_shortcuts()
@@ -216,8 +216,6 @@ void main_window::init_tray_menu()
connect(&s.tray_enabled, value_::value_changed<bool>(),
this, &main_window::ensure_tray);
-
- ensure_tray();
}
void main_window::init_buttons()
@@ -688,13 +686,25 @@ void main_window::set_profile(const QString& new_name_, bool migrate)
void main_window::ensure_tray()
{
- if (!QSystemTrayIcon::isSystemTrayAvailable())
+ if (!tray_enabled())
{
+ if (!isVisible())
+ {
+ show();
+
+#ifdef __APPLE__
+ raise(); // for OSX
+#endif
+ activateWindow(); // for Windows
+ }
+
+ if (tray)
+ tray->hide();
+ tray = nullptr;
+
QApplication::setQuitOnLastWindowClosed(true);
- return;
}
-
- if (s.tray_enabled)
+ else
{
if (!tray)
{
@@ -711,24 +721,6 @@ void main_window::ensure_tray()
QApplication::setQuitOnLastWindowClosed(false);
}
- else
- {
- if (!isVisible())
- {
- show();
-
-#ifdef __APPLE__
- raise(); // for OSX
-#endif
- activateWindow(); // for Windows
- }
-
- if (tray)
- tray->hide();
- tray = nullptr;
-
- QApplication::setQuitOnLastWindowClosed(true);
- }
}
void main_window::toggle_restore_from_tray(QSystemTrayIcon::ActivationReason e)