// (c) 1995-2014 by Artsoft Entertainment
// Holger Schemel
// info@artsoft.org
-// http://www.artsoft.org/
+// https://www.artsoft.org/
// ----------------------------------------------------------------------------
// gadgets.c
// ============================================================================
}
if (next_free_gadget_id <= 0) // cannot get new gadget id
- Error(ERR_EXIT, "too much gadgets -- this should not happen");
+ Fail("too much gadgets -- this should not happen");
return id;
}
int alpha_max = SDL_ALPHA_OPAQUE;
int alpha_step = ALPHA_FADING_STEPSIZE(alpha_max);
- if (gi->mapped)
+ // only show mapped overlay touch buttons if touch screen is really used
+ if (gi->mapped && runtime.uses_touch_device)
{
if (alpha < alpha_max)
alpha = MIN(alpha + alpha_step, alpha_max);
while (tag != GDI_END)
{
- switch(tag)
+ switch (tag)
{
case GDI_IMAGE_ID:
gi->image_id = va_arg(ap, int);
break;
default:
- Error(ERR_EXIT, "HandleGadgetTags(): unknown tag %d", tag);
+ Fail("HandleGadgetTags(): unknown tag %d", tag);
}
tag = va_arg(ap, int); // read next tag
gi->height = 2 * border_ysize + font_height;
if (gi->selectbox.options == NULL)
- Error(ERR_EXIT, "selectbox gadget incomplete (missing options array)");
+ Fail("selectbox gadget incomplete (missing options array)");
gi->selectbox.num_values = 0;
while (gi->selectbox.options[gi->selectbox.num_values].text != NULL)
if (gi->width == 0 || gi->height == 0 ||
gs->items_max == 0 || gs->items_visible == 0)
- Error(ERR_EXIT, "scrollbar gadget incomplete (missing tags)");
+ Fail("scrollbar gadget incomplete (missing tags)");
// calculate internal scrollbar values
gs->size_min = (gi->type == GD_TYPE_SCROLLBAR_VERTICAL ?
if (gi == NULL || gi->deactivated || gi->mapped)
return;
+ // do not map overlay touch buttons if touch screen is not used
+ if (gi->overlay_touch_button && !runtime.uses_touch_device)
+ return;
+
gi->mapped = TRUE;
if (redraw)