changed some stuff of active/inactive detection
[pygdb.git] / DbgTerminal.py
index 005661ce3e4aeff79f2bcea9461a8389555e7929..ebe4e1a2f147ed16bb8c37474724d02f4811dded 100644 (file)
@@ -73,9 +73,11 @@ class DbgTerminal (vte.Terminal):
 
                                status, param = res
                                if self.isActive():
+                                       print "got active: ", res
                                        for cb in self.gotActiveCallback:
                                                cb(status, param)
                                else:
+                                       print "got inactive: ", res
                                        for cb in self.gotInactiveCallback:
                                                cb(status, param)
                except:
@@ -99,7 +101,7 @@ class DbgTerminal (vte.Terminal):
                lines = string.split(text, "\n")
 
                #Remove the incomplete line
-               len = max(0,self.getHistoryLen()-1)
+               len = max(0,self.getHistoryLen())
                self.history[-1] += lines[0]
                self.history += lines[1:]
 
@@ -107,16 +109,25 @@ class DbgTerminal (vte.Terminal):
                #Check if activity status has been changed
                for i in range(len, self.getHistoryLen()):
                        line = self.history[i]
+                                       
+                       res = self.testForInactivity(i)
+                       if res != None:
+                               while self.activityChanged != None:
+                                       print "wait for pending activity"
+                                       gtk.main_iteration()
+
+                               self.setActive(False)
+                               self.activityChanged = res
 
                        res = self.testForActivity(i)
-                       if res != None and not self.isActive():
+                       if res != None:
+                               while self.activityChanged != None:
+                                       print "wait for pending activity"
+                                       gtk.main_iteration()
+
                                self.setActive(True)
                                self.activityChanged = res
-                               
-                       res = self.testForInactivity(i)
-                       if res != None and self.isActive():
-                               self.setActive(False)
-                               self.activityChanged = res
+