vlc | branch: master | Steve Lhomme <[email protected]> | Thu Mar 28 10:13:33 2019 +0100| [04be01c8d01206a1318ebc0c864d472fd8a4f9a3] | committer: Steve Lhomme
vout:win32: don't use the window if we can't store the opaque struct in it Some messages still come before WM_CREATE so we need to call DefWindowProc for them. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=04be01c8d01206a1318ebc0c864d472fd8a4f9a3 --- modules/video_output/win32/events.c | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/modules/video_output/win32/events.c b/modules/video_output/win32/events.c index 303f843f35..fb99befa56 100644 --- a/modules/video_output/win32/events.c +++ b/modules/video_output/win32/events.c @@ -886,35 +886,19 @@ static void SetAbove( event_thread_t *p_event, bool is_on_top ) static long FAR PASCAL WinVoutEventProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { - event_thread_t *p_event; - if( message == WM_CREATE ) { - /* Store vd for future use */ - p_event = (event_thread_t *)((CREATESTRUCT *)lParam)->lpCreateParams; - SetWindowLongPtr( hwnd, GWLP_USERDATA, (LONG_PTR)p_event ); - return TRUE; - } - else - { - LONG_PTR p_user_data = GetWindowLongPtr( hwnd, GWLP_USERDATA ); - p_event = (event_thread_t *)p_user_data; - if( !p_event ) - { - /* Hmmm mozilla does manage somehow to save the pointer to our - * windowproc and still calls it after the vout has been closed. */ - return DefWindowProc(hwnd, message, wParam, lParam); - } + /* Store p_event for future use */ + CREATESTRUCT *c = (CREATESTRUCT *)lParam; + SetWindowLongPtr( hwnd, GWLP_USERDATA, (LONG_PTR)c->lpCreateParams ); + return 0; } -#if 0 - if( message == WM_SETCURSOR ) - { - msg_Err(p_event->obj, "WM_SETCURSOR: %d (t2)", p_event->is_cursor_hidden); - SetCursor( p_event->is_cursor_hidden ? p_event->cursor_empty : p_event->cursor_arrow ); - return 1; - } -#endif + LONG_PTR p_user_data = GetWindowLongPtr( hwnd, GWLP_USERDATA ); + if( p_user_data == 0 ) /* messages before WM_CREATE */ + return DefWindowProc(hwnd, message, wParam, lParam); + event_thread_t *p_event = (event_thread_t *)p_user_data; + if( message == WM_CAPTURECHANGED ) { for( int button = 0; p_event->button_pressed; button++ ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
