[GEM-cvs] Gem/src/Base GemMan.h,1.23,1.24 GemMan.cpp,1.51,1.52
Brought to you by:
zmoelnig
From: IOhannes m z. <zmo...@us...> - 2006-05-04 18:52:38
|
Update of /cvsroot/pd-gem/Gem/src/Base In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13931 Modified Files: GemMan.h GemMan.cpp Log Message: added a destroyWindowSoon() function that issues a delayed windows destruction (destruction is done at the beginning of the next render cycle which is rescheduled to be within 0.0 ms); this is useful when the destruction is initiated via window-events which would otherwise crash pd Index: GemMan.cpp =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemMan.cpp,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** GemMan.cpp 28 Apr 2006 13:32:33 -0000 1.51 --- GemMan.cpp 4 May 2006 18:52:24 -0000 1.52 *************** *** 210,214 **** triggerKeyboardEvent(keystring, kb->keycode, 1); } - //triggerKeyboardEvent(XKeysymToString(XKeycodeToKeysym(win.dpy, kb->keycode, 0)), kb->keycode, 1); break; case KeyRelease: --- 210,213 ---- *************** *** 224,228 **** triggerKeyboardEvent(keystring, kb->keycode, 0); } - // triggerKeyboardEvent(XKeysymToString(XKeycodeToKeysym(win.dpy, kb->keycode, 0)), kb->keycode, 0); break; case ResizeRequest: --- 223,226 ---- *************** *** 236,240 **** if (XCheckTypedEvent(win.dpy, ClientMessage, &event)) { ! GemMan::pleaseDestroy=true; } --- 234,238 ---- if (XCheckTypedEvent(win.dpy, ClientMessage, &event)) { ! GemMan::destroyWindowSoon(); } *************** *** 1241,1244 **** --- 1239,1248 ---- // ///////////////////////////////////////////////////////// + void GemMan :: destroyWindowSoon() + { + GemMan::pleaseDestroy=true; + /* jump to the render() to destroy the window asap */ + clock_delay(s_clock, 0.0); + } void GemMan :: destroyWindow() { Index: GemMan.h =================================================================== RCS file: /cvsroot/pd-gem/Gem/src/Base/GemMan.h,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** GemMan.h 26 Apr 2006 07:39:40 -0000 1.23 --- GemMan.h 4 May 2006 18:52:24 -0000 1.24 *************** *** 107,111 **** // Destroy the window static void destroyWindow(); ! ////////// // Swap the buffers. --- 107,113 ---- // Destroy the window static void destroyWindow(); ! // Destroy the window after a minimal delay ! static void destroyWindowSoon(); ! ////////// // Swap the buffers. |