summaryrefslogtreecommitdiff
path: root/scroll/scripts/maximize.lua
diff options
context:
space:
mode:
authorzachir <zachir@librem.one>2025-07-27 17:11:22 -0500
committerzachir <zachir@librem.one>2025-07-27 17:11:22 -0500
commit442246498a50440a19d9cba78e83abb55d542879 (patch)
tree1547928229b5d9dcbd97c031039e5a92961e9ee3 /scroll/scripts/maximize.lua
parent4f867087e2cf54a4d972af95b22cef2a0a3a8018 (diff)
parent309f88b7875c27e063062fdebe71058765b199ee (diff)
Merge branch 'master' into cas
Diffstat (limited to 'scroll/scripts/maximize.lua')
-rw-r--r--scroll/scripts/maximize.lua42
1 files changed, 42 insertions, 0 deletions
diff --git a/scroll/scripts/maximize.lua b/scroll/scripts/maximize.lua
new file mode 100644
index 0000000..f0df156
--- /dev/null
+++ b/scroll/scripts/maximize.lua
@@ -0,0 +1,42 @@
+local args, state = ...
+
+-- Set up views table
+local views = scroll.state_get_value(state, "views")
+if views == nil then
+ scroll.state_set_value(state, "views", {})
+ views = scroll.state_get_value(state, "views")
+end
+
+local function find_view(view)
+ for _, v in ipairs(views) do
+ if v["object"] == view then
+ return v
+ end
+ end
+ return nil
+end
+
+if args[1] == 'toggle' then
+ local focused_view = scroll.focused_view()
+ local view = find_view(focused_view)
+ if view == nil then
+ view = {
+ object = focused_view,
+ maximized = false,
+ wf = 0,
+ hf = 0
+ }
+ table.insert(views, view)
+ end
+ view["maximized"] = not view["maximized"]
+ if view["maximized"] then
+ local container = scroll.view_get_container(focused_view)
+ view["wf"] = scroll.container_get_width_fraction(container)
+ view["hf"] = scroll.container_get_height_fraction(container)
+ scroll.command(nil, "set_size h 1.0")
+ scroll.command(nil, "set_size v 1.0")
+ else
+ scroll.command(nil, "set_size h " .. view["wf"])
+ scroll.command(nil, "set_size v " .. view["hf"])
+ end
+end