[Github-comments] [geany/geany] Executing program in new terminal window misbehaves with terminal windows started outside Geany (#1585)

hacatu notifications at xxxxx
Thu Aug 24 04:13:57 UTC 2017


I am using xfce4-terminal on Arch Linux with Geany 1.31-1.  I have my Terminal tool path set to
xfce4-terminal -e "/bin/sh %c"
and I have a command bound to Super + T
exo-open --launch TerminalEmulator
When I have a simple C program compiled and press "Run or view the current file" in Geany with the Execute command
"./%e"
the program runs in an xfce4-terminal window and prints the standard trailer ending in "Press return to continue".  If I then use my Super + T shortcut while focused on the terminal window or not to open a new terminal window, the window opens so now I have two terminals, one of which was not created by Geany.  Pressing the "Run or view the current file" button (which is now a stop sign instead of gears) again closes both terminal windows.
However, if I create the other terminal window first by doing Super + T and then click the gear button in Geany, the gear button does not change.
I haven't ever looked at Geany's code, but I think this might be caused by finding the terminal process to watch by using pgrep or similar, but because the child process actually running the program has not fully started it finds the existing one and waits for it to close.  I assume this event is monitored by having the Geany wrapper script send SIGUSR1 or something like that.  And presumably the stop button uses killall or similar thus accidentally killing all terminals.  There's a pretty good chance that's totally wrong though :p.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/1585
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20170824/79ea8a7d/attachment.html>


More information about the Github-comments mailing list