tdf#123793 Follow up fix for kb nav of special chars popup
Static variable use to determine if initializing can focus properties of
recent and favorite controls is needed only allows init to ever happen
once. This patch changes use to a member variable. This corrects the
problem of kb navigation only works the the first time the popup is shown
and tab is used to navigate.
Change-Id: I2bbb66071b582c9a4282c79d801b4a36c375ed2d
Reviewed-on: https://gerrit.libreoffice.org/72264
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
diff --git a/include/sfx2/charmapcontrol.hxx b/include/sfx2/charmapcontrol.hxx
index 1c15ae7..3562a5c 100644
--- a/include/sfx2/charmapcontrol.hxx
+++ b/include/sfx2/charmapcontrol.hxx
@@ -49,6 +49,7 @@ private:
std::deque<OUString> maFavCharList;
std::deque<OUString> maFavCharFontList;
VclPtr<Button> maDlgBtn;
bool mbNeedsInit = true;
DECL_LINK(CharClickHdl, SvxCharViewControl*, void);
DECL_STATIC_LINK(SfxCharmapCtrl, FocusHdl, Control&, void);
diff --git a/sfx2/source/control/charmapcontrol.cxx b/sfx2/source/control/charmapcontrol.cxx
index 7f757a7e..6534a9b 100644
--- a/sfx2/source/control/charmapcontrol.cxx
+++ b/sfx2/source/control/charmapcontrol.cxx
@@ -184,7 +184,6 @@ void SfxCharmapCtrl::updateRecentCharControl()
bool SfxCharmapCtrl::EventNotify( NotifyEvent& rNEvt )
{
static bool bNeedsInit = true;
if ( maDlgBtn->HasFocus() && rNEvt.GetType() == MouseNotifyEvent::KEYINPUT )
{
const vcl::KeyCode& rKey = rNEvt.GetKeyEvent()->GetKeyCode();
@@ -193,14 +192,14 @@ bool SfxCharmapCtrl::EventNotify( NotifyEvent& rNEvt )
{
return true;
}
if ( bNeedsInit && nCode == KEY_TAB )
if ( mbNeedsInit && nCode == KEY_TAB )
{
for(int i = 0; i < 16; i++)
{
m_pRecentCharView[i]->set_property( "can-focus", "true" );
m_pFavCharView[i]->set_property( "can-focus", "true" );
}
bNeedsInit = false;
mbNeedsInit = false;
}
}
return SfxPopupWindow::EventNotify( rNEvt );