mirror of
https://github.com/airstruck/luigi.git
synced 2026-01-11 08:48:23 +00:00
fix origin widget for PressEnd events generated by keyboard shortcuts
This commit is contained in:
@@ -170,7 +170,7 @@ end
|
|||||||
|
|
||||||
function Input:handlePressEnd (layout, button, x, y, widget, shortcut)
|
function Input:handlePressEnd (layout, button, x, y, widget, shortcut)
|
||||||
local hit, widget = checkHit(widget or layout:getWidgetAt(x, y), layout)
|
local hit, widget = checkHit(widget or layout:getWidgetAt(x, y), layout)
|
||||||
local originWidget = self.pressedWidgets[button]
|
local originWidget = widget or self.pressedWidgets[button]
|
||||||
if not originWidget then return end
|
if not originWidget then return end
|
||||||
if hit then
|
if hit then
|
||||||
originWidget.pressed[button] = nil
|
originWidget.pressed[button] = nil
|
||||||
|
|||||||
@@ -313,14 +313,13 @@ function Layout:addDefaultHandlers ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
self:onKeyPress(function (event)
|
self:onKeyPress(function (event)
|
||||||
|
|
||||||
-- keyboard shortcuts
|
-- keyboard shortcuts
|
||||||
local entry = self.shortcuts[event.modifierFlags]
|
local entry = self.shortcuts[event.modifierFlags]
|
||||||
local acceleratedWidget = entry and entry[event.key]
|
local widget = entry and entry[event.key]
|
||||||
if acceleratedWidget then
|
if widget then
|
||||||
acceleratedWidget.hovered = true
|
widget.hovered = true
|
||||||
self.input:handlePressStart(self, 'left', event.x, event.y,
|
self.input:handlePressStart(self, 'left', event.x, event.y,
|
||||||
acceleratedWidget, event.key)
|
widget, widget.shortcut)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -345,15 +344,13 @@ function Layout:addDefaultHandlers ()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
self:onKeyRelease(function (event)
|
self:onKeyRelease(function (event)
|
||||||
|
|
||||||
-- shortcuts
|
-- shortcuts
|
||||||
local entry = self.shortcuts[event.modifierFlags]
|
local entry = self.shortcuts[event.modifierFlags]
|
||||||
local acceleratedWidget = entry and entry[event.key]
|
local widget = entry and entry[event.key]
|
||||||
|
if widget then
|
||||||
if acceleratedWidget then
|
widget.hovered = false
|
||||||
acceleratedWidget.hovered = false
|
|
||||||
self.input:handlePressEnd(self, 'left', event.x, event.y,
|
self.input:handlePressEnd(self, 'left', event.x, event.y,
|
||||||
acceleratedWidget, event.key)
|
widget, widget.shortcut)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user