Harold,
I think I understand your original patch better now and I think that you
were probably doing it correctly, but I can't verify that right now. If
this is what you were trying to do, then it probably is correct:
1) Assume that no keyboard input is in the mi queue when winWindowProc
Takuma,
Takuma Murakami wrote:
I agree with you. If the mi event queue has pending
events when winRestoreModeKeyStates is called, it may
fail to synchronize mode key states between XWin and
Windows. However, the new code can re-sync them at
the next time winRestoreModeKeyStates is called while
Harold,
Actually, now I am a little doubtful that this patch is complete. If I
recall correctly, we are merely enqueueing input events into a queue
that the mi layer processes later. Checking the mode key states within
the X server will only indicate what the mi layer currently knows
Takuma Murakami wrote:
I have made a patch to improve keyboard handling.
Any comments would be appreciated.
The changes are:
1) win.h, winkeybd.c, winwndproc.c - Improve the
synchronization of mode key states between XWin
and Windows.
+ /* Stored to get internal mode key states. Must be read
+ /* Stored to get internal mode key states. Must be read-only. */
+ static unsigned short *g_winInternalModeKeyStatesPtr = NULL;
Shouldn't this be a pointer to constant data? Isn't that:
static unsigned short const * g_winInternalModeKeyStatesPtr = NULL;
???
Exactly. That's what I
Takuma Murakami wrote:
I have made a patch to improve keyboard handling.
Any comments would be appreciated.
The changes are:
1) win.h, winkeybd.c, winwndproc.c - Improve the
synchronization of mode key states between XWin
and Windows.
2) winmultiwindowwndproc.c - Enable mode key
synchronization