cui/source/tabpages/page.cxx |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

New commits:
commit 122839ea51b3e8ec54d97d43bdbf616db00ae9cd
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Wed Mar 20 17:21:55 2019 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Mar 20 22:17:01 2019 +0100

    tdf#124226 do fill-on-demand hack only on first visit
    
    disconnect focus handler after the fill
    
    Change-Id: I77bffe4fa4c516452c36ddb2d816cd5844000c1b
    Reviewed-on: https://gerrit.libreoffice.org/69479
    Tested-by: Xisco Faulí <xiscofa...@libreoffice.org>
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index 2a51bc302d30..94f15b630672 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -308,7 +308,6 @@ void SvxPageDescPage::Init_Impl()
     // adjust the handler
     m_xLayoutBox->connect_changed(LINK(this, SvxPageDescPage, LayoutHdl_Impl));
 
-    m_xPaperTrayBox->connect_focus_in(LINK(this, SvxPageDescPage, 
PaperBinHdl_Impl));
     m_xPaperSizeBox->connect_changed(LINK(this, SvxPageDescPage, 
PaperSizeSelect_Impl));
     m_xPaperWidthEdit->connect_value_changed( LINK(this, SvxPageDescPage, 
PaperSizeModify_Impl));
     m_xPaperHeightEdit->connect_value_changed(LINK(this, SvxPageDescPage, 
PaperSizeModify_Impl));
@@ -410,6 +409,10 @@ void SvxPageDescPage::Reset( const SfxItemSet* rSet )
 
     m_xPaperTrayBox->append(OUString::number(nPaperBin), aBinName);
     m_xPaperTrayBox->set_active_text(aBinName);
+    // reset focus handler to default first so know none already connected
+    m_xPaperTrayBox->connect_focus_in(Link<weld::Widget&, void>());
+    // update the list when widget gets focus
+    m_xPaperTrayBox->connect_focus_in(LINK(this, SvxPageDescPage, 
PaperBinHdl_Impl));
 
     Size aPaperSize = SvxPaperInfo::GetPaperSize( mpDefPrinter );
     pItem = GetItem( *rSet, SID_ATTR_PAGE_SIZE );
@@ -804,9 +807,8 @@ IMPL_LINK_NOARG(SvxPageDescPage, LayoutHdl_Impl, 
weld::ComboBox&, void)
 
 IMPL_LINK_NOARG(SvxPageDescPage, PaperBinHdl_Impl, weld::Widget&, void)
 {
-    if (m_xPaperTrayBox->get_count() > 1)
-        // already filled
-        return;
+    // tdf#124226 disconnect so not called again, unless Reset occurs
+    m_xPaperTrayBox->connect_focus_in(Link<weld::Widget&, void>());
 
     OUString aOldName = m_xPaperTrayBox->get_active_text();
     m_xPaperTrayBox->freeze();
@@ -826,6 +828,7 @@ IMPL_LINK_NOARG(SvxPageDescPage, PaperBinHdl_Impl, 
weld::Widget&, void)
     }
     m_xPaperTrayBox->set_active_text(aOldName);
     m_xPaperTrayBox->thaw();
+
     // tdf#123650 explicitly grab-focus after the modification otherwise gtk 
loses track
     // of there the focus should be
     m_xPaperTrayBox->grab_focus();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to