Resolves: tdf#122656 keypress handled twice
Change-Id: I8a9ec82d46a3df04554c139264755c8f28f5e897
Reviewed-on: https://gerrit.libreoffice.org/66335
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx
index a422048..5b7ca05 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -2545,7 +2545,7 @@ bool SvtValueSet::KeyInput( const KeyEvent& rKeyEvent )
}
if ( nItemPos == VALUESET_ITEM_NOTFOUND )
return false;
return true;
if ( nItemPos!=VALUESET_ITEM_NONEITEM && nItemPos<nLastItem )
{
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 34c86b8..19af487 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -229,6 +229,9 @@ private:
}
}
protected:
virtual void HandleEventListener(VclWindowEvent& rEvent);
public:
SalInstanceWidget(vcl::Window* pWidget, bool bTakeOwnership)
: m_xWidget(pWidget)
@@ -537,7 +540,7 @@ public:
}
};
IMPL_LINK(SalInstanceWidget, EventListener, VclWindowEvent&, rEvent, void)
void SalInstanceWidget::HandleEventListener(VclWindowEvent& rEvent)
{
if (rEvent.GetId() == VclEventId::WindowGetFocus || rEvent.GetId() == VclEventId::WindowActivate)
m_aFocusInHdl.Call(*this);
@@ -557,6 +560,11 @@ IMPL_LINK(SalInstanceWidget, EventListener, VclWindowEvent&, rEvent, void)
}
}
IMPL_LINK(SalInstanceWidget, EventListener, VclWindowEvent&, rEvent, void)
{
HandleEventListener(rEvent);
}
namespace
{
Image createImage(const OUString& rImage)
@@ -2884,6 +2892,20 @@ private:
DECL_LINK(PopupMenuHdl, const Point&, bool);
DECL_LINK(QueryTooltipHdl, tools::Rectangle&, OUString);
// SalInstanceWidget has a generic listener for all these
// events, ignore the ones we have specializations for
// in VclDrawingArea
virtual void HandleEventListener(VclWindowEvent& rEvent) override
{
if (rEvent.GetId() == VclEventId::WindowResize ||
rEvent.GetId() == VclEventId::WindowKeyInput ||
rEvent.GetId() == VclEventId::WindowKeyUp)
{
return;
}
SalInstanceWidget::HandleEventListener(rEvent);
}
public:
SalInstanceDrawingArea(VclDrawingArea* pDrawingArea, const a11yref& rAlly,
FactoryFunction pUITestFactoryFunction, void* pUserData, bool bTakeOwnership)