[Libreoffice-commits] core.git: cui/source

Miklos Vajna (via logerrit) logerrit at kemper.freedesktop.org
Mon May 27 14:25:12 UTC 2019


 cui/source/dialogs/hltpbase.cxx |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 834d796e03d257db486e6a6da8b1ccbee7ba24ee
Author:     Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon May 27 15:27:06 2019 +0200
Commit:     Miklos Vajna <vmiklos at collabora.com>
CommitDate: Mon May 27 16:24:02 2019 +0200

    cui: fix Impress hyperlink insert when the form listbox is hidden
    
    In preparation of forward-porting the distro/collabora/cp-6.0-only
    commit 418adc09f503a5714f58f56619161fed6d668088 (lo: disable under-used
    hyperlink fields that are buggy online., 2019-05-22), which relaxes the
    invariant that mpLbForm never returns LISTBOX_ENTRY_NOTFOUND.
    
    A signed integer overflow is a problem in itself, but in practice the
    SID_HYPERLINK_SETLINK handler in sd::DrawViewShell::FuTemporary() didn't
    insert a field, since the insert mode was a large negative value instead
    of HLINK_FIELD.
    
    Change-Id: I238d9f662a74f320d05ea6a6cc97319d2d5b3d5a
    Reviewed-on: https://gerrit.libreoffice.org/73034
    Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
    Tested-by: Jenkins

diff --git a/cui/source/dialogs/hltpbase.cxx b/cui/source/dialogs/hltpbase.cxx
index 235f47fd3549..4d92ba429528 100644
--- a/cui/source/dialogs/hltpbase.cxx
+++ b/cui/source/dialogs/hltpbase.cxx
@@ -426,7 +426,13 @@ void SvxHyperlinkTabPageBase::GetDataFromCommonFields( OUString& aStrName,
     aStrIntName = mpEdText->GetText();
     aStrName    = mpEdIndication->GetText();
     aStrFrame   = mpCbbFrame->GetText();
-    eMode       = static_cast<SvxLinkInsertMode>(mpLbForm->GetSelectedEntryPos()+1);
+
+    sal_Int32 nPos = mpLbForm->GetSelectedEntryPos();
+    if (nPos == LISTBOX_ENTRY_NOTFOUND)
+        // This happens when FillStandardDlgFields() hides mpLbForm.
+        nPos = 0;
+    eMode = static_cast<SvxLinkInsertMode>(nPos + 1);
+
     // Ask dialog whether the current doc is a HTML-doc
     if (static_cast<SvxHpLinkDlg*>(mpDialog.get())->IsHTMLDoc())
         eMode = static_cast<SvxLinkInsertMode>( sal_uInt16(eMode) | HLINK_HTMLMODE );


More information about the Libreoffice-commits mailing list