On 23.08.2016 15:13, Akihiro Sagawa wrote:
Try 9:
- Withdraw try 8 changes as we have ImmDisableIME now.
- Rebased and resolve conflicts against ImmDisableIME patch.
Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com
dlls/imm32/imm.c | 99 +++++++++++++++++++++++++++++++++++----------- dlls/imm32/imm32.spec | 1 + dlls/imm32/tests/imm32.c | 12 +++--- dlls/user32/misc.c | 4 +- dlls/user32/user_private.h | 1 + dlls/user32/win.c | 26 ++++++++++++ dlls/user32/win.h | 1 + 7 files changed, 113 insertions(+), 31 deletions(-)
This patch broke various user32 tests in virtual desktop mode, for example:
$ (cd dlls/user32/tests/; make broadcast.ok) ../../../tools/runtest -q -P wine -T ../../.. -M user32.dll -p user32_test.exe.so broadcast && touch broadcast.ok broadcast.c:174: Test failed: Asynchronous message sent instead broadcast.c:152: Test failed: Returned: 0 broadcast.c:153: Test failed: Asynchronous message sent instead broadcast.c:174: Test failed: Asynchronous message sent instead broadcast.c:238: Test failed: Returned: 0 broadcast.c:239: Test failed: Asynchronous message sent instead broadcast.c:257: Test failed: Asynchronous message sent instead broadcast.c:238: Test failed: Returned: 0 broadcast.c:239: Test failed: Asynchronous message sent instead broadcast.c:257: Test failed: Asynchronous message sent instead broadcast.c:298: Test failed: Returned: 0 error 1460 broadcast.c:299: Test failed: Asynchronous message sent instead broadcast.c:309: Test failed: Returned: 0 error 1460 broadcast.c:310: Test failed: Asynchronous message sent instead broadcast.c:320: Test failed: Returned: 0 error 1460 broadcast.c:321: Test failed: Asynchronous message sent instead broadcast.c:332: Test failed: Asynchronous message sent instead make: *** [Makefile:197: broadcast.ok] Fehler 17
Could you please take a look?
On Tue, 30 Aug 2016 21:48:49 +0200, Sebastian Lackner wrote:
This patch broke various user32 tests in virtual desktop mode, for example:
$ (cd dlls/user32/tests/; make broadcast.ok) ../../../tools/runtest -q -P wine -T ../../.. -M user32.dll -p user32_test.exe.so broadcast && touch broadcast.ok
(snip)
make: *** [Makefile:197: broadcast.ok] Fehler 17
Could you please take a look?
Sure. I'll take a look. Thanks for report.
Akihiro Sagawa
On 31.08.2016 12:49, Akihiro Sagawa wrote:
On Tue, 30 Aug 2016 21:48:49 +0200, Sebastian Lackner wrote:
This patch broke various user32 tests in virtual desktop mode, for example:
$ (cd dlls/user32/tests/; make broadcast.ok) ../../../tools/runtest -q -P wine -T ../../.. -M user32.dll -p user32_test.exe.so broadcast && touch broadcast.ok
(snip)
make: *** [Makefile:197: broadcast.ok] Fehler 17
Could you please take a look?
Sure. I'll take a look. Thanks for report.
Akihiro Sagawa
Just to let you know, in the meantime I have tracked down what is causing the test failure (but I am not yet sure how to fix it). Starting with your change, we are also creating IME windows for "OleMainThreadWndClass" windows. In this particular case, the watch_desktop_folders thread created by explorer.exe is causing the trouble. The thread does not have any message loop which is blocking broadcast messages.
Should we filter this case in imm32.needs_ime_window?
On 02.09.2016 05:35, Sebastian Lackner wrote:
On 31.08.2016 12:49, Akihiro Sagawa wrote:
On Tue, 30 Aug 2016 21:48:49 +0200, Sebastian Lackner wrote:
This patch broke various user32 tests in virtual desktop mode, for example:
$ (cd dlls/user32/tests/; make broadcast.ok) ../../../tools/runtest -q -P wine -T ../../.. -M user32.dll -p user32_test.exe.so broadcast && touch broadcast.ok
(snip)
make: *** [Makefile:197: broadcast.ok] Fehler 17
Could you please take a look?
Sure. I'll take a look. Thanks for report.
Akihiro Sagawa
Just to let you know, in the meantime I have tracked down what is causing the test failure (but I am not yet sure how to fix it). Starting with your change, we are also creating IME windows for "OleMainThreadWndClass" windows. In this particular case, the watch_desktop_folders thread created by explorer.exe is causing the trouble. The thread does not have any message loop which is blocking broadcast messages.
Should we filter this case in imm32.needs_ime_window?
Actually we should probably skip creation for all windows with HWND_MESSAGE parent. Nevertheless, I will leave a fix to someone more familiar. ;)
Regards, Sebastian
On Fri, 2 Sep 2016 05:41:48 +0200, Sebastian Lackner wrote:
Just to let you know, in the meantime I have tracked down what is causing the test failure (but I am not yet sure how to fix it). Starting with your change, we are also creating IME windows for "OleMainThreadWndClass" windows. In this particular case, the watch_desktop_folders thread created by explorer.exe is causing the trouble. The thread does not have any message loop which is blocking broadcast messages.
Should we filter this case in imm32.needs_ime_window?
Actually we should probably skip creation for all windows with HWND_MESSAGE parent. Nevertheless, I will leave a fix to someone more familiar. ;)
Great! I verified that the default IME window isn't created for message-only window (= a window created with HWND_MESSAGE parent). I'm preparing tests now.
Thanks a lot, Akihiro Sagawa