summaryrefslogtreecommitdiff
blob: d75fd340575f04d897131f9d16bc057d3519bd09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Index: kdebase-3.5.1/konsole/konsole/konsole.cpp
===================================================================
--- kdebase-3.5.1.orig/konsole/konsole/konsole.cpp
+++ kdebase-3.5.1/konsole/konsole/konsole.cpp
@@ -3619,6 +3619,21 @@ void Konsole::detachSession(TESession* _
   sessions.remove(_se);
   delete ra;
 
+  if ( _se->isMasterMode() ) {
+    // Disable master mode when detaching master
+    setMasterMode(false);
+  } else {
+    QPtrListIterator<TESession> from_it(sessions);
+    for(; from_it.current(); ++from_it) {
+      TESession *from = from_it.current();
+      if(from->isMasterMode())
+        disconnect(from->widget(), SIGNAL(keyPressedSignal(QKeyEvent*)),
+	           _se->getEmulation(), SLOT(onKeyPress(QKeyEvent*)));
+    }
+  }
+
+  disconnect(0, 0, _se->getEmulation(), SLOT(onKeyPress(QKeyEvent*)));
+
   QColor se_tabtextcolor = tabwidget->tabColor( _se->widget() );
 
   disconnect( _se,SIGNAL(done(TESession*)),