aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuldoman <giulio.lettieri@gmail.com>2021-12-07 21:45:20 +0100
committerGuldoman <giulio.lettieri@gmail.com>2021-12-07 21:45:20 +0100
commitc16d6b3d8d02c35006ed277a8d98c53b2a77d61d (patch)
tree00915961d329e0ab66982d4bd4a8ef44f4615794
parentfdb29f28cf79fbdb7b5d935e32d565bb92377185 (diff)
downloadpragtical-c16d6b3d8d02c35006ed277a8d98c53b2a77d61d.tar.gz
pragtical-c16d6b3d8d02c35006ed277a8d98c53b2a77d61d.zip
Avoid drawing hidden `TreeView` items
-rw-r--r--data/plugins/treeview.lua11
1 files changed, 7 insertions, 4 deletions
diff --git a/data/plugins/treeview.lua b/data/plugins/treeview.lua
index 18d622e1..8edee393 100644
--- a/data/plugins/treeview.lua
+++ b/data/plugins/treeview.lua
@@ -366,15 +366,18 @@ end
function TreeView:draw()
self:draw_background(style.background2)
+ local _y, _h = self.position.y, self.size.y
local doc = core.active_view.doc
local active_filename = doc and system.absolute_path(doc.filename or "")
for item, x,y,w,h in self:each_item() do
- self:draw_item(item,
- item.abs_filename == active_filename,
- item == self.hovered_item,
- x, y, w, h)
+ if y + h >= _y and y < _y + _h then
+ self:draw_item(item,
+ item.abs_filename == active_filename,
+ item == self.hovered_item,
+ x, y, w, h)
+ end
end
self:draw_scrollbar()