From d186f10f5282adde73d06986bdcf75fb74dffcc2 Mon Sep 17 00:00:00 2001
From: Slava Pestov <slava@slava-pestovs-macbook-pro.local>
Date: Fri, 13 Feb 2009 19:16:37 -0600
Subject: [PATCH] Don't position popups at negative x co-ordinates

---
 basis/math/rectangles/positioning/positioning-tests.factor | 7 +++++++
 basis/math/rectangles/positioning/positioning.factor       | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/basis/math/rectangles/positioning/positioning-tests.factor b/basis/math/rectangles/positioning/positioning-tests.factor
index 0a17d70a12..42ebe9d7c7 100644
--- a/basis/math/rectangles/positioning/positioning-tests.factor
+++ b/basis/math/rectangles/positioning/positioning-tests.factor
@@ -36,4 +36,11 @@ IN: math.rectangles.positioning.tests
     { 50 50 }
     { 100 100 }
     popup-loc
+] unit-test
+
+[ { 0 20 } ] [
+    { -50 70 } { 0 0 } <rect>
+    { 50 50 }
+    { 100 100 }
+    popup-loc
 ] unit-test
\ No newline at end of file
diff --git a/basis/math/rectangles/positioning/positioning.factor b/basis/math/rectangles/positioning/positioning.factor
index 1af8b6e14e..37b10b357d 100644
--- a/basis/math/rectangles/positioning/positioning.factor
+++ b/basis/math/rectangles/positioning/positioning.factor
@@ -7,7 +7,7 @@ IN: math.rectangles.positioning
 ! in a semi-intelligent manner
 
 : popup-x ( visible-rect popup-dim screen-dim -- x )
-    [ loc>> first ] 2dip swap [ first ] bi@ - min ;
+    [ loc>> first ] 2dip swap [ first ] bi@ - min 0 max ;
 
 : preferred-y ( visible-rect -- y )
     [ loc>> ] [ dim>> ] bi [ second ] bi@ + ;