Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
0c53ce5d
Commit
0c53ce5d
authored
Dec 17, 2008
by
Aric Stewart
Committed by
Alexandre Julliard
Dec 18, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11drv: If a keyboard layout is an IME only check the loword when comparing to…
x11drv: If a keyboard layout is an IME only check the loword when comparing to the x11 keyboard layout.
parent
3a9a08cb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
2 deletions
+14
-2
keyboard.c
dlls/winex11.drv/keyboard.c
+14
-2
No files found.
dlls/winex11.drv/keyboard.c
View file @
0c53ce5d
...
...
@@ -69,6 +69,7 @@ static WORD keyc2vkey[256], keyc2scan[256];
static
int
NumLockMask
,
ScrollLockMask
,
AltGrMask
;
/* mask in the XKeyEvent state */
static
char
KEYBOARD_MapDeadKeysym
(
KeySym
keysym
);
HKL
X11DRV_GetKeyboardLayout
(
DWORD
dwThreadid
);
/* Keyboard translation tables */
#define MAIN_LEN 49
...
...
@@ -1838,6 +1839,17 @@ void X11DRV_InitKeyboard( Display *display )
wine_tsx11_unlock
();
}
static
BOOL
match_x11_keyboard_layout
(
HKL
hkl
)
{
const
DWORD
isIME
=
0xE0000000
;
HKL
xHkl
=
X11DRV_GetKeyboardLayout
(
0
);
/* if the layout is an IME, only match the low word (LCID) */
if
(((
ULONG_PTR
)
hkl
&
isIME
)
==
isIME
)
return
(
LOWORD
(
hkl
)
==
LOWORD
(
xHkl
));
else
return
(
hkl
==
xHkl
);
}
/**********************************************************************
* GetAsyncKeyState (X11DRV.@)
...
...
@@ -2111,7 +2123,7 @@ UINT X11DRV_MapVirtualKeyEx(UINT wCode, UINT wMapType, HKL hkl)
#define returnMVK(value) { TRACE("returning 0x%x.\n",value); return value; }
TRACE
(
"wCode=0x%x, wMapType=%d, hkl %p
\n
"
,
wCode
,
wMapType
,
hkl
);
if
(
hkl
!=
X11DRV_GetKeyboardLayout
(
0
))
if
(
!
match_x11_keyboard_layout
(
hkl
))
FIXME
(
"keyboard layout %p is not supported
\n
"
,
hkl
);
switch
(
wMapType
)
...
...
@@ -2459,7 +2471,7 @@ INT X11DRV_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState,
return
0
;
}
if
(
hkl
!=
X11DRV_GetKeyboardLayout
(
0
))
if
(
!
match_x11_keyboard_layout
(
hkl
))
FIXME
(
"keyboard layout %p is not supported
\n
"
,
hkl
);
if
((
lpKeyState
[
VK_MENU
]
&
0x80
)
&&
(
lpKeyState
[
VK_CONTROL
]
&
0x80
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment