diff --git a/mordenx.lua b/mordenx.lua index 544ef0f..8d0830b 100644 --- a/mordenx.lua +++ b/mordenx.lua @@ -1800,7 +1800,14 @@ function render() end -- init management - if state.initREQ then + if state.active_element then + -- mouse is held down on some element - keep ticking and igore initReq + -- till it's released, or else the mouse-up (click) will misbehave or + -- get ignored. that's because osc_init() recreates the osc elements, + -- but mouse handling depends on the elements staying unmodified + -- between mouse-down and mouse-up (using the index active_element). + request_tick() + elseif state.initREQ then osc_init() state.initREQ = false @@ -2016,8 +2023,10 @@ function process_event(source, what) if element_has_action(elements[n], action) then elements[n].eventresponder[action](elements[n]) end - request_tick() end + + -- ensure rendering after any (mouse) event - icons could change etc + request_tick() end function show_logo()