Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
60b996ad
Commit
60b996ad
authored
Aug 27, 2015
by
Piotr Caban
Committed by
Alexandre Julliard
Aug 28, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
imm32: Don't use functions that use graphics driver in THREAD_DETACH/PROCESS_DETACH.
parent
72922cd1
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
1 deletion
+24
-1
imm.c
dlls/imm32/imm.c
+0
-1
imm32.c
dlls/imm32/tests/imm32.c
+24
-0
No files found.
dlls/imm32/imm.c
View file @
60b996ad
...
...
@@ -270,7 +270,6 @@ static void IMM_FreeThreadData(void)
list_remove
(
&
data
->
entry
);
LeaveCriticalSection
(
&
threaddata_cs
);
IMM_DestroyContext
(
data
->
defaultContext
);
DestroyWindow
(
data
->
hwndDefault
);
HeapFree
(
GetProcessHeap
(),
0
,
data
);
TRACE
(
"Thread Data Destroyed
\n
"
);
return
;
...
...
dlls/imm32/tests/imm32.c
View file @
60b996ad
...
...
@@ -782,10 +782,29 @@ static void test_ImmGetDescription(void)
UnloadKeyboardLayout
(
hkl
);
}
static
LRESULT
(
WINAPI
*
old_imm_wnd_proc
)(
HWND
,
UINT
,
WPARAM
,
LPARAM
);
static
LRESULT
WINAPI
imm_wnd_proc
(
HWND
hwnd
,
UINT
msg
,
WPARAM
wparam
,
LPARAM
lparam
)
{
ok
(
msg
!=
WM_DESTROY
,
"got WM_DESTROY message
\n
"
);
return
old_imm_wnd_proc
(
hwnd
,
msg
,
wparam
,
lparam
);
}
static
HWND
thread_ime_wnd
;
static
DWORD
WINAPI
test_ImmGetDefaultIMEWnd_thread
(
void
*
arg
)
{
CreateWindowA
(
"static"
,
"static"
,
WS_POPUP
,
0
,
0
,
1
,
1
,
NULL
,
NULL
,
NULL
,
NULL
);
thread_ime_wnd
=
ImmGetDefaultIMEWnd
(
0
);
ok
(
thread_ime_wnd
!=
0
,
"ImmGetDefaultIMEWnd returned NULL
\n
"
);
old_imm_wnd_proc
=
(
void
*
)
SetWindowLongPtrW
(
thread_ime_wnd
,
GWLP_WNDPROC
,
(
LONG_PTR
)
imm_wnd_proc
);
return
0
;
}
static
void
test_ImmDefaultHwnd
(
void
)
{
HIMC
imc1
,
imc2
,
imc3
;
HWND
def1
,
def3
;
HANDLE
thread
;
HWND
hwnd
;
hwnd
=
CreateWindowExA
(
WS_EX_CLIENTEDGE
,
"EDIT"
,
"Wine imm32.dll test"
,
...
...
@@ -813,6 +832,11 @@ static void test_ImmDefaultHwnd(void)
ok
(
imc1
==
imc3
,
"IME context should not change
\n
"
);
ImmSetOpenStatus
(
imc2
,
FALSE
);
thread
=
CreateThread
(
NULL
,
0
,
test_ImmGetDefaultIMEWnd_thread
,
NULL
,
0
,
NULL
);
WaitForSingleObject
(
thread
,
INFINITE
);
ok
(
thread_ime_wnd
!=
def1
,
"thread_ime_wnd == def1
\n
"
);
ok
(
!
IsWindow
(
thread_ime_wnd
),
"thread_ime_wnd was not destroyed
\n
"
);
ImmReleaseContext
(
hwnd
,
imc1
);
ImmReleaseContext
(
hwnd
,
imc3
);
ImmDestroyContext
(
imc2
);
...
...
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