vcl/source/app/weldutils.cxx | 2 ++ 1 file changed, 2 insertions(+) New commits: commit c34fced015ce06ced01e29971ba26b3871c0ec8d Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Wed Jul 31 16:29:23 2024 +0100 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> 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 <caolan.mcnam...@collabora.com> 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 <fit...@ubuntu.com> 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()));