Fix problem with fake Control press on Alt-Gr

https://bugs.freedesktop.org/show_bug.cgi?id=3680
    https://bugs.freedesktop.org/show_bug.cgi?id=3497
Fix static declaration of winGetBaseDir
This commit is contained in:
Alexander Gottwald 2005-07-05 15:43:20 +00:00
parent 3af77ad3e7
commit 0bb2eb8eaa
4 changed files with 27 additions and 8 deletions

View File

@ -1,3 +1,14 @@
2005-07-05 Alexander Gottwald <ago at freedesktop dot org>
* winmultiwindowwndproc.c:
* winkeybd.c:
Fix problem with fake Control press on Alt-Gr
https://bugs.freedesktop.org/show_bug.cgi?id=3680
https://bugs.freedesktop.org/show_bug.cgi?id=3497
* InitOutput.c:
Fix static declaration of winGetBaseDir
2005-07-05 Alexander Gottwald <ago at freedesktop dot org> 2005-07-05 Alexander Gottwald <ago at freedesktop dot org>
* winwindow.h: * winwindow.h:

View File

@ -129,6 +129,11 @@ winLogVersionInfo (void);
Bool Bool
winValidateArgs (void); winValidateArgs (void);
#ifdef RELOCATE_PROJECTROOT
const char *
winGetBaseDir(void);
#endif
/* /*
* For the depth 24 pixmap we default to 32 bits per pixel, but * For the depth 24 pixmap we default to 32 bits per pixel, but
* we change this pixmap format later if we detect that the display * we change this pixmap format later if we detect that the display
@ -379,7 +384,7 @@ winCheckMount(void)
#endif #endif
#ifdef RELOCATE_PROJECTROOT #ifdef RELOCATE_PROJECTROOT
static const char * const char *
winGetBaseDir(void) winGetBaseDir(void)
{ {
static BOOL inited = FALSE; static BOOL inited = FALSE;

View File

@ -453,7 +453,7 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
* Fake Ctrl_L presses will be followed by an Alt_R keypress * Fake Ctrl_L presses will be followed by an Alt_R keypress
* with the same timestamp as the Ctrl_L press. * with the same timestamp as the Ctrl_L press.
*/ */
if (message == WM_KEYDOWN if ((message == WM_KEYDOWN || message == WM_SYSKEYDOWN)
&& wParam == VK_CONTROL && wParam == VK_CONTROL
&& (HIWORD (lParam) & KF_EXTENDED) == 0) && (HIWORD (lParam) & KF_EXTENDED) == 0)
{ {
@ -464,7 +464,7 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
/* Look for fake Ctrl_L preceeding an Alt_R press. */ /* Look for fake Ctrl_L preceeding an Alt_R press. */
fReturn = PeekMessage (&msgNext, NULL, fReturn = PeekMessage (&msgNext, NULL,
WM_KEYDOWN, WM_KEYDOWN, WM_KEYDOWN, WM_SYSKEYDOWN,
PM_NOREMOVE); PM_NOREMOVE);
/* /*
@ -478,9 +478,11 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
/* Look for fake Ctrl_L preceeding an Alt_R press. */ /* Look for fake Ctrl_L preceeding an Alt_R press. */
fReturn = PeekMessage (&msgNext, NULL, fReturn = PeekMessage (&msgNext, NULL,
WM_KEYDOWN, WM_KEYDOWN, WM_KEYDOWN, WM_SYSKEYDOWN,
PM_NOREMOVE); PM_NOREMOVE);
} }
if (msgNext.message != WM_KEYDOWN && msgNext.message != WM_SYSKEYDOWN)
fReturn = 0;
/* Is next press an Alt_R with the same timestamp? */ /* Is next press an Alt_R with the same timestamp? */
if (fReturn && msgNext.wParam == VK_MENU if (fReturn && msgNext.wParam == VK_MENU
@ -529,6 +531,9 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
PM_NOREMOVE); PM_NOREMOVE);
} }
if (msgNext.message != WM_KEYUP && msgNext.message != WM_SYSKEYUP)
fReturn = 0;
/* Is next press an Alt_R with the same timestamp? */ /* Is next press an Alt_R with the same timestamp? */
if (fReturn if (fReturn
&& (msgNext.message == WM_KEYUP && (msgNext.message == WM_KEYUP

View File

@ -720,16 +720,14 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
#endif #endif
/* Pass the message to the root window */ /* Pass the message to the root window */
SendMessage (hwndScreen, message, wParam, lParam); return winWindowProc(hwndScreen, message, wParam, lParam);
return 0;
case WM_SYSKEYUP: case WM_SYSKEYUP:
case WM_KEYUP: case WM_KEYUP:
/* Pass the message to the root window */ /* Pass the message to the root window */
SendMessage (hwndScreen, message, wParam, lParam); return winWindowProc(hwndScreen, message, wParam, lParam);
return 0;
case WM_HOTKEY: case WM_HOTKEY: