diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-30 14:45:05 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-30 14:45:05 +0530 |
| commit | 997891b27d17377111f484c62ba41caf15475d72 (patch) | |
| tree | 836cacc9d5936ea8fb648e3eb8c66adf468b4778 /src/WindowActionRouter.cpp | |
| parent | 23b8c2c0da0317562925d574e774cedb6a93a7ac (diff) | |
| download | null-browser-997891b27d17377111f484c62ba41caf15475d72.tar.gz null-browser-997891b27d17377111f484c62ba41caf15475d72.zip | |
Fix issue with keymap/webview setup on init
Diffstat (limited to '')
| -rw-r--r-- | src/WindowActionRouter.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/WindowActionRouter.cpp b/src/WindowActionRouter.cpp index 264c75e..51fb1af 100644 --- a/src/WindowActionRouter.cpp +++ b/src/WindowActionRouter.cpp @@ -3,19 +3,14 @@ #include "LuaRuntime.hpp" #include "WindowActionRouter.hpp" +#include "keymap/KeymapEvaluator.hpp" #include "widgets/WebViewStack.hpp" -WindowActionRouter::WindowActionRouter() { +void WindowActionRouter::initialize() { auto *runtime = LuaRuntime::instance(); connect(runtime, &LuaRuntime::keymap_added, this, - [this](const QString &mode, const QString &keyseq, - const std::function<void()> &callback) { - for (auto &win : window_map) { - auto *mediator = win.second->mediator(); - emit mediator->keymap_added(mode, keyseq, callback); - } - }); + &WindowActionRouter::add_keymap); connect(runtime, &LuaRuntime::history_back_requested, this, [this](WebViewId webview_id, qsizetype history_index) { @@ -75,6 +70,15 @@ void WindowActionRouter::add_window(BrowserWindow *window) { const WindowMap &WindowActionRouter::windows() { return window_map; } +void WindowActionRouter::add_keymap(const QString &mode_string, + const QString &keyseq, + std::function<void()> action) { + qDebug() << "ADD KEY" << mode_string << keyseq; + auto *keymap_evaluator = KeymapEvaluator::instance(); + const KeyMode mode = keymap_evaluator->mode_from_string(mode_string); + keymap_evaluator->add_keymap(mode, keyseq, std::move(action)); +} + WebViewId WindowActionRouter::fetch_current_tab_id(WindowId win_id) { for (auto &pair : window_map) { auto *win = pair.second; |
