mirror of
https://github.com/reactos/reactos.git
synced 2025-06-01 23:48:12 +00:00
[NTUSER] Check IME-like after WNDS_DESTROYED check (#5005)
The guilty commit a2c6af0
enabled the IMM mode. So we have to take care of the default IME windows.
Using IS_WND_IMELIKE against WNDS_DESTROYED window was the cause of BSoD. CORE-18777
This commit is contained in:
parent
1321c802fc
commit
d992c07239
1 changed files with 4 additions and 3 deletions
|
@ -2953,7 +2953,7 @@ BOOLEAN co_UserDestroyWindow(PVOID Object)
|
||||||
* Check if this window is the Shell's Desktop Window. If so set hShellWindow to NULL
|
* Check if this window is the Shell's Desktop Window. If so set hShellWindow to NULL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((ti != NULL) && (ti->pDeskInfo != NULL))
|
if (ti->pDeskInfo != NULL)
|
||||||
{
|
{
|
||||||
if (ti->pDeskInfo->hShellWindow == hWnd)
|
if (ti->pDeskInfo->hShellWindow == hWnd)
|
||||||
{
|
{
|
||||||
|
@ -2987,9 +2987,10 @@ BOOLEAN co_UserDestroyWindow(PVOID Object)
|
||||||
/* Send destroy messages */
|
/* Send destroy messages */
|
||||||
IntSendDestroyMsg(UserHMGetHandle(Window));
|
IntSendDestroyMsg(UserHMGetHandle(Window));
|
||||||
|
|
||||||
// Destroy the default IME window if necessary
|
/* Destroy the default IME window if necessary */
|
||||||
if (IS_IMM_MODE() && !(ti->TIF_flags & TIF_INCLEANUP) &&
|
if (IS_IMM_MODE() && !(ti->TIF_flags & TIF_INCLEANUP) &&
|
||||||
ti->spwndDefaultIme && !IS_WND_IMELIKE(Window) && !(Window->state & WNDS_DESTROYED))
|
ti->spwndDefaultIme && (ti->spwndDefaultIme != Window) &&
|
||||||
|
!(Window->state & WNDS_DESTROYED) && !IS_WND_IMELIKE(Window))
|
||||||
{
|
{
|
||||||
if (IS_WND_CHILD(Window))
|
if (IS_WND_CHILD(Window))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue