aboutsummaryrefslogtreecommitdiff
path: root/src/list/TerminalItem.qml
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-09-04 22:05:46 +0200
committerAdrian Kummerlaender2015-09-04 22:05:46 +0200
commit52dd097c4d679d53060b415e065151806f0acfbf (patch)
treed38556e1f94e5ba89ac88eea2f581d8dc060317b /src/list/TerminalItem.qml
parent20da0c6f663be3c1cebc92671d489f56972915e3 (diff)
downloadMetaTerm-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/TerminalItem.qml')
-rw-r--r--src/list/TerminalItem.qml13
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();