aboutsummaryrefslogtreecommitdiff
path: root/src/WindowActionRouter.hpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-07-25 20:27:44 +0530
committerAkshay Nair <phenax5@gmail.com>2025-07-25 20:28:05 +0530
commit81dcf7de91c1866d565f7aa9eb38f7fbd1cd7ad7 (patch)
treeaa24bcea93d19ce6298ad6aed499d324fac2ceae /src/WindowActionRouter.hpp
parent2c7d36b4aa53ffa638a7aa7046767f10e7a152bf (diff)
downloadnull-browser-81dcf7de91c1866d565f7aa9eb38f7fbd1cd7ad7.tar.gz
null-browser-81dcf7de91c1866d565f7aa9eb38f7fbd1cd7ad7.zip
Add decoration is_enabled api + allowed specifying win_id for enabled
Diffstat (limited to '')
-rw-r--r--src/WindowActionRouter.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/WindowActionRouter.hpp b/src/WindowActionRouter.hpp
index aa8737d..7cc530c 100644
--- a/src/WindowActionRouter.hpp
+++ b/src/WindowActionRouter.hpp
@@ -5,11 +5,14 @@
#include <cstdint>
#include <functional>
#include <mutex>
+#include <optional>
+#include <vector>
#include "EventQueue.hpp"
#include "keymap/KeymapEvaluator.hpp"
#include "utils.hpp"
#include "widgets/BrowserWindow.hpp"
+#include "widgets/Decorations.hpp"
#include "widgets/WebViewStack.hpp"
#define WITH_WEBVIEW_WINDOW(WEBVIEW_ID, IDENT, BLOCK) \
@@ -38,6 +41,7 @@ public:
QList<WebViewData> fetch_webview_data_list(WindowId win_id = 0);
QVariant fetch_config_value(const QString &key);
KeyMode fetch_current_mode() const;
+ bool fetch_is_decoration_enabled(DecorationType type, WindowId win_id);
DEFINE_GETTER(fetch_current_search_text, current_search_text)
DEFINE_SETTER(set_current_search_text, current_search_text)
@@ -45,6 +49,24 @@ public:
DELEGATE(&event_queue, dispatch_event, dispatch_event)
DELEGATE(&event_queue, register_event, register_event)
+ std::vector<BrowserWindow *> get_windows_for_optional_win_id(std::optional<WindowId> win_id) {
+ std::vector<BrowserWindow *> windows;
+
+ if (!win_id.has_value()) {
+ for (auto &win_pair : window_map)
+ windows.push_back(win_pair.second);
+ } else if (win_id.value() == 0) {
+ for (auto &win_pair : window_map) {
+ if (win_pair.second->isActiveWindow())
+ windows.push_back(win_pair.second);
+ }
+ } else if (win_id.value() > 0 && window_map.contains(win_id.value())) {
+ windows.push_back(window_map.at(win_id.value()));
+ }
+
+ return windows;
+ }
+
protected:
WindowActionRouter() = default;