diff --git a/src/ltui/boxdialog.lua b/src/ltui/boxdialog.lua index f27f0ac..0e547fd 100644 --- a/src/ltui/boxdialog.lua +++ b/src/ltui/boxdialog.lua @@ -66,6 +66,7 @@ function boxdialog:init(name, bounds, title) end) -- on click for frame + self:option_set("mouseable", true) self:frame():action_set(action.ac_on_clicked, function (v, x, y) -- get relative coordinates diff --git a/src/ltui/button.lua b/src/ltui/button.lua index 7cd9776..1d18c16 100644 --- a/src/ltui/button.lua +++ b/src/ltui/button.lua @@ -42,6 +42,7 @@ function button:init(name, bounds, text, on_action) self:cursor_show(true) -- init actions + self:option_set("mouseable", true) self:action_set(action.ac_on_enter, on_action) self:action_set(action.ac_on_clicked, function (v) -- FIXME diff --git a/src/ltui/curses.lua b/src/ltui/curses.lua index 3ee6da1..6b55354 100644 --- a/src/ltui/curses.lua +++ b/src/ltui/curses.lua @@ -211,5 +211,10 @@ function curses.cursor_set(state) end end +-- has mouse? +function curses.has_mouse() + return curses.KEY_MOUSE and true or false +end + -- return module: curses return curses diff --git a/src/ltui/panel.lua b/src/ltui/panel.lua index 5775b8e..3a478c8 100644 --- a/src/ltui/panel.lua +++ b/src/ltui/panel.lua @@ -50,6 +50,7 @@ function panel:init(name, bounds) self._VIEWS_CACHE = {} -- on click action + self:option_set("mouseable", true) self:action_set(action.ac_on_clicked, function (v, x, y) -- get relative coordinates diff --git a/src/ltui/program.lua b/src/ltui/program.lua index e67bd1c..b3d9692 100644 --- a/src/ltui/program.lua +++ b/src/ltui/program.lua @@ -189,7 +189,7 @@ function program:on_event(e) self:quit() return true -- mouse events - elseif e.type == event.ev_mouse and self:option("mouseable") then + elseif e.type == event.ev_mouse and curses.has_mouse() and self:option("mouseable") then if e.btn_name == "BUTTON1_CLICKED" or e.btn_name == "BUTTON1_DOUBLE_CLICKED" then self:action_on(action.ac_on_clicked, e.x, e.y) end diff --git a/src/ltui/view.lua b/src/ltui/view.lua index 5eb6e75..9800553 100644 --- a/src/ltui/view.lua +++ b/src/ltui/view.lua @@ -68,7 +68,7 @@ function view:init(name, bounds) -- init options local options = object() options.selectable = false -- true if window can be selected - options.mouseable = curses.KEY_MOUSE and true or false -- enable it by default + options.mouseable = false -- false by default self._OPTIONS = options -- init attributes