From e29bd441370e1f5889f28d810c262c3c1b727d07 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Fri, 26 Dec 2025 10:44:23 +0800 Subject: [PATCH] bugfix --- bricks/bricks.js | 8 +++++--- bricks/popup.js | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/bricks/bricks.js b/bricks/bricks.js index 2b8e9ce..610f51e 100644 --- a/bricks/bricks.js +++ b/bricks/bricks.js @@ -240,19 +240,21 @@ bricks.universal_handler = async function(from_widget, widget, desc, event){ bricks.default_popup = function(opts){ var popts = bricks.get_popup_default_options(); bricks.extend(popts, opts); + popts.origin_event = event; return new bricks.Popup(popts); } -bricks.default_popupwindow = function(opts){ +bricks.default_popupwindow = function(opts,event){ var popts = bricks.get_popupwindow_default_options(); bricks.extend(popts, opts); + popts.origin_event = event; return new bricks.PopupWindow(popts); } bricks.buildEventHandler = async function(w, desc, event){ var target; if (desc.target == 'Popup'){ - target = bricks.default_popup(desc.popup_options || {}); + target = bricks.default_popup(desc.popup_options || {}, event); } else if (desc.target == 'PopupWindow') { - target = bricks.default_popupwindow(desc.popup_options || {}); + target = bricks.default_popupwindow(desc.popup_options || {}, event); } else if ( desc.target instanceof bricks.JsWidget ) { target = desc.target; } else { diff --git a/bricks/popup.js b/bricks/popup.js index bfdcb1a..071a204 100644 --- a/bricks/popup.js +++ b/bricks/popup.js @@ -179,6 +179,11 @@ bricks.Popup = class extends bricks.VBox { positify_tl(){ var rect, w, h, t, l; + if (self.opts.eventpos && self.opts.origin_event){ + this.set_style('top', this.origin_event.offsetY + 'px'); + this.set_style('left', this.origin_event.offsetX + 'px'); + return; + } if (this.top && this.left){ this.set_style('top', this.top); this.set_style('left', this.left);