Module: wine Branch: master Commit: c339d7214c2a86592c01a3b4932d498acb237417 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c339d7214c2a86592c01a3b493...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Jun 8 10:08:15 2017 +0200
wineandroid: Properly clean up windows that aren't destroyed explicitly.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wineandroid.drv/WineActivity.java | 2 ++ dlls/wineandroid.drv/window.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/wineandroid.drv/WineActivity.java b/dlls/wineandroid.drv/WineActivity.java index f12de98..428e79c 100644 --- a/dlls/wineandroid.drv/WineActivity.java +++ b/dlls/wineandroid.drv/WineActivity.java @@ -314,7 +314,9 @@ public class WineActivity extends Activity public void destroy() { Log.i( LOGTAG, String.format( "destroy hwnd %08x", hwnd )); + if (visible && window_view != null) top_view.removeView( window_view ); visible = false; + window_view = null; win_map.remove( this ); }
diff --git a/dlls/wineandroid.drv/window.c b/dlls/wineandroid.drv/window.c index e3fd865..a663505 100644 --- a/dlls/wineandroid.drv/window.c +++ b/dlls/wineandroid.drv/window.c @@ -828,8 +828,6 @@ BOOL CDECL ANDROID_CreateWindow( HWND hwnd )
init_event_queue(); start_android_device(); - desktop_orig_wndproc = (WNDPROC)SetWindowLongPtrW( hwnd, GWLP_WNDPROC, - (LONG_PTR)desktop_wndproc_wrapper ); if (!(data = alloc_win_data( hwnd ))) return FALSE; release_win_data( data ); } @@ -1214,6 +1212,9 @@ LRESULT CDECL ANDROID_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) */ BOOL CDECL ANDROID_create_desktop( UINT width, UINT height ) { + desktop_orig_wndproc = (WNDPROC)SetWindowLongPtrW( GetDesktopWindow(), GWLP_WNDPROC, + (LONG_PTR)desktop_wndproc_wrapper ); + /* wait until we receive the surface changed event */ while (!screen_width) {