[gnome-shell] boxpointer: keep a margin between the box and the screen edge



commit 2b3c31a5031382241885b86180b5988305279d5f
Author: Dan Winship <danw gnome org>
Date:   Mon Oct 25 11:50:00 2010 -0400

    boxpointer: keep a margin between the box and the screen edge
    
    per the mockups
    
    https://bugzilla.gnome.org/show_bug.cgi?id=631193

 js/ui/boxpointer.js |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js
index ff87759..06977e8 100644
--- a/js/ui/boxpointer.js
+++ b/js/ui/boxpointer.js
@@ -258,8 +258,6 @@ BoxPointer.prototype = {
     },
 
     setPosition: function(sourceActor, gap, alignment) {
-        let primary = global.get_primary_monitor();
-
         // We need to show it now to force an allocation,
         // so that we can query the correct size.
         this.actor.show();
@@ -270,6 +268,12 @@ BoxPointer.prototype = {
 
         let [minWidth, minHeight, natWidth, natHeight] = this.actor.get_preferred_size();
 
+        // We also want to keep it onscreen, and separated from the
+        // edge by the same distance as the main part of the box is
+        // separated from its sourceActor
+        let primary = global.get_primary_monitor();
+        let arrowRise = this.actor.get_theme_node().get_length('-arrow-rise');
+
         let resX, resY;
 
         switch (this._arrowSide) {
@@ -304,7 +308,7 @@ BoxPointer.prototype = {
                 break;
             }
 
-            resX = Math.min(resX, primary.x + primary.width - natWidth);
+            resX = Math.min(resX, primary.x + primary.width - natWidth - arrowRise - gap);
             resX = Math.max(resX, primary.x);
 
             this.setArrowOrigin((sourceX - resX) + Math.floor(sourceWidth / 2));
@@ -324,7 +328,7 @@ BoxPointer.prototype = {
                 break;
             }
 
-            resY = Math.min(resY, primary.y + primary.height - natHeight);
+            resY = Math.min(resY, primary.y + primary.height - natHeight - arrowRise - gap);
             resY = Math.max(resY, primary.y);
 
             this.setArrowOrigin((sourceY - resY) + Math.floor(sourceHeight / 2));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]