projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed handling deactivated gadget state
[rocksndiamonds.git]
/
src
/
libgame
/
gadgets.c
diff --git
a/src/libgame/gadgets.c
b/src/libgame/gadgets.c
index c961021a3e2a56e855ed93d9096f270a5823ba63..a8d3e55c35460abe482e076e4e165a2a5915b7a4 100644
(file)
--- a/
src/libgame/gadgets.c
+++ b/
src/libgame/gadgets.c
@@
-879,7
+879,7
@@
static void HandleGadgetTags(struct GadgetInfo *gi, int first_tag, va_list ap)
{
int tag = first_tag;
{
int tag = first_tag;
- if (gi == NULL
|| gi->deactivated
)
+ if (gi == NULL)
return;
while (tag != GDI_END)
return;
while (tag != GDI_END)
@@
-1711,7
+1711,7
@@
boolean HandleGadgets(int mx, int my, int button)
struct GadgetInfo *gi = last_gi;
boolean gadget_changed = ((gi->event_mask & GD_EVENT_TEXT_LEAVING) != 0);
struct GadgetInfo *gi = last_gi;
boolean gadget_changed = ((gi->event_mask & GD_EVENT_TEXT_LEAVING) != 0);
- // check if text gadget has changed its value
+ // check if text
input
gadget has changed its value
if (gi->type & GD_TYPE_TEXT_INPUT)
{
CheckRangeOfNumericInputGadget(gi);
if (gi->type & GD_TYPE_TEXT_INPUT)
{
CheckRangeOfNumericInputGadget(gi);
@@
-1722,6
+1722,15
@@
boolean HandleGadgets(int mx, int my, int button)
gadget_changed = FALSE;
}
gadget_changed = FALSE;
}
+ // check if text area gadget has changed its value
+ if (gi->type & GD_TYPE_TEXT_AREA)
+ {
+ if (!strEqual(gi->textarea.last_value, gi->textarea.value))
+ strcpy(gi->textarea.last_value, gi->textarea.value);
+ else
+ gadget_changed = FALSE;
+ }
+
// selectbox does not change its value when closed by clicking outside
if (gi->type & GD_TYPE_SELECTBOX)
gadget_changed = FALSE;
// selectbox does not change its value when closed by clicking outside
if (gi->type & GD_TYPE_SELECTBOX)
gadget_changed = FALSE;
@@
-1925,7
+1934,7
@@
boolean HandleGadgets(int mx, int my, int button)
if (gadget_pressed) // gadget pressed the first time
{
// initialize delay counter
if (gadget_pressed) // gadget pressed the first time
{
// initialize delay counter
-
DelayReached(&pressed_delay, 0
);
+
ResetDelayCounter(&pressed_delay
);
// start gadget delay with longer delay after first click on gadget
pressed_delay_value = GADGET_FRAME_DELAY_FIRST;
// start gadget delay with longer delay after first click on gadget
pressed_delay_value = GADGET_FRAME_DELAY_FIRST;