+ /* set summarized change event CE_TOUCHING_ANY_SIDE_OF */
+ for (i=0; i < NUM_CUSTOM_ELEMENTS; i++)
+ {
+ struct ElementInfo *ei = &element_info[EL_CUSTOM_START + i];
+
+ for (j=0; j < ei->num_change_pages; j++)
+ {
+ if (!ei->change_page[j].can_change)
+ continue;
+
+ /* check for change event of touching other element on some side */
+ if (ei->change_page[j].events & (CH_EVENT_BIT(CE_TOUCHING_ANY_SIDE_OF |
+ CE_TOUCHING_LEFT_OF |
+ CE_TOUCHING_RIGHT_OF |
+ CE_TOUCHING_TOP_OF |
+ CE_TOUCHING_BOTTOM_OF)))
+ ei->change_page[j].events |= CH_EVENT_BIT(CE_TOUCHING_SOME_SIDE);
+
+ /* add change event for each side when event exists for any side */
+ if (ei->change_page[j].events & CH_EVENT_BIT(CE_TOUCHING_ANY_SIDE_OF))
+ ei->change_page[j].events |= (CH_EVENT_BIT(CE_TOUCHING_LEFT_OF) |
+ CH_EVENT_BIT(CE_TOUCHING_RIGHT_OF) |
+ CH_EVENT_BIT(CE_TOUCHING_TOP_OF) |
+ CH_EVENT_BIT(CE_TOUCHING_BOTTOM_OF));
+ }
+ }
+