Merge pull request #890 from Guldoman/PR_treeview_fix_scroll
Fix `TreeView` scroll via scrollbar
This commit is contained in:
commit
ad25216de7
|
@ -210,10 +210,13 @@ end
|
||||||
function TreeView:on_mouse_moved(px, py, ...)
|
function TreeView:on_mouse_moved(px, py, ...)
|
||||||
if not self.visible then return end
|
if not self.visible then return end
|
||||||
TreeView.super.on_mouse_moved(self, px, py, ...)
|
TreeView.super.on_mouse_moved(self, px, py, ...)
|
||||||
if self.dragging_scrollbar then return end
|
|
||||||
|
|
||||||
self.cursor_pos.x = px
|
self.cursor_pos.x = px
|
||||||
self.cursor_pos.y = py
|
self.cursor_pos.y = py
|
||||||
|
if self.dragging_scrollbar then
|
||||||
|
self.hovered_item = nil
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
local item_changed, tooltip_changed
|
local item_changed, tooltip_changed
|
||||||
for item, x,y,w,h in self:each_item() do
|
for item, x,y,w,h in self:each_item() do
|
||||||
if px > x and py > y and px <= x + w and py <= y + h then
|
if px > x and py > y and px <= x + w and py <= y + h then
|
||||||
|
@ -300,7 +303,7 @@ function TreeView:update()
|
||||||
-- we don't want events when the thing is scrolling fast
|
-- we don't want events when the thing is scrolling fast
|
||||||
local dy = math.abs(self.scroll.to.y - self.scroll.y)
|
local dy = math.abs(self.scroll.to.y - self.scroll.y)
|
||||||
if self.scroll.to.y ~= 0 and dy < self:get_item_height() then
|
if self.scroll.to.y ~= 0 and dy < self:get_item_height() then
|
||||||
self:on_mouse_moved(self.cursor_pos.x, self.cursor_pos.y, 0, self.scroll.to.y - self.scroll.y)
|
self:on_mouse_moved(self.cursor_pos.x, self.cursor_pos.y, 0, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
TreeView.super.update(self)
|
TreeView.super.update(self)
|
||||||
|
|
Loading…
Reference in New Issue