Inhibited uiEntryOnChanged() with uiEntrySetText() on Windows.
This commit is contained in:
parent
b08e8f36d4
commit
7bdc50c25a
|
@ -6,6 +6,7 @@ struct entry {
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
void (*onChanged)(uiEntry *, void *);
|
void (*onChanged)(uiEntry *, void *);
|
||||||
void *onChangedData;
|
void *onChangedData;
|
||||||
|
BOOL inhibitChanged;
|
||||||
};
|
};
|
||||||
|
|
||||||
static BOOL onWM_COMMAND(uiControl *c, WORD code, LRESULT *lResult)
|
static BOOL onWM_COMMAND(uiControl *c, WORD code, LRESULT *lResult)
|
||||||
|
@ -14,6 +15,8 @@ static BOOL onWM_COMMAND(uiControl *c, WORD code, LRESULT *lResult)
|
||||||
|
|
||||||
if (code != EN_CHANGE)
|
if (code != EN_CHANGE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
if (e->inhibitChanged)
|
||||||
|
return FALSE;
|
||||||
(*(e->onChanged))(uiEntry(e), e->onChangedData);
|
(*(e->onChanged))(uiEntry(e), e->onChangedData);
|
||||||
*lResult = 0;
|
*lResult = 0;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -51,9 +54,14 @@ static char *entryText(uiEntry *e)
|
||||||
return uiWindowsControlText(uiControl(e));
|
return uiWindowsControlText(uiControl(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entrySetText(uiEntry *e, const char *text)
|
static void entrySetText(uiEntry *ee, const char *text)
|
||||||
{
|
{
|
||||||
|
struct entry *e = (struct entry *) ee;
|
||||||
|
|
||||||
|
// doing this raises an EN_CHANGED
|
||||||
|
e->inhibitChanged = TRUE;
|
||||||
uiWindowsControlSetText(uiControl(e), text);
|
uiWindowsControlSetText(uiControl(e), text);
|
||||||
|
e->inhibitChanged = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entryOnChanged(uiEntry *ee, void (*f)(uiEntry *, void *), void *data)
|
static void entryOnChanged(uiEntry *ee, void (*f)(uiEntry *, void *), void *data)
|
||||||
|
|
Loading…
Reference in New Issue