This is primarily about the last issue noted below, but also recording some other UX comments for things that didn't result in any obvious console logs.
Edit: improved the description of the reproduction steps after some further experimentation
Toggle full screen
Toggle full screen
Toggle full screen
Goto next slide
Goto previous slide
Goto previous slide
Toggle full screen
Toggle full screen
Goto next slide
Goto previous slide
Goto next slide
Goto next slide
Goto previous slide
Toggle full screen
Traceback (most recent call last):
File "/home/ncoghlan/devel/podium/src/podium/deck.py", line 21, in gtk_key_press_event
widget.interface.app.stop(None)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/home/ncoghlan/devel/podium/src/podium/app.py", line 141, in stop
self.current_window.doc.toggle_full_screen()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/devel/podium/src/podium/deck.py", line 226, in toggle_full_screen
self.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
^C window._impl.set_window_state(WindowState.NORMAL)
Stopping...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 342, in set_window_state
self.interface.app.exit_presentation_mode()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/app.py", line 872, in exit_presentation_mode
window._impl.set_window_state(WindowState.NORMAL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 337, in set_window_state
if any(
~~~^
window.state == WindowState.PRESENTATION
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
and window != self.interface
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
for window in self.interface.app.windows
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
):
^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 338, in <genexpr>
window.state == WindowState.PRESENTATION
^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga/window.py", line 562, in state
return self._impl.get_window_state(in_progress_state=True)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ncoghlan/.local/share/pipx/venvs/briefcase/lib64/python3.13/site-packages/toga_gtk/window.py", line 299, in get_window_state
if flags & Gdk.WindowState.MAXIMIZED:
~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
File "/usr/lib64/python3.13/enum.py", line 1608, in __and__
other_value = self._get_value(other)
RecursionError: maximum recursion depth exceeded
Describe the bug
This is primarily about the last issue noted below, but also recording some other UX comments for things that didn't result in any obvious console logs.
Steps to reproduce
Open the demo presentationRunbriefcase dev(although it does still happen after opening the demo presentation)Edit: improved the description of the reproduction steps after some further experimentation
Expected behavior
Esc exits presentation mode without triggering a recursive loop
Screenshots
No response
Environment
Logs
Start of traceback:
End of traceback:
Additional context
No response