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

Stephan Bergmann sbergman at redhat.com
Fri Nov 25 16:35:32 UTC 2016


 cui/source/tabpages/tpcolor.cxx  |    6 ++++--
 svx/source/tbxctrls/tbcontrl.cxx |    5 ++++-
 2 files changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 8b718e3774f1ffb69f9aad565216556c798e95f4
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri Nov 25 17:29:09 2016 +0100

    Handle cases where last-used palette disappeared
    
    ...so PaletteManager::SetPalette(LISTBOX_ENTRY_NOTFOUND) would set
    PaletteManager::mnCurrentPalette to 65535, and
    PaletteManager::GetSelectedPalettePath would do out-of-bounds access into
    PaletteManage::m_Palettes.
    
    That the last-used palette (as stored under in the configuration under
    /org.openoffice.Office.Common/UserColors/PaletteName) may become more common
    with pending changes like <https://gerrit.libreoffice.org/#/c/31199/>
    "tdf#104047 Remove dispensable palettes".
    
    Change-Id: I5641bae04f50fea8aa69027a75de08c22394c281

diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index c31f57f..e4545b4 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -220,7 +220,10 @@ void SvxColorTabPage::FillPaletteLB()
     }
     OUString aPaletteName( officecfg::Office::Common::UserColors::PaletteName::get() );
     m_pSelectPalette->SelectEntry(aPaletteName);
-    SelectPaletteLBHdl( *m_pSelectPalette );
+    if (m_pSelectPalette->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND)
+    {
+        SelectPaletteLBHdl( *m_pSelectPalette );
+    }
 }
 
 void SvxColorTabPage::Construct()
@@ -228,7 +231,6 @@ void SvxColorTabPage::Construct()
     if (pColorList.is())
     {
         FillPaletteLB();
-        SelectPaletteLBHdl( *m_pSelectPalette );
         ImpColorCountChanged();
     }
 }
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 4855159..d2252e6 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -1356,7 +1356,10 @@ SvxColorWindow::SvxColorWindow(const OUString&            rCommand,
     }
     OUString aPaletteName( officecfg::Office::Common::UserColors::PaletteName::get() );
     mpPaletteListBox->SelectEntry( aPaletteName );
-    SelectPaletteHdl( *mpPaletteListBox );
+    if (mpPaletteListBox->GetSelectEntryPos() != LISTBOX_ENTRY_NOTFOUND)
+    {
+        SelectPaletteHdl( *mpPaletteListBox );
+    }
 
     mpButtonAutoColor->SetClickHdl( LINK( this, SvxColorWindow, AutoColorClickHdl ) );
     mpButtonNoneColor->SetClickHdl( LINK( this, SvxColorWindow, AutoColorClickHdl ) );


More information about the Libreoffice-commits mailing list