48 |
RECT g_block_move SHARED = { 0, 0, 0, 0 }; |
RECT g_block_move SHARED = { 0, 0, 0, 0 }; |
49 |
HWND g_blocked_zchange[2] SHARED = { NULL, NULL }; |
HWND g_blocked_zchange[2] SHARED = { NULL, NULL }; |
50 |
HWND g_blocked_focus SHARED = NULL; |
HWND g_blocked_focus SHARED = NULL; |
51 |
|
int g_blocked_state SHARED = -1; |
52 |
|
|
53 |
#pragma data_seg () |
#pragma data_seg () |
54 |
|
|
125 |
|
|
126 |
switch (msg) |
switch (msg) |
127 |
{ |
{ |
|
|
|
128 |
case WM_WINDOWPOSCHANGED: |
case WM_WINDOWPOSCHANGED: |
129 |
{ |
{ |
130 |
WINDOWPOS *wp = (WINDOWPOS *) lparam; |
WINDOWPOS *wp = (WINDOWPOS *) lparam; |
284 |
{ |
{ |
285 |
case HCBT_MINMAX: |
case HCBT_MINMAX: |
286 |
{ |
{ |
287 |
int show, state; |
int show, state, blocked; |
288 |
|
|
289 |
|
WaitForSingleObject(g_mutex, INFINITE); |
290 |
|
blocked = g_blocked_state; |
291 |
|
ReleaseMutex(g_mutex); |
292 |
|
|
293 |
show = LOWORD(lparam); |
show = LOWORD(lparam); |
294 |
|
|
304 |
debug("Unexpected show: %d", show); |
debug("Unexpected show: %d", show); |
305 |
break; |
break; |
306 |
} |
} |
307 |
vchannel_write("STATE,0x%p,0x%x,0x%x", (HWND) wparam, state, 0); |
|
308 |
|
if (blocked != state) |
309 |
|
vchannel_write("STATE,0x%p,0x%x,0x%x", (HWND) wparam, state, |
310 |
|
0); |
311 |
|
|
312 |
break; |
break; |
313 |
} |
} |
314 |
|
|
397 |
ReleaseMutex(g_mutex); |
ReleaseMutex(g_mutex); |
398 |
} |
} |
399 |
|
|
400 |
|
DLL_EXPORT void |
401 |
|
SafeSetState(HWND hwnd, int state) |
402 |
|
{ |
403 |
|
WaitForSingleObject(g_mutex, INFINITE); |
404 |
|
g_blocked_state = state; |
405 |
|
ReleaseMutex(g_mutex); |
406 |
|
|
407 |
|
if (state == 0) |
408 |
|
ShowWindow(hwnd, SW_RESTORE); |
409 |
|
else if (state == 1) |
410 |
|
ShowWindow(hwnd, SW_MINIMIZE); |
411 |
|
else if (state == 2) |
412 |
|
ShowWindow(hwnd, SW_MAXIMIZE); |
413 |
|
else |
414 |
|
debug("Invalid state %d sent.", state); |
415 |
|
|
416 |
|
WaitForSingleObject(g_mutex, INFINITE); |
417 |
|
g_blocked_state = -1; |
418 |
|
ReleaseMutex(g_mutex); |
419 |
|
} |
420 |
|
|
421 |
DLL_EXPORT int |
DLL_EXPORT int |
422 |
GetInstanceCount() |
GetInstanceCount() |
423 |
{ |
{ |