sw/source/core/crsr/DropDownFormFieldButton.cxx |    5 +++--
 sw/source/ui/fldui/DropDownFormFieldDialog.cxx  |    3 ++-
 sw/source/uibase/docvw/edtwin.cxx               |   15 +++++++++++++++
 3 files changed, 20 insertions(+), 3 deletions(-)

New commits:
commit 43d4bb5b0906132695341c40d2bb4295ad3248ef
Author:     Tamás Zolnai <tamas.zol...@collabora.com>
AuthorDate: Sun Mar 10 09:45:56 2019 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Mar 18 10:17:01 2019 +0100

    MSForms: Fix handling of drop-down form field after DOC import
    
    In the properties dialog, code expected that the ODF_FORMDROPDOWN_RESULT
    is not set in case of an empty list. This caused a crash.
    The field popup window code expected that the list is not specified
    when it is empty, but DOC import code sets ODF_FORMDROPDOWN_LISTENTRY
    even if the list is empty.
    
    Change-Id: If4c86fc5a08cdc578150afaa42ad7e86bdba9150
    Reviewed-on: https://gerrit.libreoffice.org/68963
    Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com>
    Tested-by: Tamás Zolnai <tamas.zol...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/69197
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>
    Tested-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/sw/source/core/crsr/DropDownFormFieldButton.cxx 
b/sw/source/core/crsr/DropDownFormFieldButton.cxx
index 5eb46e080bc0..17bdbc5ab07c 100644
--- a/sw/source/core/crsr/DropDownFormFieldButton.cxx
+++ b/sw/source/core/crsr/DropDownFormFieldButton.cxx
@@ -53,14 +53,15 @@ SwFieldDialog::SwFieldDialog(SwEditWin* parent, 
sw::mark::IFieldmark* fieldBM, l
         OUString sListKey = ODF_FORMDROPDOWN_LISTENTRY;
         sw::mark::IFieldmark::parameter_map_t::const_iterator pListEntries
             = pParameters->find(sListKey);
+        css::uno::Sequence<OUString> vListEntries;
         if (pListEntries != pParameters->end())
         {
-            css::uno::Sequence<OUString> vListEntries;
             pListEntries->second >>= vListEntries;
             for (OUString const& i : vListEntries)
                 aListBox->InsertEntry(i);
         }
-        else
+
+        if (vListEntries.getLength() == 0)
         {
             aListBox->InsertEntry(SwResId(STR_DROP_DOWN_EMPTY_LIST));
         }
diff --git a/sw/source/ui/fldui/DropDownFormFieldDialog.cxx 
b/sw/source/ui/fldui/DropDownFormFieldDialog.cxx
index 5ad97b85978c..079aeaad4739 100644
--- a/sw/source/ui/fldui/DropDownFormFieldDialog.cxx
+++ b/sw/source/ui/fldui/DropDownFormFieldDialog.cxx
@@ -113,7 +113,8 @@ void DropDownFormFieldDialog::InitControls()
             {
                 sal_Int32 nSelection = -1;
                 pResult->second >>= nSelection;
-                m_xListItemsTreeView->SelectEntry(vListEntries[nSelection]);
+                if (vListEntries.getLength() > nSelection)
+                    
m_xListItemsTreeView->SelectEntry(vListEntries[nSelection]);
             }
         }
     }
commit 5ba23798017b57e2d4deb096a4e0f945185700b6
Author:     Tamás Zolnai <tamas.zol...@collabora.com>
AuthorDate: Sat Mar 2 10:22:54 2019 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Mar 18 10:16:47 2019 +0100

    MSForms: Open Control Properties dialog by double click for drop-down field
    
    Change-Id: I66c0a7bad63d929ae346afe9d328d87dfa2c24ae
    Reviewed-on: https://gerrit.libreoffice.org/68962
    Tested-by: Jenkins
    Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/69196
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>
    Tested-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/sw/source/uibase/docvw/edtwin.cxx 
b/sw/source/uibase/docvw/edtwin.cxx
index 3a93172afe41..e45c19fabf00 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -3402,6 +3402,21 @@ void SwEditWin::MouseButtonDown(const MouseEvent& _rMEvt)
                                 // table.
                                 rSh.SelTableBox();
                         }
+
+                        SwContentAtPos aContentAtPos(IsAttrAtPos::FormControl);
+                        if( rSh.GetContentAtPos( aDocPos, aContentAtPos ) &&
+                                aContentAtPos.aFnd.pFieldmark != nullptr)
+                        {
+                            IFieldmark *pFieldBM = const_cast< IFieldmark* > ( 
aContentAtPos.aFnd.pFieldmark );
+                            if ( pFieldBM->GetFieldname( ) == ODF_FORMDROPDOWN 
)
+                            {
+                                RstMBDownFlags();
+                                
rSh.getIDocumentMarkAccess()->ClearFieldActivation();
+                                
GetView().GetViewFrame()->GetBindings().Execute(SID_FM_CTL_PROPERTIES);
+                                return;
+                            }
+                        }
+
                         g_bHoldSelection = true;
                         return;
                     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to