diff options
Diffstat (limited to 'opentrack/work.hpp')
-rw-r--r-- | opentrack/work.hpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/opentrack/work.hpp b/opentrack/work.hpp index d0130018..b93c71b6 100644 --- a/opentrack/work.hpp +++ b/opentrack/work.hpp @@ -13,10 +13,10 @@ struct Work { main_settings& s; SelectedLibraries libs; - ptr<Tracker> tracker; - ptr<Shortcuts> sc; + mem<Tracker> tracker; + mem<Shortcuts> sc; WId handle; - + Work(main_settings& s, Mappings& m, SelectedLibraries& libs, QObject* recv, WId handle) : s(s), libs(libs), tracker(std::make_shared<Tracker>(s, m, libs)), @@ -26,22 +26,24 @@ struct Work #ifndef _WIN32 QObject::connect(sc->keyCenter.get(), SIGNAL(activated()), recv, SLOT(shortcutRecentered())); QObject::connect(sc->keyToggle.get(), SIGNAL(activated()), recv, SLOT(shortcutToggled())); + QObject::connect(sc->keyZero.get(), SIGNAL(activated()), recv, SLOT(shortcutZeroed())); #else - QObject::connect(sc->keybindingWorker.get(), SIGNAL(center()), recv, SLOT(shortcutRecentered())); - QObject::connect(sc->keybindingWorker.get(), SIGNAL(toggle()), recv, SLOT(shortcutToggled())); + QObject::connect(sc.get(), SIGNAL(center()), recv, SLOT(shortcutRecentered())); + QObject::connect(sc.get(), SIGNAL(toggle()), recv, SLOT(shortcutToggled())); + QObject::connect(sc.get(), SIGNAL(zero()), recv, SLOT(shortcutZeroed())); #endif tracker->start(); } - + void reload_shortcuts() { sc->reload(); } - + ~Work() { // order matters, otherwise use-after-free -sh tracker = nullptr; libs = SelectedLibraries(); - } + } }; |