include/sfx2/request.hxx           |    4 ++--
 sw/source/uibase/uno/unomodule.cxx |    8 ++++++++
 vcl/unx/gtk3/gtk3gtkinst.cxx       |   20 +++++++++++++++++++-
 3 files changed, 29 insertions(+), 3 deletions(-)

New commits:
commit 653e58f9eb3d4ee61d8103993cdff2660c9127a5
Author: Caolán McNamara <caol...@redhat.com>
Date:   Wed Apr 25 12:33:55 2018 +0100

    do something less pathetic for over-wide comboboxes
    
    Change-Id: I1632bc84e2ef49b8ce3d3ab6d08ddc76879a2ab5
    Reviewed-on: https://gerrit.libreoffice.org/53484
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 0c91ef79a646..e205e46c61d9 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -3740,7 +3740,7 @@ private:
         if (m_bPopupActive != bIsShown)
         {
             m_bPopupActive = bIsShown;
-            //restore focus to the entry view the popup is gone, which
+            //restore focus to the entry view when the popup is gone, which
             //is what the vcl case does, to ease the transition a little
             gtk_widget_grab_focus(m_pWidget);
         }
@@ -3830,6 +3830,13 @@ public:
         , m_nChangedSignalId(g_signal_connect(m_pComboBoxText, "changed", 
G_CALLBACK(signalChanged), this))
         , m_nPopupShownSignalId(g_signal_connect(m_pComboBoxText, 
"notify::popup-shown", G_CALLBACK(signalPopupShown), this))
     {
+        // this bit isn't great, I really want to be able to ellipse the text 
in the comboboxtext itself and let
+        // the popup menu render them in full, in the interim allow the text 
to wrap in both cases
+        GList* cells = 
gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(m_pComboBoxText));
+        GtkCellRenderer* cell = static_cast<GtkCellRenderer*>(cells->data);
+        g_object_set(G_OBJECT(cell), "wrap-width", 3, nullptr);
+        g_list_free(cells);
+
         if (GtkEntry* pEntry = get_entry())
         {
             setup_completion(pEntry);
@@ -3858,6 +3865,17 @@ public:
         enable_notify_events();
     }
 
+    virtual void set_size_request(int nWidth, int nHeight) override
+    {
+        // tweak the cell render to get a narrower size to stick
+        GList* cells = 
gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(m_pComboBoxText));
+        GtkCellRenderer* cell = static_cast<GtkCellRenderer*>(cells->data);
+        gtk_cell_renderer_set_fixed_size(cell, nWidth, -1);
+        g_list_free(cells);
+
+        gtk_widget_set_size_request(m_pWidget, nWidth, nHeight);
+    }
+
     virtual void set_active(int pos) override
     {
         disable_notify_events();
commit 75d1929dc1e40e1570035066db428e6166ff32db
Author: Caolán McNamara <caol...@redhat.com>
Date:   Wed Apr 25 14:15:50 2018 +0100

    set current frame as default SfxRequest dialog parent
    
    Change-Id: Ib7986ef786af3b5dd7fcad355976ee33705d3112
    Reviewed-on: https://gerrit.libreoffice.org/53483
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/include/sfx2/request.hxx b/include/sfx2/request.hxx
index 60b5dfe4f8e7..27895abc6fe7 100644
--- a/include/sfx2/request.hxx
+++ b/include/sfx2/request.hxx
@@ -72,9 +72,9 @@ public:
     sal_uInt16              GetSlot() const { return nSlot; }
     void                SetSlot(sal_uInt16 nNewSlot) { nSlot = nNewSlot; }
 
-    sal_uInt16              GetModifier() const;
+    sal_uInt16          GetModifier() const;
     void                SetModifier( sal_uInt16 nModi );
-    SAL_DLLPRIVATE void SetInternalArgs_Impl( const SfxAllItemSet& rArgs );
+    void                SetInternalArgs_Impl( const SfxAllItemSet& rArgs );
     SAL_DLLPRIVATE const SfxItemSet* GetInternalArgs_Impl() const;
     const SfxItemSet*   GetArgs() const { return pArgs.get(); }
     void                SetArgs( const SfxAllItemSet& rArgs );
diff --git a/sw/source/uibase/uno/unomodule.cxx 
b/sw/source/uibase/uno/unomodule.cxx
index dce4a610fcaf..b7e99dcf12b4 100644
--- a/sw/source/uibase/uno/unomodule.cxx
+++ b/sw/source/uibase/uno/unomodule.cxx
@@ -68,6 +68,14 @@ void SAL_CALL SwUnoModule::dispatchWithNotification( const 
util::URL& aURL, cons
     else
     {
         SfxRequest aReq( pSlot, aArgs, SfxCallMode::SYNCHRON, 
SW_MOD()->GetPool() );
+        SfxAllItemSet aInternalSet( SfxGetpApp()->GetPool() );
+
+        css::uno::Reference<css::frame::XDesktop2> xDesktop = 
css::frame::Desktop::create(::comphelper::getProcessComponentContext());
+        css::uno::Reference<css::frame::XFrame> xCurrentFrame = 
xDesktop->getCurrentFrame();
+        if (xCurrentFrame.is()) // an empty set is no problem ... but an empty 
frame reference can be a problem !
+            aInternalSet.Put(SfxUnoFrameItem(SID_FILLFRAME, xCurrentFrame));
+
+        aReq.SetInternalArgs_Impl(aInternalSet);
         const SfxPoolItem* pResult = SW_MOD()->ExecuteSlot( aReq );
         if ( pResult )
             aState = frame::DispatchResultState::SUCCESS;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to