slook 3 weeks ago committed by GitHub
parent
commit
7d7f73ab85
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      libs/pyTermTk/TermTk/TTkCore/drivers/term_unix_common.py
  2. 3
      libs/pyTermTk/TermTk/TTkCore/drivers/unix.py
  3. 13
      libs/pyTermTk/TermTk/TTkCore/ttk.py
  4. 2
      tools/check.import.sh

1
libs/pyTermTk/TermTk/TTkCore/drivers/term_unix_common.py

@ -127,6 +127,7 @@ class _TTkTerm(TTkTermBase):
def _registerResizeCb(callback:Callable[[int,int],None]) -> None:
_TTkTerm._sigWinChCb = callback
# Dummy call to retrieve the terminal size
# signal only works in main thread of the main interpreter
_TTkTerm._sigWinCh(signal.SIGWINCH, None)
signal.signal(signal.SIGWINCH, _TTkTerm._sigWinCh)
TTkTermBase.registerResizeCb = _registerResizeCb

3
libs/pyTermTk/TermTk/TTkCore/drivers/unix.py

@ -23,7 +23,7 @@
__all__ = ['TTkSignalDriver','TTkInputDriver']
import sys, os, re
import signal
import atexit, signal
from select import select
try: import fcntl, termios, tty
@ -84,6 +84,7 @@ class TTkSignalDriver():
signal.signal(signal.SIGCONT, TTkSignalDriver._SIGCONT) # Resume
signal.signal(signal.SIGINT, TTkSignalDriver._SIGINT) # Ctrl-C
@atexit.register
def exit():
signal.signal(signal.SIGINT, signal.SIG_DFL)

13
libs/pyTermTk/TermTk/TTkCore/ttk.py

@ -151,9 +151,10 @@ class TTk(_TTkRootContainer):
TTkSignalDriver.sigStop.connect(self._SIGSTOP)
TTkSignalDriver.sigCont.connect(self._SIGCONT)
TTkSignalDriver.sigInt.connect( self._SIGINT)
TTkSignalDriver.init()
self._drawMutex = threading.Lock()
self._paintEvent = threading.Event()
self._paintEvent.set()
self.setFocusPolicy(TTkK.ClickFocus)
self.hide()
w,h = TTkTerm.getTerminalSize()
@ -167,6 +168,7 @@ class TTk(_TTkRootContainer):
self._showMouseCursor = True
TTkHelper.registerRootWidget(self)
TTkTerm.registerResizeCb(self._win_resize_cb)
frame = 0
time = time.time()
@ -200,13 +202,7 @@ class TTk(_TTkRootContainer):
TTkLog.debug( "Starting Main Loop..." )
TTkLog.debug(f"screen = ({TTkTerm.getTerminalSize()})")
# Register events
TTkSignalDriver.init()
TTkLog.debug("Signal Event Registered")
TTkTerm.registerResizeCb(self._win_resize_cb)
self._paintEvent.set()
self._timer.timeout.connect(self._time_event)
self._timer.start(0.1)
self.show()
@ -231,7 +227,6 @@ class TTk(_TTkRootContainer):
TTkHelper.quitEvent.emit()
self._quit_timer()
self._timer.join()
TTkSignalDriver.exit()
self.quit()
TTkTerm.exit()
for e in self._exceptions:

2
tools/check.import.sh

@ -66,7 +66,7 @@ __check(){
-e "drivers/_unused_.unix_thread.py:import threading" \
-e "drivers/_unused_.unix_thread.py:import queue" \
-e "drivers/unix.py:import sys, os, re" \
-e "drivers/unix.py:import signal" \
-e "drivers/unix.py:import atexit, signal" \
-e "drivers/unix.py:from select import select" \
-e "drivers/windows.py:import signal" \
-e "drivers/windows.py:from ctypes import Structure, Union, byref, wintypes, windll" \

Loading…
Cancel
Save