]> gitweb.factorcode.org Git - factor.git/commitdiff
Scroll to the top when pane control changes
authorslava <slava@factorcode.org>
Fri, 10 Nov 2006 20:45:06 +0000 (20:45 +0000)
committerslava <slava@factorcode.org>
Fri, 10 Nov 2006 20:45:06 +0000 (20:45 +0000)
library/ui/gadgets.factor
library/ui/gadgets/panes.factor
library/ui/gadgets/scrolling.factor

index 25608fe2b0a65790bcf8ac8a518530c10aa1b91b..0b8111f37302c85e2e91735073bf8f76f59412f8 100644 (file)
@@ -56,8 +56,10 @@ M: gadget equal? eq? ;
 
 : nth-gadget gadget-children nth ;
 
+: <zero-rect> { 0 0 } dup <rect> ;
+
 C: gadget ( -- gadget )
-    { 0 0 } dup <rect> over set-delegate
+    <zero-rect> over set-delegate
     { 0 1 } over set-gadget-orientation
     t over set-gadget-visible? ;
 
index 31f3f1b321d775626c839d6a6f5bca2f40df03a4..8a7f17eb3fb12fe0f9081a07d23cfe0287031410 100644 (file)
@@ -97,6 +97,7 @@ M: duplex-stream write-gadget
 : with-pane ( pane quot -- )
     #! Clear the pane and run the quotation in a scope with
     #! stdio set to the pane.
+    over scroll>top
     over pane-clear >r <pane-stream> r>
     over >r with-stream r> ?terpri ; inline
 
index a6f7a6c8d7867542f416c3d390594630b9da6fd9..4264007ebfd26e6b4a0f643e37f2637c610e5e93 100644 (file)
@@ -87,6 +87,9 @@ C: scroller ( gadget -- scroller )
 : (scroll>bottom) ( scroller -- )
     dup scroller-viewport viewport-dim { 0 1 } v* scroll ;
 
+: scroll>top ( gadget -- )
+    <zero-rect> swap scroll>rect ;
+
 : update-scroller ( scroller -- )
     dup scroller-follows [
         dup scroller-follows t eq? [