I have an app that is displaying pictures in full-screen. I have a left down handler defined as
self.Bind(wx.EVT_LEFT_DOWN, self.evt_left_down)
The handler (with some debug code) is
def evt_left_down(self, event):
"""Enable zoom and redisplay image"""
_,_,w,h = wx.Display(0).GetGeometry()
x,y = event.GetPosition()
print(f'{w=} {x=}')
if x < 50:
self.evt_prev(None)
elif x > w - 50:
self.evt_next(None)
else:
if wx.GetKeyState(wx.WXK_SHIFT):
self.zoom = ZOOM_FACTOR * 2
else:
self.zoom = ZOOM_FACTOR
self.left_down = True
self.hide_cursor()
self.Refresh()
event.Skip()
If the cursor is at the far right of the screen, however, nothing happens. The event does not trigger. What do I have to do in order to get the event to trigger in this case? Here is a stripped down version to demonstrate.
import wx
class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None, -1)
self.SetTopWindow(self.frame)
self.frame.Show()
self.frame.ShowFullScreen(True)
return True
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, wx.ID_ANY)
self.Bind(wx.EVT_LEFT_DOWN, self.evt_left_down)
def evt_left_down(self, event):
_,_,w,h = wx.Display(0).GetGeometry()
x,y = event.GetPosition()
print(f'{w=} {x=}')
event.Skip()
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()