added setting draw order and style for pointer-style global animations
authorHolger Schemel <info@artsoft.org>
Wed, 24 Apr 2019 17:31:45 +0000 (19:31 +0200)
committerHolger Schemel <info@artsoft.org>
Wed, 24 Apr 2019 17:38:22 +0000 (19:38 +0200)
To ensure pointer-like behavior for pointer-style global animations,
set draw order to high value (if draw order has default value) to be
on top of all other animations and set style to pass-through clicks
(if style has default value) to handle mouse clicks under the pointer
animation.

src/anim.c

index 8256ce7f60f5ec62fda3ebf49adb086a5450cc3b..454389d573d4b2bd757fec251f758f8b4ceaf261 100644 (file)
@@ -536,6 +536,20 @@ static void InitGlobalAnimControls(void)
          anim->base = *part;
          anim->has_base = TRUE;
        }
+
+       // apply special settings for pointer-style animations
+       if (part->control_info.class == get_hash_from_key("pointer"))
+       {
+         // force animation to be on top (must set anim and part control)
+         if (anim->control_info.draw_order == 0)
+           anim->control_info.draw_order = 1000000;
+         if (part->control_info.draw_order == 0)
+           part->control_info.draw_order = 1000000;
+
+         // force animation to pass-through clicks (must set part control)
+         if (part->control_info.style == STYLE_DEFAULT)
+           part->control_info.style |= STYLE_PASSTHROUGH;
+       }
       }
 
       if (anim->num_parts > 0 || anim->has_base)