From 1cd5241191d8b926cb913d4a7be1d36d144fc02d Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Thu, 11 Feb 2021 12:07:19 +0800 Subject: [PATCH] roojs-bootstrap.js roojs-bootstrap-debug.js --- roojs-bootstrap-debug.js | 18 +++++++++++++++++- roojs-bootstrap.js | 3 ++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/roojs-bootstrap-debug.js b/roojs-bootstrap-debug.js index 9ce4027376..f926485f15 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -19956,7 +19956,9 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { this.arrowEl.setXY(xy); return true; } - return this.updatePosition('left', false); + // continue through... + try_move = false; + case 'left': var exact = this.el.getAlignToXY(this.alignEl, 'tr-tl', [-10,0]); @@ -19969,8 +19971,22 @@ Roo.extend(Roo.bootstrap.Popover, Roo.bootstrap.Component, { this.arrowEl.setXY(xy); return true; } + // call self... return this.updatePosition('right', false); + case 'top': + var exact = this.el.getAlignToXY(this.alignEl, 't-b', [0,-10]); + var offset = this.el.getAlignToXY(this.alignEl, 't-b?',[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('tl', false); + xy[0]+=2;xy[1]+=5; // << fix me + this.arrowEl.setXY(xy); + return true; + } + return this.updatePosition('right', false); + } diff --git a/roojs-bootstrap.js b/roojs-bootstrap.js index 195c2615af..1cbd9ad8db 100644 --- a/roojs-bootstrap.js +++ b/roojs-bootstrap.js @@ -824,7 +824,8 @@ if(this.title===false){this.headerEl.hide();}this.el.show();this.el.dom.style.di this.el.setXY([x-(es.width/2),y-(es.height/2)]);}this.el.addClass('in');this.hoverState='in';if(this.modal){this.maskEl.setSize(Roo.lib.Dom.getViewWidth(true),Roo.lib.Dom.getViewHeight(true));this.maskEl.setStyle('z-index',Roo.bootstrap.Popover.zIndex++); this.maskEl.dom.style.display='block';this.maskEl.addClass('show');}this.el.setStyle('z-index',Roo.bootstrap.Popover.zIndex++);this.fireEvent('show',this);},updatePosition:function(A,B){this.el.addClass(A+' roo-popover-'+A);if(!this.alignEl){return false; }switch(A){case 'right':var C=this.el.getAlignToXY(this.alignEl,'tl-tr',[10,0]);var D=this.el.getAlignToXY(this.alignEl,'tl-tr?',[10,0]);if(!B||C.equals(D)||C[0]==D[0]){this.setXY(D);var xy=this.alignEl.getAnchorXY('tr',false);xy[0]+=2;xy[1]+=5;this.arrowEl.setXY(xy); -return true;}return this.updatePosition('left',false);case 'left':var C=this.el.getAlignToXY(this.alignEl,'tr-tl',[-10,0]);var D=this.el.getAlignToXY(this.alignEl,'tl-tr?',[-10,0]);if(!B||C.equals(D)||C[0]==D[0]){this.setXY(D);var xy=this.alignEl.getAnchorXY('tl',false); +return true;}B=false;case 'left':var C=this.el.getAlignToXY(this.alignEl,'tr-tl',[-10,0]);var D=this.el.getAlignToXY(this.alignEl,'tl-tr?',[-10,0]);if(!B||C.equals(D)||C[0]==D[0]){this.setXY(D);var xy=this.alignEl.getAnchorXY('tl',false);xy[0]+=2;xy[1]+=5; +this.arrowEl.setXY(xy);return true;}return this.updatePosition('right',false);case 'top':var C=this.el.getAlignToXY(this.alignEl,'t-b',[0,-10]);var D=this.el.getAlignToXY(this.alignEl,'t-b?',[0,-10]);if(!B||C.equals(D)||C[1]==D[1]){this.setXY(D);var xy=this.alignEl.getAnchorXY('tl',false); xy[0]+=2;xy[1]+=5;this.arrowEl.setXY(xy);return true;}return this.updatePosition('right',false);}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;},hide:function(){this.el.setXY([0,0]); this.el.removeClass('in');this.el.hide();this.hoverState=null;this.maskEl.hide();this.fireEvent('hide',this);}});Roo.apply(Roo.bootstrap.Popover,{alignment:{'left':['r-l',[-10,0],'left bs-popover-left'],'right':['l-br',[10,0],'right bs-popover-right'],'bottom':['t-b',[0,10],'top bs-popover-top'],'top':['b-t',[0,-10],'bottom bs-popover-bottom']} ,zIndex:20001,clickHander:false,onMouseDown:function(e){if(!e.getTarget(".roo-popover")){this.hideAll();}},popups:[],register:function(A){if(!Roo.bootstrap.Popover.clickHandler){Roo.bootstrap.Popover.clickHandler=Roo.get(document).on("mousedown",Roo.bootstrap.Popover.onMouseDown,Roo.bootstrap.Popover); -- 2.39.2