vcl/source/app/weldutils.cxx | 2 ++
1 file changed, 2 insertions(+)
New commits:
commit c34fced015ce06ced01e29971ba26b3871c0ec8d
Author: Caolán McNamara <[email protected]>
AuthorDate: Wed Jul 31 16:29:23 2024 +0100
Commit: Adolfo Jayme Barrientos <[email protected]>
CommitDate: Thu Aug 1 06:22:18 2024 +0200
Resolves: tdf#162278 get popup position relative to the dest parent
since:
commit 85511e27d259d6b19cc6c463fc06368c14511bb8
Author: Caolán McNamara <[email protected]>
AuthorDate: Sat Jul 27 20:25:35 2024 +0100
Resolves: tdf#160509 use BorderWindow client for dialog parent
we now use the clientwindow of toplevel frames as the parent window to
use as the parent for dialogs/etc so we get the right SystemWindow for
dialogs.
So we need to also adjust the calculation of where we put child popups
of such toplevel frames to be relative to the clientwindow instead of
borderwindow
Change-Id: I896e75a5ad709a51a445dc1be2c0fb9f985f01a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171296
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <[email protected]>
diff --git a/vcl/source/app/weldutils.cxx b/vcl/source/app/weldutils.cxx
index 235e3140adca..fd9bded527fb 100644
--- a/vcl/source/app/weldutils.cxx
+++ b/vcl/source/app/weldutils.cxx
@@ -610,6 +610,8 @@ weld::Window* GetPopupParent(vcl::Window& rOutWin,
tools::Rectangle& rRect)
AbsoluteScreenPixelRectangle aRectAbs =
FloatingWindow::ImplConvertToAbsPos(&rOutWin, rRect);
vcl::Window* pWin = rOutWin.GetFrameWindow();
+ // resolve from a possible BorderWindow to the ClientWindow (returns
itself if not)
+ pWin = pWin->ImplGetWindow();
rRect = FloatingWindow::ImplConvertToRelPos(pWin, aRectAbs);
rRect.SetPos(pWin->ScreenToOutputPixel(rRect.TopLeft()));