aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-10-15 04:52:24 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-10-15 04:52:24 +0300
commit18a0543d0a5959c50c4b30f8aed5387465fbaa8a (patch)
tree58f92559b1621f6baa9dc357c794b88535bc2f70 /src
parent50679b111d10b21dae655123b219d51e5f5b17ef (diff)
downloadsciteco-18a0543d0a5959c50c4b30f8aed5387465fbaa8a.tar.gz
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.
Diffstat (limited to 'src')
-rw-r--r--src/cmdline.c7
-rw-r--r--src/interface-gtk/interface.c9
2 files changed, 3 insertions, 13 deletions
diff --git a/src/cmdline.c b/src/cmdline.c
index 018998e..5c080af 100644
--- a/src/cmdline.c
+++ b/src/cmdline.c
@@ -398,13 +398,12 @@ teco_state_process_edit_cmd(teco_machine_t *ctx, teco_machine_t *parent_ctx, gch
}
return TRUE;
-#ifdef SIGTSTP
+#if !defined(INTERFACE_GTK) && defined(SIGTSTP)
case TECO_CTL_KEY('Z'):
/*
- * <CTL/Z> does not raise signal if handling of
+ * <CTL/Z> does not automatically raise signal if handling of
* special characters temporarily disabled in terminal
- * (Curses), or command-line is detached from
- * terminal (GTK+).
+ * (Curses), or the actual input is detached from terminal (GTK+).
* This does NOT change the state of the popup window.
*/
raise(SIGTSTP);
diff --git a/src/interface-gtk/interface.c b/src/interface-gtk/interface.c
index 154c950..104bb89 100644
--- a/src/interface-gtk/interface.c
+++ b/src/interface-gtk/interface.c
@@ -1052,15 +1052,6 @@ teco_interface_event_loop(GError **error)
* closing the window if supported by this version of glib.
* Note that this replaces SciTECO's default SIGTERM handler
* so it will additionally raise(SIGINT).
- *
- * FIXME: 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.
*/
#ifdef G_OS_UNIX
g_unix_signal_add(SIGTERM, teco_interface_sigterm_handler, NULL);