mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-28 16:17:09 +08:00
Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ae46a4b94 | ||
|
|
2791dc99ef | ||
|
|
b7525f3001 | ||
|
|
4c55f2eac3 | ||
|
|
3ad600d1bf | ||
|
|
3c233a4164 | ||
|
|
3643606a7f | ||
|
|
3ef2340749 | ||
|
|
a583dc1cbb |
@@ -460,7 +460,7 @@ for examples:
|
|||||||
|
|
||||||
## HISTORY
|
## HISTORY
|
||||||
|
|
||||||
21 years have pasted since MiniGUI was initially created at
|
27 years have pasted since MiniGUI was initially created at
|
||||||
the end of 1998, and now it becomes much reliable and stable.
|
the end of 1998, and now it becomes much reliable and stable.
|
||||||
During the past years, many remarkable changes have taken place in
|
During the past years, many remarkable changes have taken place in
|
||||||
the MiniGUI project.
|
the MiniGUI project.
|
||||||
@@ -566,13 +566,14 @@ A brief history description of the development progress is listed as follow:
|
|||||||
1. Jan., 2022: FMSoft released MiniGUI version 5.0.9.
|
1. Jan., 2022: FMSoft released MiniGUI version 5.0.9.
|
||||||
1. Sep., 2022: FMSoft released MiniGUI version 5.0.10.
|
1. Sep., 2022: FMSoft released MiniGUI version 5.0.10.
|
||||||
1. Aug., 2023: FMSoft released MiniGUI version 5.0.13.
|
1. Aug., 2023: FMSoft released MiniGUI version 5.0.13.
|
||||||
|
1. May., 2025: FMSoft released MiniGUI version 5.0.15.
|
||||||
|
|
||||||
## AUTHORS AND COPYING
|
## AUTHORS AND COPYING
|
||||||
|
|
||||||
The original author of MiniGUI is Vincent Wei, and now MiniGUI is maintained by FMSoft.
|
The original author of MiniGUI is Vincent Wei, and now MiniGUI is maintained by FMSoft.
|
||||||
For more information, please refer to <http://www.fmsoft.cn>.
|
For more information, please refer to <http://www.fmsoft.cn>.
|
||||||
|
|
||||||
Copyright (C) 2002 ~ 2023, Beijing FMSoft Technologies Co., Ltd.
|
Copyright (C) 2002 ~ 2025, Beijing FMSoft Technologies Co., Ltd.
|
||||||
Copyright (C) 1998 ~ 2002, Vincent Wei
|
Copyright (C) 1998 ~ 2002, Vincent Wei
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|||||||
+6
-5
@@ -1,7 +1,7 @@
|
|||||||
# Release Notes
|
# Release Notes
|
||||||
|
|
||||||
- [Version 5.2.0](#version-520)
|
- [Version 5.0.15](#version-5015)
|
||||||
+ [What's new in version 5.2.0](#whats-new-in-version-520)
|
+ [What's new in version 5.0.15](#whats-new-in-version-5015)
|
||||||
- [Version 5.0.13](#version-5013)
|
- [Version 5.0.13](#version-5013)
|
||||||
+ [What's new in version 5.0.13](#whats-new-in-version-5013)
|
+ [What's new in version 5.0.13](#whats-new-in-version-5013)
|
||||||
- [Version 5.0.12](#version-5012)
|
- [Version 5.0.12](#version-5012)
|
||||||
@@ -34,10 +34,11 @@
|
|||||||
+ [Changes leading to incompatibility](#changes-leading-to-incompatibility)
|
+ [Changes leading to incompatibility](#changes-leading-to-incompatibility)
|
||||||
+ [Deprecated APIs](#deprecated-apis)
|
+ [Deprecated APIs](#deprecated-apis)
|
||||||
|
|
||||||
## Version 5.2.0
|
## Version 5.0.15
|
||||||
|
|
||||||
On Nov. 30, 2023, FMSoft announces the availability of MiniGUI 5.2.0,
|
On May 09, 2025, FMSoft announces the availability of MiniGUI 5.0.15,
|
||||||
which is an mainline release with some major enhancements:
|
which is an enhancement release with some minor enhancements
|
||||||
|
of MiniGUI 5.0.x.
|
||||||
|
|
||||||
* ENHANCEMENTS:
|
* ENHANCEMENTS:
|
||||||
- Optimize NEWGAL engines: `shadow`, `drm`, and `fbcon` for large resolution.
|
- Optimize NEWGAL engines: `shadow`, `drm`, and `fbcon` for large resolution.
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
Version 5.2.0 (2023/09/30)
|
Version 5.0.15 (2025/05/09)
|
||||||
|
|
||||||
This is a minor enhancement and bugfix release of MiniGUI 5.2.x, the stable version.
|
This is a minor enhancement and bugfix release of MiniGUI 5.0.x, the stable version.
|
||||||
|
|
||||||
Other packages for MiniGUI resource, tools, components, and samples:
|
Other packages for MiniGUI resource, tools, components, and samples:
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
AC_PREREQ(2.60)
|
AC_PREREQ(2.60)
|
||||||
AC_INIT(libminigui, 5.2.0)
|
AC_INIT(libminigui, 5.0.15)
|
||||||
AC_CONFIG_SRCDIR(src/main/main.c)
|
AC_CONFIG_SRCDIR(src/main/main.c)
|
||||||
|
|
||||||
dnl Set various version strings - taken gratefully from the SDL sources
|
dnl Set various version strings - taken gratefully from the SDL sources
|
||||||
@@ -15,8 +15,8 @@ dnl Set various version strings - taken gratefully from the SDL sources
|
|||||||
# set MINIGUI_BINARY_AGE and MINIGUI_INTERFACE_AGE to 0.
|
# set MINIGUI_BINARY_AGE and MINIGUI_INTERFACE_AGE to 0.
|
||||||
#
|
#
|
||||||
MINIGUI_MAJOR_VERSION=5
|
MINIGUI_MAJOR_VERSION=5
|
||||||
MINIGUI_MINOR_VERSION=2
|
MINIGUI_MINOR_VERSION=0
|
||||||
MINIGUI_MICRO_VERSION=0
|
MINIGUI_MICRO_VERSION=15
|
||||||
MINIGUI_INTERFACE_AGE=0
|
MINIGUI_INTERFACE_AGE=0
|
||||||
MINIGUI_BINARY_AGE=0
|
MINIGUI_BINARY_AGE=0
|
||||||
MINIGUI_VERSION=$MINIGUI_MAJOR_VERSION.$MINIGUI_MINOR_VERSION.$MINIGUI_MICRO_VERSION
|
MINIGUI_VERSION=$MINIGUI_MAJOR_VERSION.$MINIGUI_MINOR_VERSION.$MINIGUI_MICRO_VERSION
|
||||||
|
|||||||
+4
-35
@@ -258,7 +258,7 @@ struct _MSGQUEUE
|
|||||||
int loop_depth; // message loop depth, for dialog boxes
|
int loop_depth; // message loop depth, for dialog boxes
|
||||||
|
|
||||||
int idle_counter; // the idle connter for MSG_IDLE
|
int idle_counter; // the idle connter for MSG_IDLE
|
||||||
DWORD last_ticks_desktop; // the last tick count for desktop timer
|
DWORD last_ticks; // the last tick count saved; since 5.0.14
|
||||||
|
|
||||||
/* Since 5.0.0, MiniGUI provides support for timers per message thread */
|
/* Since 5.0.0, MiniGUI provides support for timers per message thread */
|
||||||
int nr_timers; // the number of active timers
|
int nr_timers; // the number of active timers
|
||||||
@@ -911,40 +911,9 @@ static inline MSGQUEUE* getMsgQueueIfMainWindowInThisThread (PMAINWIN pMainWin)
|
|||||||
|
|
||||||
#endif /* defined _MGHAVE_VIRTUAL_WINDOW */
|
#endif /* defined _MGHAVE_VIRTUAL_WINDOW */
|
||||||
|
|
||||||
#if 0 /* deprecated code */
|
/* Since 5.0.14, remove arg use_sys_timer */
|
||||||
/* since 5.0.0, we always use QS_DESKTIMER for desktop timer */
|
BOOL mg_InitTimer (void);
|
||||||
/* since 5.0.0, we no longer use the timer thread */
|
void mg_TerminateTimer (void);
|
||||||
static inline void AlertDesktopTimerEvent (void)
|
|
||||||
{
|
|
||||||
if (__mg_dsk_msg_queue) {
|
|
||||||
__mg_dsk_msg_queue->expired_timer_mask = 1;
|
|
||||||
POST_MSGQ (__mg_dsk_msg_queue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void AlertDesktopTimerEvent (void)
|
|
||||||
{
|
|
||||||
__mg_dsk_msg_queue->dwState |= QS_DESKTIMER;
|
|
||||||
#ifdef _MGHAVE_VIRTUAL_WINDOW
|
|
||||||
if (getMsgQueueForThisThread() != __mg_dsk_msg_queue)
|
|
||||||
POST_MSGQ (__mg_dsk_msg_queue);
|
|
||||||
#endif /* defined _MGHAVE_VIRTUAL_WINDOW */
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void setMsgQueueTimerFlag (PMSGQUEUE pMsgQueue, int slot)
|
|
||||||
{
|
|
||||||
pMsgQueue->expired_timer_mask |= (0x01UL << slot);
|
|
||||||
POST_MSGQ (pMsgQueue);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void removeMsgQueueTimerFlag (PMSGQUEUE pMsgQueue, int slot)
|
|
||||||
{
|
|
||||||
pMsgQueue->expired_timer_mask &= ~(0x01UL << slot);
|
|
||||||
}
|
|
||||||
#endif /* deprecated code */
|
|
||||||
|
|
||||||
BOOL mg_InitTimer (BOOL use_sys_timer);
|
|
||||||
void mg_TerminateTimer (BOOL use_sys_timer);
|
|
||||||
|
|
||||||
/*window element renderer manager interface*/
|
/*window element renderer manager interface*/
|
||||||
extern WINDOW_ELEMENT_RENDERER * __mg_def_renderer;
|
extern WINDOW_ELEMENT_RENDERER * __mg_def_renderer;
|
||||||
|
|||||||
+1
-1
@@ -74,7 +74,7 @@ typedef struct _MSGQUEUE MSGQUEUE;
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
void __mg_update_tick_count (void* data);
|
DWORD __mg_update_tick_count (MSGQUEUE* msg_queue);
|
||||||
int __mg_check_expired_timers (MSGQUEUE* msg_queue, DWORD inter);
|
int __mg_check_expired_timers (MSGQUEUE* msg_queue, DWORD inter);
|
||||||
void __mg_remove_timers_by_msg_queue (MSGQUEUE* msg_queue);
|
void __mg_remove_timers_by_msg_queue (MSGQUEUE* msg_queue);
|
||||||
void __mg_remove_timer (MSGQUEUE* msg_queue, int slot);
|
void __mg_remove_timer (MSGQUEUE* msg_queue, int slot);
|
||||||
|
|||||||
@@ -55,6 +55,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
@@ -141,12 +142,31 @@ BOOL mg_InitDesktop (void)
|
|||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
static IDLEHANDLER std_idle_handler;
|
/* According to a bug report, we use sem_timedwait() instead of
|
||||||
|
calling std_idle_handler for desktop thread.
|
||||||
|
Otherwise, the desktop might not handle the request from other GUI threads
|
||||||
|
as soon as possible. */
|
||||||
static BOOL idle_handler_for_desktop_thread (MSGQUEUE *msg_queue, BOOL wait)
|
static BOOL idle_handler_for_desktop_thread (MSGQUEUE *msg_queue, BOOL wait)
|
||||||
{
|
{
|
||||||
__mg_update_tick_count (NULL);
|
int retv, n = 0;
|
||||||
return std_idle_handler (msg_queue, wait);
|
|
||||||
|
__mg_update_tick_count (msg_queue);
|
||||||
|
|
||||||
|
if (wait) {
|
||||||
|
struct timespec ts;
|
||||||
|
if (clock_gettime (CLOCK_REALTIME, &ts) != -1) {
|
||||||
|
ts.tv_nsec += 10 * 1000 * 1000L; // 10ms
|
||||||
|
if (ts.tv_nsec >= 1000 * 1000 * 1000L) {
|
||||||
|
ts.tv_sec += 1;
|
||||||
|
ts.tv_nsec -= 1000 * 1000 * 1000L;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sem_timedwait (&msg_queue->wait, &ts) == 0)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return n > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* __kernel_desktop_main (void* data)
|
void* __kernel_desktop_main (void* data)
|
||||||
@@ -162,7 +182,6 @@ void* __kernel_desktop_main (void* data)
|
|||||||
|
|
||||||
/* For bug reported in Issue #116, under threads mode, the idle handler
|
/* For bug reported in Issue #116, under threads mode, the idle handler
|
||||||
for the desktop thread should call __mg_update_tick_count () */
|
for the desktop thread should call __mg_update_tick_count () */
|
||||||
std_idle_handler = __mg_dsk_msg_queue->OnIdle;
|
|
||||||
__mg_dsk_msg_queue->OnIdle = idle_handler_for_desktop_thread;
|
__mg_dsk_msg_queue->OnIdle = idle_handler_for_desktop_thread;
|
||||||
|
|
||||||
/* init desktop window */
|
/* init desktop window */
|
||||||
|
|||||||
+8
-8
@@ -562,6 +562,13 @@ int GUIAPI InitGUI (int args, const char *agr[])
|
|||||||
|
|
||||||
_is_minigui_running = 1;
|
_is_minigui_running = 1;
|
||||||
|
|
||||||
|
/* init timer for tick counter */
|
||||||
|
step++;
|
||||||
|
if (!mg_InitTimer()) {
|
||||||
|
_ERR_PRINTF ("KERNEL>InitGUI: failed to start time counter\n");
|
||||||
|
goto failure;
|
||||||
|
}
|
||||||
|
|
||||||
step++;
|
step++;
|
||||||
if (!SystemThreads()) {
|
if (!SystemThreads()) {
|
||||||
_ERR_PRINTF ("KERNEL>InitGUI: failed to init system threads!\n");
|
_ERR_PRINTF ("KERNEL>InitGUI: failed to init system threads!\n");
|
||||||
@@ -575,13 +582,6 @@ int GUIAPI InitGUI (int args, const char *agr[])
|
|||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* init timer for tick counter */
|
|
||||||
step++;
|
|
||||||
if (!mg_InitTimer (FALSE)) {
|
|
||||||
_ERR_PRINTF ("KERNEL>InitGUI: failed to start time counter\n");
|
|
||||||
goto failure;
|
|
||||||
}
|
|
||||||
|
|
||||||
SetKeyboardLayout ("default");
|
SetKeyboardLayout ("default");
|
||||||
|
|
||||||
SetCursor (GetSystemCursor (IDC_ARROW));
|
SetCursor (GetSystemCursor (IDC_ARROW));
|
||||||
@@ -602,7 +602,7 @@ failure1:
|
|||||||
|
|
||||||
void GUIAPI TerminateGUI (int not_used)
|
void GUIAPI TerminateGUI (int not_used)
|
||||||
{
|
{
|
||||||
mg_TerminateTimer (FALSE);
|
mg_TerminateTimer ();
|
||||||
|
|
||||||
mg_FreeMsgQueueForThisThread (TRUE);
|
mg_FreeMsgQueueForThisThread (TRUE);
|
||||||
|
|
||||||
|
|||||||
+55
-139
File diff suppressed because it is too large
Load Diff
@@ -495,28 +495,6 @@ DWORD __mg_os_get_time_ticks (void)
|
|||||||
return (current - startup_time_win32) / 10;
|
return (current - startup_time_win32) / 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* deprecated code */
|
|
||||||
DWORD __mg_os_get_elapsed_ms (void)
|
|
||||||
{
|
|
||||||
static DWORD last;
|
|
||||||
DWORD current = timeGetTime();
|
|
||||||
DWORD elapsed;
|
|
||||||
|
|
||||||
if (current >= last) {
|
|
||||||
elapsed = current - last;
|
|
||||||
return elapsed;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
/* overflowed */
|
|
||||||
elapsed = BITMASK_DWORD - last;
|
|
||||||
elapsed += current;
|
|
||||||
}
|
|
||||||
|
|
||||||
last = current;
|
|
||||||
return elapsed;
|
|
||||||
}
|
|
||||||
#endif /* deprecated code */
|
|
||||||
|
|
||||||
#elif defined (HAVE_CLOCK_GETTIME)
|
#elif defined (HAVE_CLOCK_GETTIME)
|
||||||
|
|
||||||
static struct timespec timeval_startup;
|
static struct timespec timeval_startup;
|
||||||
@@ -573,68 +551,6 @@ DWORD __mg_os_get_time_ticks (void)
|
|||||||
return ds * 100 + dms;
|
return ds * 100 + dms;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* deprecated code */
|
|
||||||
DWORD __mg_os_get_elapsed_ms (void)
|
|
||||||
{
|
|
||||||
static struct timespec last;
|
|
||||||
DWORD ds, dms;
|
|
||||||
struct timespec current;
|
|
||||||
|
|
||||||
clock_gettime (CLOCK_MONOTONIC, ¤t);
|
|
||||||
ds = (current.tv_sec - last.tv_sec);
|
|
||||||
|
|
||||||
if (current.tv_sec == last.tv_sec) {
|
|
||||||
dms = (current.tv_nsec - last.tv_nsec) / 1000000L;
|
|
||||||
}
|
|
||||||
else if (current.tv_nsec >= last.tv_nsec) {
|
|
||||||
dms = (current.tv_nsec - last.tv_nsec) / 1000000L;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assert (ds > 0);
|
|
||||||
|
|
||||||
ds--;
|
|
||||||
dms = 1000L - (last.tv_nsec - current.tv_nsec) / 1000000L;
|
|
||||||
}
|
|
||||||
|
|
||||||
last = current;
|
|
||||||
return ds * 1000 + dms;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <poll.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
|
|
||||||
static struct timeval timeval_startup;
|
|
||||||
void __mg_os_start_time(void)
|
|
||||||
{
|
|
||||||
gettimeofday(&timeval_startup, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
DWORD __mg_os_get_time_ms(void)
|
|
||||||
{
|
|
||||||
DWORD ds, dms;
|
|
||||||
struct timeval current;
|
|
||||||
|
|
||||||
gettimeofday(¤t, NULL);
|
|
||||||
ds = (current.tv_sec - timeval_startup.tv_sec);
|
|
||||||
|
|
||||||
if (current.tv_sec == timeval_startup.tv_sec) {
|
|
||||||
dms = (current.tv_usec - timeval_startup.tv_usec) / 1000L;
|
|
||||||
}
|
|
||||||
else if (current.tv_usec >= timeval_startup.tv_usec) {
|
|
||||||
dms = (current.tv_usec - timeval_startup.tv_usec) / 1000L;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
assert(ds > 0);
|
|
||||||
|
|
||||||
ds--;
|
|
||||||
dms = 1000L - (timeval_startup.tv_usec - current.tv_usec) / 1000L;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ds * 1000 + dms;
|
|
||||||
}
|
|
||||||
#endif /* deprecated code */
|
|
||||||
|
|
||||||
#else /* defined HAVE_CLOCK_GETTIME */
|
#else /* defined HAVE_CLOCK_GETTIME */
|
||||||
|
|
||||||
#error "Please implement __mg_os_start_time and __mg_os_get_time_ticks for your OS"
|
#error "Please implement __mg_os_start_time and __mg_os_get_time_ticks for your OS"
|
||||||
|
|||||||
+2
-24
@@ -84,20 +84,6 @@ extern DWORD __mg_tick_counter;
|
|||||||
|
|
||||||
ON_NEW_DEL_CLIENT OnNewDelClient = NULL;
|
ON_NEW_DEL_CLIENT OnNewDelClient = NULL;
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Since 5.0.0, use RegisterEventHookFunc to implement SetServerEventHook */
|
|
||||||
static SRVEVTHOOK srv_evt_hook = NULL;
|
|
||||||
|
|
||||||
SRVEVTHOOK GUIAPI SetServerEventHook (SRVEVTHOOK SrvEvtHook)
|
|
||||||
{
|
|
||||||
SRVEVTHOOK old_hook = srv_evt_hook;
|
|
||||||
|
|
||||||
srv_evt_hook = SrvEvtHook;
|
|
||||||
|
|
||||||
return old_hook;
|
|
||||||
}
|
|
||||||
#endif /* deprecated code; moved to window.c */
|
|
||||||
|
|
||||||
static void ParseEvent (PMSGQUEUE msg_que, int event)
|
static void ParseEvent (PMSGQUEUE msg_que, int event)
|
||||||
{
|
{
|
||||||
LWEVENT lwe;
|
LWEVENT lwe;
|
||||||
@@ -331,7 +317,7 @@ BOOL GUIAPI ServerStartup (int nr_globals,
|
|||||||
__mg_dsk_msg_queue->maxfd = listenfd;
|
__mg_dsk_msg_queue->maxfd = listenfd;
|
||||||
maxi = -1;
|
maxi = -1;
|
||||||
|
|
||||||
mg_InitTimer (TRUE);
|
mg_InitTimer ();
|
||||||
|
|
||||||
__mg_start_server_desktop ();
|
__mg_start_server_desktop ();
|
||||||
|
|
||||||
@@ -363,7 +349,7 @@ void server_ServerCleanup (void)
|
|||||||
__mg_nssurf_map_delete ();
|
__mg_nssurf_map_delete ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mg_TerminateTimer (TRUE);
|
mg_TerminateTimer ();
|
||||||
|
|
||||||
unlink (CS_PATH);
|
unlink (CS_PATH);
|
||||||
}
|
}
|
||||||
@@ -381,14 +367,6 @@ BOOL server_IdleHandler4Server (PMSGQUEUE msg_queue, BOOL wait)
|
|||||||
EXTRA_INPUT_EVENT extra; // Since 4.0.0; for extra input events
|
EXTRA_INPUT_EVENT extra; // Since 4.0.0; for extra input events
|
||||||
int nevts = 0; // Since 5.0.0; for timer and fd events
|
int nevts = 0; // Since 5.0.0; for timer and fd events
|
||||||
|
|
||||||
#if 0 /* deprecated code */
|
|
||||||
/* since 5.0.0, use __mg_update_tick_count instead */
|
|
||||||
if (__mg_tick_counter != SHAREDRES_TIMER_COUNTER) {
|
|
||||||
__mg_tick_counter = SHAREDRES_TIMER_COUNTER;
|
|
||||||
AlertDesktopTimerEvent ();
|
|
||||||
}
|
|
||||||
#endif /* deprecated code */
|
|
||||||
|
|
||||||
/* rset gets modified each time around */
|
/* rset gets modified each time around */
|
||||||
rset = __mg_dsk_msg_queue->rfdset;
|
rset = __mg_dsk_msg_queue->rfdset;
|
||||||
if (__mg_dsk_msg_queue->nr_wfds) {
|
if (__mg_dsk_msg_queue->nr_wfds) {
|
||||||
|
|||||||
@@ -190,14 +190,14 @@ static void ParseEvent (PMSGQUEUE msg_que, int event)
|
|||||||
BOOL GUIAPI salone_StandAloneStartup (void)
|
BOOL GUIAPI salone_StandAloneStartup (void)
|
||||||
{
|
{
|
||||||
/* VW: do not use signal based interval timer; since 4.0 */
|
/* VW: do not use signal based interval timer; since 4.0 */
|
||||||
mg_InitTimer (FALSE);
|
mg_InitTimer ();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void salone_StandAloneCleanup (void)
|
void salone_StandAloneCleanup (void)
|
||||||
{
|
{
|
||||||
/* VW: do not use signal based interval timer; since 4.0 */
|
/* VW: do not use signal based interval timer; since 4.0 */
|
||||||
mg_TerminateTimer (FALSE);
|
mg_TerminateTimer ();
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL salone_IdleHandler4StandAlone (PMSGQUEUE msg_queue, BOOL wait)
|
BOOL salone_IdleHandler4StandAlone (PMSGQUEUE msg_queue, BOOL wait)
|
||||||
|
|||||||
Reference in New Issue
Block a user