aboutsummaryrefslogtreecommitdiff
path: root/data/core
diff options
context:
space:
mode:
authorAdam Harrison <adamdharrison@gmail.com>2021-11-16 19:12:39 -0500
committerAdam Harrison <adamdharrison@gmail.com>2021-11-16 19:12:39 -0500
commit18959aebefe22e7bcfff80a2affc8ad0fda76328 (patch)
tree209ed9c093b43fabeb7fbf6fef8d8dd732789f07 /data/core
parentc58029df8b522105328ae622c1b9b1ceb4ac0843 (diff)
downloadlite-xl-18959aebefe22e7bcfff80a2affc8ad0fda76328.tar.gz
lite-xl-18959aebefe22e7bcfff80a2affc8ad0fda76328.zip
Fixed predicate and minor propogation issue.
Diffstat (limited to 'data/core')
-rw-r--r--data/core/commands/root.lua21
-rw-r--r--data/core/keymap.lua4
-rw-r--r--data/core/rootview.lua13
3 files changed, 21 insertions, 17 deletions
diff --git a/data/core/commands/root.lua b/data/core/commands/root.lua
index 7ebb0e60..8f2536b8 100644
--- a/data/core/commands/root.lua
+++ b/data/core/commands/root.lua
@@ -64,7 +64,7 @@ local t = {
table.insert(node.views, idx + 1, core.active_view)
end
end,
-
+
["root:shrink"] = function()
local node = core.root_view:get_active_node()
local parent = node:get_parent_node(core.root_view.root_node)
@@ -77,14 +77,6 @@ local t = {
local parent = node:get_parent_node(core.root_view.root_node)
local n = (parent.a == node) and 0.1 or -0.1
parent.divider = common.clamp(parent.divider + n, 0.1, 0.9)
- end,
-
- ["root:scroll"] = function(delta)
- if core.active_view and core.active_view.scrollable then
- core.active_view.scroll.to.y = core.active_view.scroll.to.y + delta * -config.mouse_wheel_scroll
- return true
- end
- return false
end
}
@@ -131,3 +123,14 @@ command.add(function()
local node = core.root_view:get_active_node()
return not node:get_locked_size()
end, t)
+
+command.add(nil, {
+ ["root:scroll"] = function(delta)
+ local view = (core.root_view.overlapping_node and core.root_view.overlapping_node.active_view) or core.active_view
+ if view and view.scrollable then
+ view.scroll.to.y = view.scroll.to.y + delta * -config.mouse_wheel_scroll
+ return true
+ end
+ return false
+ end
+})
diff --git a/data/core/keymap.lua b/data/core/keymap.lua
index 7ad04399..fd552f19 100644
--- a/data/core/keymap.lua
+++ b/data/core/keymap.lua
@@ -113,8 +113,8 @@ function keymap.on_key_pressed(k, ...)
end
function keymap.on_mouse_wheel(delta, ...)
- return not keymap.on_key_pressed("wheel" .. (delta > 0 and "up" or "down"), delta, ...)
- and keymap.on_key_pressed("wheel", delta, ...)
+ return not (keymap.on_key_pressed("wheel" .. (delta > 0 and "up" or "down"), delta, ...)
+ or keymap.on_key_pressed("wheel", delta, ...))
end
function keymap.on_mouse_pressed(button, x, y, clicks)
diff --git a/data/core/rootview.lua b/data/core/rootview.lua
index 6c3d1d2d..07f8b7bf 100644
--- a/data/core/rootview.lua
+++ b/data/core/rootview.lua
@@ -1002,17 +1002,18 @@ function RootView:on_mouse_moved(x, y, dx, dy)
self.root_node:on_mouse_moved(x, y, dx, dy)
- local node = self.root_node:get_child_overlapping_point(x, y)
+ self.overlapping_node = self.root_node:get_child_overlapping_point(x, y)
+
local div = self.root_node:get_divider_overlapping_point(x, y)
- local tab_index = node and node:get_tab_overlapping_point(x, y)
- if node and node:get_scroll_button_index(x, y) then
+ local tab_index = self.overlapping_node and self.overlapping_node:get_tab_overlapping_point(x, y)
+ if self.overlapping_node and self.overlapping_node:get_scroll_button_index(x, y) then
core.request_cursor("arrow")
elseif div then
core.request_cursor(div.type == "hsplit" and "sizeh" or "sizev")
elseif tab_index then
core.request_cursor("arrow")
- elseif node then
- core.request_cursor(node.active_view.cursor)
+ elseif self.overlapping_node then
+ core.request_cursor(self.overlapping_node.active_view.cursor)
end
end
@@ -1020,7 +1021,7 @@ end
function RootView:on_mouse_wheel(...)
local x, y = self.mouse.x, self.mouse.y
local node = self.root_node:get_child_overlapping_point(x, y)
- node.active_view:on_mouse_wheel(...)
+ return node.active_view:on_mouse_wheel(...)
end