mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-31 18:39:18 +00:00
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:
@@ -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>
|
||||
|
||||
* winwindow.h:
|
||||
|
||||
@@ -129,6 +129,11 @@ winLogVersionInfo (void);
|
||||
Bool
|
||||
winValidateArgs (void);
|
||||
|
||||
#ifdef RELOCATE_PROJECTROOT
|
||||
const char *
|
||||
winGetBaseDir(void);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 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
|
||||
@@ -379,7 +384,7 @@ winCheckMount(void)
|
||||
#endif
|
||||
|
||||
#ifdef RELOCATE_PROJECTROOT
|
||||
static const char *
|
||||
const char *
|
||||
winGetBaseDir(void)
|
||||
{
|
||||
static BOOL inited = FALSE;
|
||||
|
||||
@@ -453,7 +453,7 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
|
||||
* Fake Ctrl_L presses will be followed by an Alt_R keypress
|
||||
* with the same timestamp as the Ctrl_L press.
|
||||
*/
|
||||
if (message == WM_KEYDOWN
|
||||
if ((message == WM_KEYDOWN || message == WM_SYSKEYDOWN)
|
||||
&& wParam == VK_CONTROL
|
||||
&& (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. */
|
||||
fReturn = PeekMessage (&msgNext, NULL,
|
||||
WM_KEYDOWN, WM_KEYDOWN,
|
||||
WM_KEYDOWN, WM_SYSKEYDOWN,
|
||||
PM_NOREMOVE);
|
||||
|
||||
/*
|
||||
@@ -478,9 +478,11 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
/* Look for fake Ctrl_L preceeding an Alt_R press. */
|
||||
fReturn = PeekMessage (&msgNext, NULL,
|
||||
WM_KEYDOWN, WM_KEYDOWN,
|
||||
WM_KEYDOWN, WM_SYSKEYDOWN,
|
||||
PM_NOREMOVE);
|
||||
}
|
||||
if (msgNext.message != WM_KEYDOWN && msgNext.message != WM_SYSKEYDOWN)
|
||||
fReturn = 0;
|
||||
|
||||
/* Is next press an Alt_R with the same timestamp? */
|
||||
if (fReturn && msgNext.wParam == VK_MENU
|
||||
@@ -529,6 +531,9 @@ winIsFakeCtrl_L (UINT message, WPARAM wParam, LPARAM lParam)
|
||||
PM_NOREMOVE);
|
||||
}
|
||||
|
||||
if (msgNext.message != WM_KEYUP && msgNext.message != WM_SYSKEYUP)
|
||||
fReturn = 0;
|
||||
|
||||
/* Is next press an Alt_R with the same timestamp? */
|
||||
if (fReturn
|
||||
&& (msgNext.message == WM_KEYUP
|
||||
|
||||
@@ -720,16 +720,14 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
|
||||
#endif
|
||||
|
||||
/* Pass the message to the root window */
|
||||
SendMessage (hwndScreen, message, wParam, lParam);
|
||||
return 0;
|
||||
return winWindowProc(hwndScreen, message, wParam, lParam);
|
||||
|
||||
case WM_SYSKEYUP:
|
||||
case WM_KEYUP:
|
||||
|
||||
|
||||
/* Pass the message to the root window */
|
||||
SendMessage (hwndScreen, message, wParam, lParam);
|
||||
return 0;
|
||||
return winWindowProc(hwndScreen, message, wParam, lParam);
|
||||
|
||||
case WM_HOTKEY:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user