[Libreoffice-commits] core.git: 3 commits - officecfg/registry vcl/source

Maxim Monastirsky momonasmon at gmail.com
Fri Feb 24 00:01:18 UTC 2017


 officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu |    4 -
 vcl/source/helper/commandinfoprovider.cxx                            |   22 +++-------
 vcl/source/window/menu.cxx                                           |   17 +++++++
 3 files changed, 26 insertions(+), 17 deletions(-)

New commits:
commit fe7c8e4ec1990f33d325d3fcabdce30ef4f74465
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date:   Thu Feb 23 22:20:18 2017 +0200

    Closing popup menu should close the parent toolbox
    
    ... if that toolbox is in popup mode (e.g. shapes toolbar
    dropdowns, or the toolbar overflow floater). Same behavior
    was introduced for non menu based dropdowns in
    81d4fbc0daa54889ccb09e6a3fadff9c70d99448 ("tdf#42029 Use a
    floating toolbar to show clipped items"), and is similar
    to what we had already in ToolBox::Select, i.e. when the
    user made a selection, the floating windows should close.
    
    This must be done before executing the menu selection
    handler, because such handler might execute stuff
    synchronously (e.g. MenuBarManager::Select), and if it
    will open a modal dialog, the floating toolbox will stay
    visible after the dialog shows.
    
    Change-Id: Ie93e71fa4dea80ba444aebccacf6adb926a39224

diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 48055ff..e76662b 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -113,6 +113,20 @@ static void ImplSetMenuItemData( MenuItemData* pData )
         pData->eType = MenuItemType::STRINGIMAGE;
 }
 
+namespace {
+
+void ImplClosePopupToolBox( const VclPtr<vcl::Window>& pWin )
+{
+    if ( pWin->GetType() == WindowType::TOOLBOX && ImplGetDockingManager()->IsInPopupMode( pWin ) )
+    {
+        ImplDockingWindowWrapper* pWrapper = ImplGetDockingManager()->GetDockingWindowWrapper( pWin );
+        if ( pWrapper && pWrapper->GetFloatingWindow() )
+            pWrapper->GetFloatingWindow()->EndPopupMode( FloatWinPopupEndFlags::CloseAll );
+    }
+}
+
+}
+
 Menu::Menu()
     : mpFirstDel(nullptr),
       pItemList(new MenuItemList),
@@ -3022,6 +3036,7 @@ sal_uInt16 PopupMenu::ImplExecute( const VclPtr<vcl::Window>& pW, const Rectangl
             pWin->doShutdown();
             pWindow->doLazyDelete();
             pWindow = nullptr;
+            ImplClosePopupToolBox(pW);
             ImplFlushPendingSelect();
             return nSelectedId;
         }
@@ -3082,7 +3097,7 @@ sal_uInt16 PopupMenu::ImplExecute( const VclPtr<vcl::Window>& pW, const Rectangl
         pWin->doShutdown();
         pWindow->doLazyDelete();
         pWindow = nullptr;
-
+        ImplClosePopupToolBox(pW);
         ImplFlushPendingSelect();
     }
 
commit 6dc453db7ad693cd960170c35245929ea539ba15
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date:   Thu Feb 23 09:52:46 2017 +0200

    Adapt insert image label for the context menu
    
    ... after commit fde6bbe41d3d8e13b6d3dc3f18e5ddcd10cfe5f0
    ("right click to insert image"), added .uno:InsertGraphic
    to the slide's context menu.
    
    Change-Id: Ib801899c17cc4f765f46fd4b8884e6b57b455f6d

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
index 0b860f7..d9733de 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu
@@ -3549,8 +3549,8 @@
         <prop oor:name="Label" oor:type="xs:string">
           <value xml:lang="en-US">~Image...</value>
         </prop>
-        <prop oor:name="TooltipLabel" oor:type="xs:string">
-          <value xml:lang="en-US">Insert Image</value>
+        <prop oor:name="PopupLabel" oor:type="xs:string">
+          <value xml:lang="en-US">Insert Image...</value>
         </prop>
         <prop oor:name="Properties" oor:type="xs:int">
           <value>1</value>
commit 89c05973ff57eea1bc6c9cdc9e7dc13796e7d339
Author: Maxim Monastirsky <momonasmon at gmail.com>
Date:   Thu Feb 23 09:43:24 2017 +0200

    Remove the intermediate xModel variables
    
    And make sure to check for a nullptr xController
    in GetBitmapForCommand.
    
    Change-Id: Ib62bc06d0708847cfec54a71209cf68a4c32a50d

diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx
index 755d41f..931900a 100644
--- a/vcl/source/helper/commandinfoprovider.cxx
+++ b/vcl/source/helper/commandinfoprovider.cxx
@@ -85,18 +85,14 @@ Reference<ui::XAcceleratorConfiguration> const GetDocumentAcceleratorConfigurati
     Reference<frame::XController> xController = rxFrame->getController();
     if (xController.is())
     {
-        Reference<frame::XModel> xModel (xController->getModel());
-        if (xModel.is())
+        Reference<ui::XUIConfigurationManagerSupplier> xSupplier(xController->getModel(), UNO_QUERY);
+        if (xSupplier.is())
         {
-            Reference<ui::XUIConfigurationManagerSupplier> xSupplier (xModel, UNO_QUERY);
-            if (xSupplier.is())
+            Reference<ui::XUIConfigurationManager> xConfigurationManager(
+                xSupplier->getUIConfigurationManager());
+            if (xConfigurationManager.is())
             {
-                Reference<ui::XUIConfigurationManager> xConfigurationManager(
-                    xSupplier->getUIConfigurationManager());
-                if (xConfigurationManager.is())
-                {
-                    return xConfigurationManager->getShortCutManager();
-                }
+                return xConfigurationManager->getShortCutManager();
             }
         }
     }
@@ -314,10 +310,8 @@ BitmapEx GetBitmapForCommand(const OUString& rsCommandName,
 
     try
     {
-        Reference<frame::XController> xController(rxFrame->getController());
-        Reference<frame::XModel> xModel(xController->getModel());
-
-        Reference<ui::XUIConfigurationManagerSupplier> xSupplier(xModel, UNO_QUERY);
+        Reference<frame::XController> xController(rxFrame->getController(), UNO_SET_THROW);
+        Reference<ui::XUIConfigurationManagerSupplier> xSupplier(xController->getModel(), UNO_QUERY);
         if (xSupplier.is())
         {
             Reference<ui::XUIConfigurationManager> xDocUICfgMgr(xSupplier->getUIConfigurationManager());


More information about the Libreoffice-commits mailing list