roojs-bootstrap.js
[roojs1] / roojs-bootstrap-debug.js
index f926485..3294f2c 100644 (file)
@@ -19938,6 +19938,10 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component,  {
      */
     updatePosition : function(placement, try_move)
     {
+        this.el.removeClass([
+            'fade','top','bottom', 'left', 'right','in',
+            'bs-popover-top','bs-popover-bottom', 'bs-popover-left', 'bs-popover-right'
+        ]);
         this.el.addClass(placement + ' roo-popover-' + placement);
         
         if (!this.alignEl ) {
@@ -19962,7 +19966,7 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component,  {
             
             case 'left':
                 var exact = this.el.getAlignToXY(this.alignEl, 'tr-tl', [-10,0]);
-                var offset = this.el.getAlignToXY(this.alignEl, 'tl-tr?',[-10,0]);
+                var offset = this.el.getAlignToXY(this.alignEl, 'tr-tl?',[-10,0]);
                 if (!try_move || exact.equals(offset) || exact[0] == offset[0] ) {
                     //normal display... or moved up/down.
                     this.setXY(offset);
@@ -19980,24 +19984,33 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component,  {
                 if (!try_move || exact.equals(offset) || exact[1] == offset[1] ) {
                     //normal display... or moved up/down.
                     this.setXY(offset);
-                    var xy = this.alignEl.getAnchorXY('tl', false);
+                    var xy = this.alignEl.getAnchorXY('b', false);
                     xy[0]+=2;xy[1]+=5; // << fix me
                     this.arrowEl.setXY(xy);
                     return true;
                 }
-                return this.updatePosition('right', false);
+                // fall through
+                try_move = false;
+            
+            case 'bottom':
+                 var exact = this.el.getAlignToXY(this.alignEl, 'b-t', [0,10]);
+                var offset = this.el.getAlignToXY(this.alignEl, 'b-t?',[0,10]);
+                if (!try_move || exact.equals(offset) || exact[1] == offset[1] ) {
+                    //normal display... or moved up/down.
+                    this.setXY(offset);
+                    var xy = this.alignEl.getAnchorXY('t', false);
+                    xy[0]+=2;xy[1]+=5; // << fix me
+                    this.arrowEl.setXY(xy);
+                    return true;
+                }
+                // fall through
+                return this.updatePosition('top', false);
                 
             
         }
         
         
-        
-        // work out the pointy position.
-        var p1 = this.alignment[0].split('-').pop().replace('?','');
-        var xy = this.alignEl.getAnchorXY(p1, false);
-        xy[0]+=2;xy[1]+=5;
-        this.arrowEl.setXY(xy);
-        return true;
+        return false;
     },
     
     hide : function()