Resolves: tdf#122656 keypress handled twice

Change-Id: I8a9ec82d46a3df04554c139264755c8f28f5e897
Reviewed-on: https://gerrit.libreoffice.org/66336
Tested-by: Jenkins
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
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 4e57665..ad6101b 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -2615,7 +2615,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 97626e1..c62230b 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -224,6 +224,9 @@ private:
        }
    }

protected:
    virtual void HandleEventListener(VclWindowEvent& rEvent);

public:
    SalInstanceWidget(vcl::Window* pWidget, bool bTakeOwnership)
        : m_xWidget(pWidget)
@@ -532,7 +535,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);
@@ -552,6 +555,11 @@ IMPL_LINK(SalInstanceWidget, EventListener, VclWindowEvent&, rEvent, void)
    }
}

IMPL_LINK(SalInstanceWidget, EventListener, VclWindowEvent&, rEvent, void)
{
    HandleEventListener(rEvent);
}

namespace
{
    Image createImage(const OUString& rImage)
@@ -2804,6 +2812,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)