diff --git a/plugins/lua/buildingplan/planneroverlay.lua b/plugins/lua/buildingplan/planneroverlay.lua index 255611178..9b3383443 100644 --- a/plugins/lua/buildingplan/planneroverlay.lua +++ b/plugins/lua/buildingplan/planneroverlay.lua @@ -262,9 +262,6 @@ function PlannerOverlay:init() self.selected = 1 self.minimized = false - local function is_minimized() return self.minimized end - local function not_is_minimized() return not self.minimized end - local main_panel = widgets.Panel{ view_id='main', frame={t=0, l=0, r=0, h=14}, @@ -273,6 +270,17 @@ function PlannerOverlay:init() visible=function() return not self.minimized end, } + local minimized_panel = widgets.Label{ + frame={t=0, r=1, w=1, h=1}, + text={ + { + text=function() return string.char(self.minimized and 31 or 30) end, + pen=COLOR_RED, + }, + }, + on_click=function() self.minimized = not self.minimized end, + } + local function make_is_selected_fn(idx) return function() return self.selected == idx end end @@ -476,6 +484,7 @@ function PlannerOverlay:init() self:addviews{ main_panel, + minimized_panel, error_panel, } end @@ -582,7 +591,7 @@ function PlannerOverlay:onInput(keys) return true end if PlannerOverlay.super.onInput(self, keys) then - return true + return not self.minimized end if keys._MOUSE_L_DOWN then if is_over_options_panel() then return false end @@ -590,13 +599,9 @@ function PlannerOverlay:onInput(keys) detect_rect.height = self.subviews.main.frame_rect.height + self.subviews.errors.frame_rect.height detect_rect.y2 = detect_rect.y1 + detect_rect.height - 1 - local x, y = self.subviews.main:getMousePos(gui.ViewRect{rect=detect_rect}) - if x or self.subviews.errors:getMousePos() then - if x and x == detect_rect.width-2 and y == 0 then - self.minimized = not self.minimized - return true - end - return not self.minimized + if self.subviews.main:getMousePos(gui.ViewRect{rect=detect_rect}) + or self.subviews.errors:getMousePos() then + return true end if self.minimized then return false end if not is_construction() and #uibs.errors > 0 then return true end @@ -658,9 +663,6 @@ function PlannerOverlay:render(dc) if not is_plannable() then return end self.subviews.errors:updateLayout() PlannerOverlay.super.render(self, dc) - -- render "minimize" button - dc:seek(self.frame_rect.x2-1, self.frame_rect.y1) - dc:char(string.char(self.minimized and 31 or 30), COLOR_RED) end local ONE_BY_ONE = xy2pos(1, 1)