diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-07 14:50:59 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-07 14:50:59 +0000 |
commit | df41e705b70bd388b96bd02e0bfc214e493e9af0 (patch) | |
tree | 7c40340f5a636996e0456bdf568a17cca61aaeb7 | |
parent | 94754d04577280a487146094a9a82339a5087a15 (diff) | |
download | ruby-df41e705b70bd388b96bd02e0bfc214e493e9af0.tar.gz ruby-df41e705b70bd388b96bd02e0bfc214e493e9af0.tar.xz ruby-df41e705b70bd388b96bd02e0bfc214e493e9af0.zip |
* ext/tk/lib/tk/scrollbar.rb: When 'set' operation, a scrollbar cannot
propagate view port information from the source widget (that calls
'set') to other assigned widgets.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/tk/lib/tk/scrollbar.rb | 13 |
2 files changed, 17 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Thu Oct 7 23:47:57 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> + + * ext/tk/lib/tk/scrollbar.rb: When 'set' operation, a scrollbar + cannot propagate view port information from the source widget + (that calls 'set') to other assigned widgets. + Thu Oct 7 17:36:25 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> * ext/tk/lib/tk.rb: When CHILDKILLED and so on, Tk.errorCode returns diff --git a/ext/tk/lib/tk/scrollbar.rb b/ext/tk/lib/tk/scrollbar.rb index 98b024720..c6591a127 100644 --- a/ext/tk/lib/tk/scrollbar.rb +++ b/ext/tk/lib/tk/scrollbar.rb @@ -29,6 +29,15 @@ class TkScrollbar<TkWindow end private :create_self + def propagate_set(src_win, first, last) + self.set(first, last) + if self.orient == 'horizontal' + @assigned.each{|w| w.xview('moveto', first) if w != src_win} + else # 'vertical' + @assigned.each{|w| w.yview('moveto', first) if w != src_win} + end + end + def assign(*wins) begin self.command(@scroll_proc) if self.cget('command').cmd != @scroll_proc @@ -39,9 +48,9 @@ class TkScrollbar<TkWindow wins.each{|w| @assigned << w unless @assigned.index(w) if orient == 'horizontal' - w.xscrollcommand proc{|first, last| self.set(first, last)} + w.xscrollcommand proc{|first, last| self.propagate_set(w, first, last)} else # 'vertical' - w.yscrollcommand proc{|first, last| self.set(first, last)} + w.yscrollcommand proc{|first, last| self.propagate_set(w, first, last)} end } Tk.update # avoid scrollbar trouble |