summaryrefslogtreecommitdiff
path: root/slideshow/source
diff options
context:
space:
mode:
Diffstat (limited to 'slideshow/source')
-rw-r--r--slideshow/source/engine/animationnodes/generateevent.cxx21
1 files changed, 13 insertions, 8 deletions
diff --git a/slideshow/source/engine/animationnodes/generateevent.cxx b/slideshow/source/engine/animationnodes/generateevent.cxx
index 475b1c18edc9..b228f041a93e 100644
--- a/slideshow/source/engine/animationnodes/generateevent.cxx
+++ b/slideshow/source/engine/animationnodes/generateevent.cxx
@@ -79,6 +79,11 @@ EventSharedPtr generateEvent(
// TODO(F1): Respect aEvent.Repeat value
+ auto event2shape = [&] () {
+ if (aEvent.Source >>= xShape)
+ pShape = rContext.mpSubsettableShapeManager->lookupShape(xShape);
+ };
+
switch (aEvent.Trigger) {
default:
ENSURE_OR_THROW( false, "unexpected event trigger!" );
@@ -121,8 +126,8 @@ EventSharedPtr generateEvent(
break;
case animations::EventTrigger::ON_CLICK:
// try to extract XShape event source
- if ((aEvent.Source >>= xShape) &&
- (pShape = rContext.mpSubsettableShapeManager->lookupShape(xShape)).get())
+ event2shape();
+ if (pShape.get())
{
pEvent = makeDelay( rFunctor,
nDelay2 + nAdditionalDelay,
@@ -137,8 +142,8 @@ EventSharedPtr generateEvent(
break;
case animations::EventTrigger::ON_DBL_CLICK:
// try to extract XShape event source
- if ((aEvent.Source >>= xShape) &&
- (pShape = rContext.mpSubsettableShapeManager->lookupShape(xShape)).get())
+ event2shape();
+ if (pShape.get())
{
pEvent = makeDelay( rFunctor,
nDelay2 + nAdditionalDelay,
@@ -153,8 +158,8 @@ EventSharedPtr generateEvent(
break;
case animations::EventTrigger::ON_MOUSE_ENTER:
// try to extract XShape event source
- if ((aEvent.Source >>= xShape) &&
- (pShape = rContext.mpSubsettableShapeManager->lookupShape(xShape)).get())
+ event2shape();
+ if (pShape.get())
{
pEvent = makeDelay( rFunctor,
nDelay2 + nAdditionalDelay,
@@ -169,8 +174,8 @@ EventSharedPtr generateEvent(
break;
case animations::EventTrigger::ON_MOUSE_LEAVE:
// try to extract XShape event source
- if ((aEvent.Source >>= xShape) &&
- (pShape = rContext.mpSubsettableShapeManager->lookupShape(xShape)).get())
+ event2shape();
+ if (pShape.get())
{
pEvent = makeDelay( rFunctor,
nDelay2 + nAdditionalDelay,