diff --git a/plugins/lua/hotkeys.lua b/plugins/lua/hotkeys.lua index e3ad26e68..2fb1bf69e 100644 --- a/plugins/lua/hotkeys.lua +++ b/plugins/lua/hotkeys.lua @@ -19,7 +19,7 @@ HotspotMenuWidget.ATTRS{ } function HotspotMenuWidget:init() - self:addviews{widgets.Label{text='!!'}} + self:addviews{widgets.Label{text='!'}} self.mouseover = false end @@ -37,7 +37,8 @@ function HotspotMenuWidget:overlay_trigger() return MenuScreen{ hotspot_frame=self.frame, hotkeys=hotkeys, - bindings=bindings}:show() + bindings=bindings, + mouseover=self.mouseover}:show() end -- register the menu hotspot with the overlay @@ -57,6 +58,7 @@ MenuScreen.ATTRS{ hotspot_frame=DEFAULT_NIL, hotkeys=DEFAULT_NIL, bindings=DEFAULT_NIL, + mouseover=false, } -- get a map from the binding string to a list of hotkey strings that all @@ -114,10 +116,9 @@ local function get_choices(hotkeys, bindings, is_inverted) end function MenuScreen:init() - self.mouseover = false - + local is_inverted = not not self.hotspot_frame.b local choices,list_width = get_choices(self.hotkeys, self.bindings, - self.hotspot_frame.b) + is_inverted) local list_frame = copyall(self.hotspot_frame) list_frame.w = list_width + 2 @@ -173,6 +174,10 @@ function MenuScreen:init() }, }, } + + self.initialize = function() + self.subviews.list:setSelected(is_inverted and #choices or 1) + end end function MenuScreen:onDismiss() @@ -219,6 +224,10 @@ function MenuScreen:onInput(keys) end function MenuScreen:onRenderFrame(dc, rect) + if self.initialize then + self.initialize() + self.initialize = nil + end self:renderParent() end