[Libreoffice-commits] core.git: framework/source vcl/source

Caolán McNamara caolanm at redhat.com
Tue Nov 22 14:14:16 UTC 2016


 framework/source/layoutmanager/toolbarlayoutmanager.cxx |    3 +++
 vcl/source/window/dockmgr.cxx                           |    3 +++
 vcl/source/window/dockwin.cxx                           |    2 ++
 3 files changed, 8 insertions(+)

New commits:
commit 19c3559e873e79a178e9c4932363e2a2cc1b9ac0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Nov 22 13:43:32 2016 +0000

    Resolves: rhbz#1397181 toolbar layout manager not respecting drag cancel
    
    plus restore original mbDockCanceled state after wayland-enforced
    cancel otherwise next drag won't work
    
    Change-Id: Idefed25b925b36d0bf72b77609c4fc2eb47f71b9

diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
index 583d622..b770fd8 100644
--- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
@@ -3476,6 +3476,9 @@ throw (uno::RuntimeException, std::exception)
 void SAL_CALL ToolbarLayoutManager::endDocking( const awt::EndDockingEvent& e )
 throw (uno::RuntimeException, std::exception)
 {
+    if (e.bCancelled)
+        return;
+
     bool bDockingInProgress( false );
     bool bStartDockFloated( false );
     bool bFloating( false );
diff --git a/vcl/source/window/dockmgr.cxx b/vcl/source/window/dockmgr.cxx
index 9012a90..1467df8 100644
--- a/vcl/source/window/dockmgr.cxx
+++ b/vcl/source/window/dockmgr.cxx
@@ -935,6 +935,7 @@ void ImplDockingWindowWrapper::EndDocking( const Rectangle& rRect, bool bFloatMo
 {
     Rectangle aRect( rRect );
 
+    bool bOrigDockCanceled = mbDockCanceled;
     if (bFloatMode && !StyleSettings::GetDockingFloatsSupported())
         mbDockCanceled = true;
 
@@ -971,6 +972,8 @@ void ImplDockingWindowWrapper::EndDocking( const Rectangle& rRect, bool bFloatMo
 
     // must be enabled in Window::Notify to prevent permanent docking during mouse move
     mbStartDockingEnabled = false;
+
+    mbDockCanceled = bOrigDockCanceled;
 }
 
 bool ImplDockingWindowWrapper::PrepareToggleFloatingMode()
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index 8f63c69..7d3ba8b 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -589,6 +589,7 @@ bool DockingWindow::Docking( const Point&, Rectangle& )
 
 void DockingWindow::EndDocking( const Rectangle& rRect, bool bFloatMode )
 {
+    bool bOrigDockCanceled = mbDockCanceled;
     if (bFloatMode && !StyleSettings::GetDockingFloatsSupported())
         mbDockCanceled = true;
 
@@ -614,6 +615,7 @@ void DockingWindow::EndDocking( const Rectangle& rRect, bool bFloatMode )
             Show();
     }
     mbDocking = false;
+    mbDockCanceled = bOrigDockCanceled;
 }
 
 bool DockingWindow::PrepareToggleFloatingMode()


More information about the Libreoffice-commits mailing list