X-Git-Url: https://git.sthu.org/?p=pygdb.git;a=blobdiff_plain;f=DbgTerminal.py;h=ebe4e1a2f147ed16bb8c37474724d02f4811dded;hp=005661ce3e4aeff79f2bcea9461a8389555e7929;hb=162c3ac77fb35684824a2a8f975800dd9780bf10;hpb=0296b6d5afe20a15764842873917bf1d6aa34b77 diff --git a/DbgTerminal.py b/DbgTerminal.py index 005661c..ebe4e1a 100644 --- a/DbgTerminal.py +++ b/DbgTerminal.py @@ -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 +