aboutsummaryrefslogtreecommitdiff
path: root/src/WindowActionRouter.cpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-30 14:45:05 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-30 14:45:05 +0530
commit997891b27d17377111f484c62ba41caf15475d72 (patch)
tree836cacc9d5936ea8fb648e3eb8c66adf468b4778 /src/WindowActionRouter.cpp
parent23b8c2c0da0317562925d574e774cedb6a93a7ac (diff)
downloadnull-browser-997891b27d17377111f484c62ba41caf15475d72.tar.gz
null-browser-997891b27d17377111f484c62ba41caf15475d72.zip
Fix issue with keymap/webview setup on init
Diffstat (limited to '')
-rw-r--r--src/WindowActionRouter.cpp20
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;