From 997891b27d17377111f484c62ba41caf15475d72 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 30 Mar 2025 14:45:05 +0530 Subject: Fix issue with keymap/webview setup on init --- src/WindowActionRouter.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/WindowActionRouter.cpp') 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 &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 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; -- cgit v1.3.1