diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2015-12-20 18:04:33 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2015-12-20 18:17:38 +0100 |
commit | 057fe1752477bdaafd2c9ec15f88b750083aff38 (patch) | |
tree | bf609051e350e5683232088d93574be7c6e3d35d | |
parent | c88d7897eec259ea7c649467e01590a08faa2dcb (diff) |
gui: don't update main window if we're minimized
Shaves off 12% runtime in minimized case.
-rw-r--r-- | gui/ui.cpp | 26 | ||||
-rw-r--r-- | gui/ui.h | 3 |
2 files changed, 25 insertions, 4 deletions
@@ -122,6 +122,8 @@ MainWindow::MainWindow() : register_shortcuts(); + connect(this, &MainWindow::emit_minimized, this, &MainWindow::mark_minimized, Qt::QueuedConnection); + ui.btnStartTracker->setFocus(); } @@ -419,6 +421,9 @@ void MainWindow::set_title(const QString& game_title_) void MainWindow::showHeadPose() { + if (!ui.video_frame->isEnabled()) + return; + double mapped[6], raw[6]; work->tracker->get_raw_and_mapped_poses(mapped, raw); @@ -548,15 +553,28 @@ void MainWindow::restore_from_tray(QSystemTrayIcon::ActivationReason) void MainWindow::changeEvent(QEvent* e) { - if (s.tray_enabled && e->type() == QEvent::WindowStateChange && (windowState() & Qt::WindowMinimized)) + if (e->type() == QEvent::WindowStateChange) { - if (!tray) - ensure_tray(); - hide(); + const bool is_minimized = windowState() & Qt::WindowMinimized; + + if (s.tray_enabled && is_minimized) + { + if (!tray) + ensure_tray(); + hide(); + } + + emit_minimized(is_minimized); } + QMainWindow::changeEvent(e); } +void MainWindow::mark_minimized(bool is_minimized) +{ + ui.video_frame->setEnabled(!is_minimized); +} + void MainWindow::maybe_start_profile_from_executable() { if (!work) @@ -106,10 +106,13 @@ private slots: void startTracker(); void stopTracker(); void reload_options(); + void mark_minimized(bool is_minimized); signals: void emit_start_tracker(); void emit_stop_tracker(); void emit_toggle_tracker(); + + void emit_minimized(bool); public: MainWindow(); ~MainWindow(); |