Bugfix - own collection.

Very occasionally Timer Events could still get handled, after stopping
a timer - especially with the timer event still in the queue.

This patch disables such events. Introduced a EVENT_NONE to make sure
it gets ignored everywhere.
This commit is contained in:
Ton Roosendaal 2012-12-13 16:21:08 +00:00
parent 02689df6c0
commit 28cd603140
2 changed files with 4 additions and 1 deletions

@ -1129,7 +1129,8 @@ void WM_event_remove_timer(wmWindowManager *wm, wmWindow *UNUSED(win), wmTimer *
wmEvent *event; wmEvent *event;
for (event = win->queue.first; event; event = event->next) { for (event = win->queue.first; event; event = event->next) {
if (event->customdata == wt) { if (event->customdata == wt) {
//event->customdata = NULL; event->customdata = NULL;
event->type = EVENT_NONE; /* timer users customdata, dont want NULL == NULL */
} }
} }
} }

@ -53,6 +53,8 @@
#define MOUSEX 4 #define MOUSEX 4
#define MOUSEY 5 #define MOUSEY 5
/* non-event, for example disabled timer */
#define EVENT_NONE 0
/* MOUSE : 0x00x */ /* MOUSE : 0x00x */
#define LEFTMOUSE 1 #define LEFTMOUSE 1
#define MIDDLEMOUSE 2 #define MIDDLEMOUSE 2