Module: wine Branch: master Commit: 225482f5ad3055d0d1ea7a68013d5d547d2c6a82 URL: http://source.winehq.org/git/wine.git/?a=commit;h=225482f5ad3055d0d1ea7a6801...
Author: Ken Thomases ken@codeweavers.com Date: Thu May 12 18:50:44 2016 -0500
winemac: Make show_window() and hide_window() tolerate being called when there's no Cocoa window.
Minor no-op refactoring that makes subsequent commits cleaner.
Signed-off-by: Ken Thomases ken@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winemac.drv/window.c | 74 +++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 35 deletions(-)
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c index a48ac17..bb82927 100644 --- a/dlls/winemac.drv/window.c +++ b/dlls/winemac.drv/window.c @@ -731,40 +731,43 @@ static struct macdrv_win_data *macdrv_create_win_data(HWND hwnd, const RECT *win */ static void show_window(struct macdrv_win_data *data) { - HWND prev = NULL; - HWND next = NULL; - macdrv_window prev_window = NULL; - macdrv_window next_window = NULL; - BOOL activate = FALSE; - HWND hwndFocus; - - /* find window that this one must be after */ - prev = GetWindow(data->hwnd, GW_HWNDPREV); - while (prev && !((GetWindowLongW(prev, GWL_STYLE) & (WS_VISIBLE | WS_MINIMIZE)) == WS_VISIBLE && - (prev_window = macdrv_get_cocoa_window(prev, TRUE)))) - prev = GetWindow(prev, GW_HWNDPREV); - if (!prev_window) - { - /* find window that this one must be before */ - next = GetWindow(data->hwnd, GW_HWNDNEXT); - while (next && !((GetWindowLongW(next, GWL_STYLE) & (WS_VISIBLE | WS_MINIMIZE)) == WS_VISIBLE && - (next_window = macdrv_get_cocoa_window(next, TRUE)))) - next = GetWindow(next, GW_HWNDNEXT); - } - - TRACE("win %p/%p below %p/%p above %p/%p\n", - data->hwnd, data->cocoa_window, prev, prev_window, next, next_window); - - if (!prev_window) - activate = activate_on_focus_time && (GetTickCount() - activate_on_focus_time < 2000); - macdrv_order_cocoa_window(data->cocoa_window, prev_window, next_window, activate); - data->on_screen = TRUE; - - hwndFocus = GetFocus(); - if (hwndFocus && (data->hwnd == hwndFocus || IsChild(data->hwnd, hwndFocus))) - macdrv_SetFocus(hwndFocus); - if (activate) - activate_on_focus_time = 0; + if (data->cocoa_window) + { + HWND prev = NULL; + HWND next = NULL; + macdrv_window prev_window = NULL; + macdrv_window next_window = NULL; + BOOL activate = FALSE; + HWND hwndFocus; + + /* find window that this one must be after */ + prev = GetWindow(data->hwnd, GW_HWNDPREV); + while (prev && !((GetWindowLongW(prev, GWL_STYLE) & (WS_VISIBLE | WS_MINIMIZE)) == WS_VISIBLE && + (prev_window = macdrv_get_cocoa_window(prev, TRUE)))) + prev = GetWindow(prev, GW_HWNDPREV); + if (!prev_window) + { + /* find window that this one must be before */ + next = GetWindow(data->hwnd, GW_HWNDNEXT); + while (next && !((GetWindowLongW(next, GWL_STYLE) & (WS_VISIBLE | WS_MINIMIZE)) == WS_VISIBLE && + (next_window = macdrv_get_cocoa_window(next, TRUE)))) + next = GetWindow(next, GW_HWNDNEXT); + } + + TRACE("win %p/%p below %p/%p above %p/%p\n", + data->hwnd, data->cocoa_window, prev, prev_window, next, next_window); + + if (!prev_window) + activate = activate_on_focus_time && (GetTickCount() - activate_on_focus_time < 2000); + macdrv_order_cocoa_window(data->cocoa_window, prev_window, next_window, activate); + data->on_screen = TRUE; + + hwndFocus = GetFocus(); + if (hwndFocus && (data->hwnd == hwndFocus || IsChild(data->hwnd, hwndFocus))) + macdrv_SetFocus(hwndFocus); + if (activate) + activate_on_focus_time = 0; + } }
@@ -775,7 +778,8 @@ static void hide_window(struct macdrv_win_data *data) { TRACE("win %p/%p\n", data->hwnd, data->cocoa_window);
- macdrv_hide_cocoa_window(data->cocoa_window); + if (data->cocoa_window) + macdrv_hide_cocoa_window(data->cocoa_window); data->on_screen = FALSE; }