From: Chris Alfeld <
[email protected]>
Subject: Re: Tk horizontal scrollbar infinite loop
Date: Sun, 26 Feb 2006 00:48:22 +0900
Message-ID: said:
1.8.4 still has the problem.
Both of the tests below have the problem.
Hmmm... That is a bad news.
Well, what message do you get from the following on 1.8.4?
---------------------------------------------------
require 'tk'
r = Tk.root
f = TkFrame.new
sb = TkScrollbar.new(f,
rient=>:horizontal)
p ['a',
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
sb.pack
side=>:bottom, :fill=>:x)
p ['b',
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
Tk.update
p ['c',
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
f.pack
side=>:bottom, :fill=>:x)
p ['d',
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
Tk.update
p ['e',
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
Tk.after(1000){
p ['f',
[[r.winfo_reqwidth,r.winfo_reqheight],
[r.winfo_width,r.winfo_height]],
[[f.winfo_reqwidth,f.winfo_reqheight],
[f.winfo_width,f.winfo_height]],
[[sb.winfo_reqwidth,sb.winfo_reqheight],
[sb.winfo_width,sb.winfo_height]]
]
}
Tk.mainloop
---------------------------------------------------
My Linux box returns
------------------------------------------------------------------------
["a", [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
["b", [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
["c", [[200, 200], [200, 200]], [[2, 21], [1, 1]], [[2, 21], [1, 1]]]
["d", [[200, 200], [200, 200]], [[2, 21], [1, 1]], [[2, 21], [1, 1]]]
["e", [[42, 21], [42, 21]], [[42, 21], [42, 21]], [[42, 21], [42, 21]]]
["f", [[42, 21], [42, 21]], [[42, 21], [42, 21]], [[42, 21], [42, 21]]]
------------------------------------------------------------------------
When sb.pack
side=>:bottom, :fill=>:x,
ady=>1), returns
------------------------------------------------------------------------
["a", [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
["b", [[200, 200], [1, 1]], [[1, 1], [1, 1]], [[2, 21], [1, 1]]]
["c", [[200, 200], [200, 200]], [[2, 23], [1, 1]], [[2, 21], [1, 1]]]
["d", [[200, 200], [200, 200]], [[2, 23], [1, 1]], [[2, 21], [1, 1]]]
["e", [[42, 23], [42, 23]], [[42, 23], [42, 23]], [[42, 21], [42, 21]]]
["f", [[42, 23], [42, 23]], [[42, 23], [42, 23]], [[42, 21], [42, 21]]]