mirror of
https://github.com/X11Libre/xserver.git
synced 2026-04-14 17:18:09 +00:00
Polling input mode for the kdrive os layer. And a moose!
This commit is contained in:
@@ -306,6 +306,7 @@ KdOsFuncs ItsyOsFuncs = {
|
||||
ItsyOsSpecialKey,
|
||||
ItsyOsDisable,
|
||||
ItsyOsFini,
|
||||
0
|
||||
};
|
||||
|
||||
void
|
||||
|
||||
@@ -471,6 +471,7 @@ KdOsFuncs LinuxFuncs = {
|
||||
LinuxSpecialKey,
|
||||
LinuxDisable,
|
||||
LinuxFini,
|
||||
0
|
||||
};
|
||||
|
||||
void
|
||||
|
||||
@@ -276,6 +276,7 @@ typedef struct _KdOsFuncs {
|
||||
Bool (*SpecialKey) (KeySym);
|
||||
void (*Disable) (void);
|
||||
void (*Fini) (void);
|
||||
void (*pollEvents) (void);
|
||||
} KdOsFuncs;
|
||||
|
||||
typedef enum _KdSyncPolarity {
|
||||
|
||||
@@ -1468,7 +1468,8 @@ KdBlockHandler (int screen,
|
||||
pointer readmask)
|
||||
{
|
||||
KdMouseInfo *mi;
|
||||
|
||||
int myTimeout=0;
|
||||
|
||||
for (mi = kdMouseInfo; mi; mi = mi->next)
|
||||
{
|
||||
if (mi->timeoutPending)
|
||||
@@ -1476,11 +1477,20 @@ KdBlockHandler (int screen,
|
||||
int ms;
|
||||
|
||||
ms = mi->emulationTimeout - GetTimeInMillis ();
|
||||
if (ms < 0)
|
||||
ms = 0;
|
||||
AdjustWaitForDelay (timeout, ms);
|
||||
if (ms < 1)
|
||||
ms = 1;
|
||||
if(ms<myTimeout || myTimeout==0)
|
||||
myTimeout=ms;
|
||||
}
|
||||
}
|
||||
/* if we need to poll for events, do that */
|
||||
if(kdOsFuncs->pollEvents)
|
||||
{
|
||||
(*kdOsFuncs->pollEvents)();
|
||||
myTimeout=20;
|
||||
}
|
||||
if(myTimeout>0)
|
||||
AdjustWaitForDelay (timeout, myTimeout);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -59,6 +59,7 @@ KdOsFuncs VxWorksFuncs = {
|
||||
VxWorksSpecialKey,
|
||||
VxWorksDisable,
|
||||
VxWorksFini,
|
||||
0
|
||||
};
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user