@@ -76,6 +76,11 @@ export default () => ({
76
76
default : defaultPropFactory ( 'disabled' ) ,
77
77
} ,
78
78
79
+ positioningDisabled : {
80
+ type : Boolean ,
81
+ default : defaultPropFactory ( 'positioningDisabled' ) ,
82
+ } ,
83
+
79
84
placement : {
80
85
type : String ,
81
86
default : defaultPropFactory ( 'placement' ) ,
@@ -269,7 +274,7 @@ export default () => ({
269
274
...this . classes ,
270
275
popperClass : this . popperClass ,
271
276
} ,
272
- result : this . result ,
277
+ result : this . positioningDisabled ? null : this . result ,
273
278
}
274
279
} ,
275
280
} ,
@@ -292,12 +297,13 @@ export default () => ({
292
297
}
293
298
} ,
294
299
295
- triggers ( ) {
296
- if ( ! this . $_isDisposed ) {
297
- this . $_removeEventListeners ( )
298
- this . $_addEventListeners ( )
299
- }
300
- } ,
300
+ ...[
301
+ 'triggers' ,
302
+ 'positioningDisabled' ,
303
+ ] . reduce ( ( acc , prop ) => {
304
+ acc [ prop ] = '$_refreshListeners'
305
+ return acc
306
+ } , { } ) ,
301
307
302
308
...[
303
309
'placement' ,
@@ -411,7 +417,7 @@ export default () => ({
411
417
} ,
412
418
413
419
async $_computePosition ( ) {
414
- if ( this . $_isDisposed ) return
420
+ if ( this . $_isDisposed || this . positioningDisabled ) return
415
421
416
422
const options : ComputePositionConfig = {
417
423
strategy : this . strategy ,
@@ -764,12 +770,14 @@ export default () => ({
764
770
addEvents ( [ this . $_popperNode ] , HIDE_EVENT_MAP , this . popperTriggers , this . popperHideTriggers , handleHide )
765
771
766
772
// Scroll
767
- addListeners ( [
768
- ...getScrollParents ( this . $_referenceNode ) ,
769
- ...getScrollParents ( this . $_popperNode ) ,
770
- ] , 'scroll' , ( ) => {
771
- this . $_computePosition ( )
772
- } )
773
+ if ( ! this . positioningDisabled ) {
774
+ addListeners ( [
775
+ ...getScrollParents ( this . $_referenceNode ) ,
776
+ ...getScrollParents ( this . $_popperNode ) ,
777
+ ] , 'scroll' , ( ) => {
778
+ this . $_computePosition ( )
779
+ } )
780
+ }
773
781
} ,
774
782
775
783
$_removeEventListeners ( ) {
@@ -779,6 +787,13 @@ export default () => ({
779
787
this . $_events = [ ]
780
788
} ,
781
789
790
+ $_refreshListeners ( ) {
791
+ if ( ! this . $_isDisposed ) {
792
+ this . $_removeEventListeners ( )
793
+ this . $_addEventListeners ( )
794
+ }
795
+ } ,
796
+
782
797
$_handleGlobalClose ( event , touch = false ) {
783
798
if ( this . $_showFrameLocked ) return
784
799
0 commit comments