From 61d3637ff8616d3e231a20f8f0da3237e27ca40c Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 10 Dec 2001 16:42:43 +0000 Subject: [PATCH] SF patch #491183 (Jeff Epler): ScrolledText.grid() doesn't work Using grid methods on ScrolledText widgets does not work as expected. It either fails to pack a widget, or can even cause Tk to lock up. The problem is that the .grid method is being called on the text widget, not the frame widget. This can lead to the well-known lockup in Tk when a frame's children are managed by both the pack and grid managers. Even if it doesn't lock up, the frame is never placed within the intended widget. Program fragment: >>> import ScrolledText >>> s = ScrolledText.ScrolledText() >>> s.grid(row=0, column=0, rowspan=2) The following patch uses the same hack to copy the 'grid' and 'place' geometry manager methods to the ScrolledText instance as is already used for the 'pack' manager. --- Lib/lib-tk/ScrolledText.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib/lib-tk/ScrolledText.py b/Lib/lib-tk/ScrolledText.py index 866da3ad0c..5d92734dcc 100644 --- a/Lib/lib-tk/ScrolledText.py +++ b/Lib/lib-tk/ScrolledText.py @@ -33,7 +33,11 @@ class ScrolledText(Text): self['yscrollcommand'] = self.vbar.set self.vbar['command'] = self.yview - # Copy Pack methods of self.frame -- hack! - for m in Pack.__dict__.keys(): + # Copy geometry methods of self.frame -- hack! + methods = Pack.__dict__.keys() + methods = methods + Grid.__dict__.keys() + methods = methods + Place.__dict__.keys() + + for m in methods: if m[0] != '_' and m != 'config' and m != 'configure': setattr(self, m, getattr(self.frame, m)) -- 2.50.1