diff options
author | Adrian Kummerlaender | 2015-09-04 22:05:46 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2015-09-04 22:05:46 +0200 |
commit | 52dd097c4d679d53060b415e065151806f0acfbf (patch) | |
tree | d38556e1f94e5ba89ac88eea2f581d8dc060317b /src/list | |
parent | 20da0c6f663be3c1cebc92671d489f56972915e3 (diff) | |
download | MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.tar MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.tar.gz MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.tar.bz2 MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.tar.lz MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.tar.xz MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.tar.zst MetaTerm-52dd097c4d679d53060b415e065151806f0acfbf.zip |
Reimplemented `kill` command using actual signal sending
Previously `kill` merely destroyed the terminal widget. This is contrary to the expected notion of `kill`, i.e. actually killing the process explicitly instead of relying on side effects.
The normal mode `d` verb now explicitly destroys the current item's content, be it a terminal widget or a history view.
Diffstat (limited to 'src/list')
-rw-r--r-- | src/list/TerminalItem.qml | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/list/TerminalItem.qml b/src/list/TerminalItem.qml index 7dd0350..2eb9dc7 100644 --- a/src/list/TerminalItem.qml +++ b/src/list/TerminalItem.qml @@ -81,6 +81,14 @@ Item { unfocus(); } + function terminate() { + if ( terminal !== null ) { + terminal.terminate(); + } else { + throw "No process to terminate."; + } + } + FocusScope { id: scope @@ -114,7 +122,10 @@ Item { item.terminal.onFinished.connect(function() { createHistoryViewer(item.terminal.history); item.reset(); - item.select(); + + if ( item.index === terminalList.activeItem ) { + item.select(); + } if ( item.index === ( terminalList.children.length - 2 ) ) { terminalList.selectNext(); |