mirror of
https://github.com/clangen/musikcube.git
synced 2025-03-14 13:21:13 +00:00
Added Bill Gray's improved message pump patch.
This commit is contained in:
parent
fb12405015
commit
e49506fe3c
34
src/3rdparty/win32_src/pdcurses/pdcutil.c
vendored
34
src/3rdparty/win32_src/pdcurses/pdcutil.c
vendored
@ -1,7 +1,6 @@
|
||||
/* Public Domain Curses */
|
||||
|
||||
#include "pdcwin.h"
|
||||
#include "curses.h"
|
||||
|
||||
void PDC_beep(void)
|
||||
{
|
||||
@ -11,29 +10,34 @@ void PDC_beep(void)
|
||||
MessageBeep(0XFFFFFFFF);
|
||||
}
|
||||
|
||||
|
||||
void PDC_napms(int ms) /* 'ms' = milli, _not_ microseconds! */
|
||||
{
|
||||
/* RR: keep GUI window responsive while PDCurses sleeps */
|
||||
MSG msg;
|
||||
DWORD start, end, delta;
|
||||
DWORD curr_ms = GetTickCount( );
|
||||
const DWORD milliseconds_sleep_limit = ms + curr_ms;
|
||||
const DWORD max_sleep_ms = 50; /* check messages 20 times a second */
|
||||
extern bool PDC_bDone;
|
||||
|
||||
start = GetTickCount();
|
||||
|
||||
//PDC_LOG(("PDC_napms() - called: ms=%d\n", ms));
|
||||
PDC_LOG(("PDC_napms() - called: ms=%d\n", ms));
|
||||
|
||||
/* Pump all pending messages from WIN32 to the window handler */
|
||||
while( !PDC_bDone && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
|
||||
while( !PDC_bDone && curr_ms < milliseconds_sleep_limit )
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
DWORD sleep_millisecs;
|
||||
|
||||
end = GetTickCount();
|
||||
delta = end - start;
|
||||
delta = ms > delta ? ms - delta : 0;
|
||||
Sleep(delta);
|
||||
while( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
curr_ms = GetTickCount( );
|
||||
sleep_millisecs = milliseconds_sleep_limit - curr_ms;
|
||||
if( sleep_millisecs > max_sleep_ms)
|
||||
sleep_millisecs = max_sleep_ms;
|
||||
Sleep( sleep_millisecs);
|
||||
curr_ms += sleep_millisecs;
|
||||
}
|
||||
}
|
||||
|
||||
const char *PDC_sysname(void)
|
||||
@ -54,4 +58,4 @@ const PDC_version_info PDC_version = { PDC_PORT_WIN32A,
|
||||
#else
|
||||
FALSE,
|
||||
#endif
|
||||
};
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user