From 18a0543d0a5959c50c4b30f8aed5387465fbaa8a Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Fri, 15 Oct 2021 04:52:24 +0300 Subject: Gtk: disabled ^Z suspension on Unix for the time being * This has always been broken as Gtk will not hide the window before suspending. * It has been deemed to complicated to implement at the moment. Even if we can catch SIGTSTP (not that trivial), it seems to be impossible - at least without some lower level Xlib interaction - to hide the program window before raising SIGTSTP. * Even if everything worked, it is unclear whether it is actually desirable to suspend a GUI application - ^Z may be pressed accidentally and it will be inconvenient to resume the job. So we would additionally have to check for the existence of an attached console. --- TODO | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'TODO') diff --git a/TODO b/TODO index ca073c3..b1d98c2 100644 --- a/TODO +++ b/TODO @@ -80,6 +80,21 @@ Known Bugs: logging system. * Out-of-tree builds are broken. See contrib/scintilla.am. + * Gtk on Unix: On ^Z, we do not suspend properly. The window is still shown. + Perhaps we should try to catch SIGTSTP? + This does not work with g_unix_signal_add(), though, so any + workaround would be tricky. + We could create a pipe via g_unix_open_pipe() which we + write to using write() in a normal signal handler. + We can then add a watcher using g_unix_fd_add() which will + hide the main window. + Unfortunately, it is also not trivial to get notified when + the window has really been hidden/unrealized. + Even if everything worked, it might well be annoying if + you accidentally suspend your instance while not being + connected to a terminal. + Suspension from the command-line has therefore been disabled + on Gtk for the time being. Features: * Auto-indention could be implemented via context-sensitive -- cgit v1.2.3