vcl/qt5/QtFrame.cxx |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit 5d2b2b9f381bbfb19ffd393f361c1fdd4a898550
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Jan 30 11:58:28 2025 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Thu Jan 30 15:55:54 2025 +0100

    qt: Return from QtFrame::SetPosSize after running it in main thread
    
    If QtFrame::SetPosSize is called from a thread other
    than the main thread, it gets executed in the main
    thread via QtInstance::RunInMainThread.
    Once that's done, return, and don't try to run
    the rest of the method once again in the original thread.
    
    This was missed in
    
        commit 5ef991ffc226424a673662b6e478db124825022a
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Fri Aug 30 17:20:41 2024 +0200
    
            tdf#162696 qt: Always run QtFrame::SetPosSize in main thread
    
    and resulted in a deadlock when opening the sample doc
    attachment 198264 from tdf#164460 with the qt6 VCL plugin
    and running the macro, using a current qtbase git dev build.
    
    With this and the 2 previous commits
    
        Change-Id: I0ee7aa62893da92b886acfd3d47be0bdb10d6007
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu Jan 30 11:38:52 2025 +0100
    
            qt: Ensure more methods are run in main thread
    
    and
    
        Change-Id: I787bb74644dcf29ccbd6c7a59fe5ca9fc7a50061
        commit 9cfc139a5a9ec499741cfc95669f6469a17e5329
        Date:   Thu Jan 30 11:47:53 2025 +0100
    
            qt: Ensure QMenu gets destroyed in main thread
    
    in place, the macro now gets executed and the
    form shows as expected without triggering asserts
    or deadlocks.
    
    Change-Id: I503e03133eb09e1bbea5e7549fbbcdd3c3379d1d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180939
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
index ff87fec1a642..791901dcbc29 100644
--- a/vcl/qt5/QtFrame.cxx
+++ b/vcl/qt5/QtFrame.cxx
@@ -509,6 +509,7 @@ void QtFrame::SetPosSize(tools::Long nX, tools::Long nY, 
tools::Long nWidth, too
     if (!rQtInstance.IsMainThread())
     {
         rQtInstance.RunInMainThread([&] { SetPosSize(nX, nY, nWidth, nHeight, 
nFlags); });
+        return;
     }
 
     if (!isWindow() || isChild(true, false))

Reply via email to