aboutsummaryrefslogtreecommitdiffstats
path: root/src/gwin
diff options
context:
space:
mode:
authorinmarket <inmarket@ugfx.org>2017-04-01 17:36:52 +1000
committerinmarket <inmarket@ugfx.org>2017-04-01 17:36:52 +1000
commitee33f13f7e14e66e5ca2bff2676ab2876a2f69e5 (patch)
treed167d501c8161b509cce0dda7f24332a97fa82e1 /src/gwin
parentd8526e672a4f488e140787c042351604be9aaa77 (diff)
downloaduGFX-ee33f13f7e14e66e5ca2bff2676ab2876a2f69e5.tar.gz
uGFX-ee33f13f7e14e66e5ca2bff2676ab2876a2f69e5.tar.bz2
uGFX-ee33f13f7e14e66e5ca2bff2676ab2876a2f69e5.zip
Another gwin concurrency fix
Diffstat (limited to 'src/gwin')
-rw-r--r--src/gwin/gwin_wm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gwin/gwin_wm.c b/src/gwin/gwin_wm.c
index 0c4fd1bf..7f251a70 100644
--- a/src/gwin/gwin_wm.c
+++ b/src/gwin/gwin_wm.c
@@ -986,6 +986,8 @@ static void WM_Raise(GHandle gh) {
// Take it off the list and then put it back on top
// The order of the list then reflects the z-order.
+ gfxSemWait(&gwinsem, TIME_INFINITE);
+
gfxQueueASyncRemove(&_GWINList, &gh->wmq);
gfxQueueASyncPut(&_GWINList, &gh->wmq);
@@ -1019,7 +1021,9 @@ static void WM_Raise(GHandle gh) {
}
}
#endif
-
+
+ gfxSemSignal(&gwinsem);
+
// Redraw the window
_gwinUpdate(gh);
}