summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-07 14:50:59 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-07 14:50:59 +0000
commitdf41e705b70bd388b96bd02e0bfc214e493e9af0 (patch)
tree7c40340f5a636996e0456bdf568a17cca61aaeb7
parent94754d04577280a487146094a9a82339a5087a15 (diff)
downloadruby-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--ChangeLog6
-rw-r--r--ext/tk/lib/tk/scrollbar.rb13
2 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index cf39d9df8..6196e2d7f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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