Hack to close a window that is colorizing.
This commit is contained in:
parent
5cc3129260
commit
5051f4f80d
|
@ -91,7 +91,9 @@ class ColorDelegator(Delegator):
|
||||||
if __debug__: print "schedule colorizing"
|
if __debug__: print "schedule colorizing"
|
||||||
self.after_id = self.after(1, self.recolorize)
|
self.after_id = self.after(1, self.recolorize)
|
||||||
|
|
||||||
def close(self):
|
close_when_done = None # Window to be closed when done colorizing
|
||||||
|
|
||||||
|
def close(self, close_when_done=None):
|
||||||
if self.after_id:
|
if self.after_id:
|
||||||
after_id = self.after_id
|
after_id = self.after_id
|
||||||
self.after_id = None
|
self.after_id = None
|
||||||
|
@ -99,6 +101,11 @@ class ColorDelegator(Delegator):
|
||||||
self.after_cancel(after_id)
|
self.after_cancel(after_id)
|
||||||
self.allow_colorizing = 0
|
self.allow_colorizing = 0
|
||||||
self.stop_colorizing = 1
|
self.stop_colorizing = 1
|
||||||
|
if close_when_done:
|
||||||
|
if not self.colorizing:
|
||||||
|
close_when_done.destroy()
|
||||||
|
else:
|
||||||
|
self.close_when_done = close_when_done
|
||||||
|
|
||||||
def toggle_colorize_event(self, event):
|
def toggle_colorize_event(self, event):
|
||||||
if self.after_id:
|
if self.after_id:
|
||||||
|
@ -140,6 +147,10 @@ class ColorDelegator(Delegator):
|
||||||
if self.allow_colorizing and self.tag_nextrange("TODO", "1.0"):
|
if self.allow_colorizing and self.tag_nextrange("TODO", "1.0"):
|
||||||
if __debug__: print "reschedule colorizing"
|
if __debug__: print "reschedule colorizing"
|
||||||
self.after_id = self.after(1, self.recolorize)
|
self.after_id = self.after(1, self.recolorize)
|
||||||
|
if self.close_when_done:
|
||||||
|
top = self.close_when_done
|
||||||
|
self.close_when_done = None
|
||||||
|
top.destroy()
|
||||||
|
|
||||||
def recolorize_main(self):
|
def recolorize_main(self):
|
||||||
next = "1.0"
|
next = "1.0"
|
||||||
|
|
|
@ -408,7 +408,8 @@ class EditorWindow:
|
||||||
text = self.text
|
text = self.text
|
||||||
top = self.getlineno("@0,0")
|
top = self.getlineno("@0,0")
|
||||||
bot = self.getlineno("@0,65535")
|
bot = self.getlineno("@0,65535")
|
||||||
if top == bot:
|
if top == bot and text.winfo_height() == 1:
|
||||||
|
# Geometry manager hasn't run yet
|
||||||
height = int(text['height'])
|
height = int(text['height'])
|
||||||
bot = top + height - 1
|
bot = top + height - 1
|
||||||
return top, bot
|
return top, bot
|
||||||
|
@ -429,15 +430,15 @@ class EditorWindow:
|
||||||
self.top.tkraise()
|
self.top.tkraise()
|
||||||
reply = self.maybesave()
|
reply = self.maybesave()
|
||||||
if reply != "cancel":
|
if reply != "cancel":
|
||||||
if self.color and self.color.colorizing:
|
|
||||||
self.color.close()
|
|
||||||
self.top.bell()
|
|
||||||
return "cancel"
|
|
||||||
if self.close_hook:
|
if self.close_hook:
|
||||||
self.close_hook()
|
self.close_hook()
|
||||||
|
colorizing = 0
|
||||||
if self.color:
|
if self.color:
|
||||||
self.color.close() # Cancel colorization
|
colorizing = self.color.colorizing
|
||||||
self.top.destroy()
|
doh = colorizing and self.top
|
||||||
|
self.color.close(doh) # Cancel colorization
|
||||||
|
if not colorizing:
|
||||||
|
self.top.destroy()
|
||||||
return reply
|
return reply
|
||||||
|
|
||||||
def load_extensions(self):
|
def load_extensions(self):
|
||||||
|
|
Loading…
Reference in New Issue