summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
authormarc_culler <marc.culler@gmail.com>2020-07-12 20:50:12 (GMT)
committermarc_culler <marc.culler@gmail.com>2020-07-12 20:50:12 (GMT)
commitaf7543d7737a8987f2a209471913e6bbf4106b78 (patch)
treeea2375cfb455f4f7c7539513cb0873c4d506700c /macosx
parent3ebf832d92b4ac8ff72989f40f59146eb3fc6f67 (diff)
downloadtk-af7543d7737a8987f2a209471913e6bbf4106b78.zip
tk-af7543d7737a8987f2a209471913e6bbf4106b78.tar.gz
tk-af7543d7737a8987f2a209471913e6bbf4106b78.tar.bz2
Process timer events as well as idle events in some of the inner event loops used by Tk
Diffstat (limited to 'macosx')
-rw-r--r--macosx/tkMacOSXEmbed.c4
-rw-r--r--macosx/tkMacOSXEvent.c2
-rw-r--r--macosx/tkMacOSXNotify.c2
-rw-r--r--macosx/tkMacOSXWindowEvent.c4
4 files changed, 4 insertions, 8 deletions
diff --git a/macosx/tkMacOSXEmbed.c b/macosx/tkMacOSXEmbed.c
index 6c4ac1f..e58cdd0 100644
--- a/macosx/tkMacOSXEmbed.c
+++ b/macosx/tkMacOSXEmbed.c
@@ -1049,9 +1049,7 @@ EmbedGeometryRequest(
*/
Tk_GeometryRequest((Tk_Window) winPtr, width, height);
- while (Tcl_DoOneEvent(TCL_IDLE_EVENTS)) {
- /* Empty loop body. */
- }
+ while (Tcl_DoOneEvent(TCL_IDLE_EVENTS|TCL_TIMER_EVENTS|TCL_DONT_WAIT)) {}
if ((winPtr->changes.width != width)
|| (winPtr->changes.height != height)) {
EmbedSendConfigure(containerPtr);
diff --git a/macosx/tkMacOSXEvent.c b/macosx/tkMacOSXEvent.c
index b9c9b6a..c543b8d 100644
--- a/macosx/tkMacOSXEvent.c
+++ b/macosx/tkMacOSXEvent.c
@@ -134,7 +134,7 @@ TkMacOSXFlushWindows(void)
if (Tk_GetNumMainWindows() == 0) {
return;
}
- while (Tcl_DoOneEvent(TCL_IDLE_EVENTS)){}
+ while (Tcl_DoOneEvent(TCL_IDLE_EVENTS|TCL_TIMER_EVENTS|TCL_DONT_WAIT)){}
for (NSWindow *w in [NSApp orderedWindows]) {
[w display];
}
diff --git a/macosx/tkMacOSXNotify.c b/macosx/tkMacOSXNotify.c
index a4a1125..00db7d6 100644
--- a/macosx/tkMacOSXNotify.c
+++ b/macosx/tkMacOSXNotify.c
@@ -530,9 +530,7 @@ TkMacOSXEventsCheckProc(
* Generate Xevents.
*/
- int oldServiceMode = Tcl_SetServiceMode(TCL_SERVICE_ALL);
NSEvent *processedEvent = [NSApp tkProcessEvent:currentEvent];
- Tcl_SetServiceMode(oldServiceMode);
if (processedEvent) {
eventsFound++;
diff --git a/macosx/tkMacOSXWindowEvent.c b/macosx/tkMacOSXWindowEvent.c
index a169a15..2de1550 100644
--- a/macosx/tkMacOSXWindowEvent.c
+++ b/macosx/tkMacOSXWindowEvent.c
@@ -1078,7 +1078,7 @@ ConfigureRestrictProc(
/*
* First process all of the Expose events.
*/
- while (Tcl_ServiceEvent(TCL_IDLE_EVENTS)) {};
+ while (Tcl_ServiceEvent(TCL_IDLE_EVENTS|TCL_TIMER_EVENTS|TCL_DONT_WAIT)) {};
oldProc = Tk_RestrictEvents(ExposeRestrictProc, UINT2PTR(serial), &oldArg);
while (Tcl_ServiceEvent(TCL_WINDOW_EVENTS)) {};
@@ -1097,7 +1097,7 @@ ConfigureRestrictProc(
* that were created when the expose events were processed.
*/
- while (Tcl_DoOneEvent(TCL_IDLE_EVENTS)) {}
+ while (Tcl_DoOneEvent(TCL_IDLE_EVENTS|TCL_TIMER_EVENTS|TCL_DONT_WAIT)) {}
}
}