UINT GetMenuState(HMENU hMenu, UINT id, UINT flags)
{
MENUITEMINFO info;
+ memset(&info, 0, sizeof(info));
+ info.cbSize = sizeof(info);
+ info.fMask = MIIM_STATE;
if (!GetMenuItemInfo(hMenu, id, (flags & MF_BYPOSITION) != 0, &info))
return -1;
/* XXX Submenu handling is missing... */
static int DirectXConvertKey( int i_key );
+static inline bool isMouseEvent( WPARAM type )
+{
+ return type >= WM_MOUSEFIRST &&
+ type <= WM_MOUSELAST;
+}
+
+static inline bool isKeyEvent( WPARAM type )
+{
+ return type >= WM_KEYFIRST &&
+ type <= WM_KEYLAST;
+}
+
/*****************************************************************************
* EventThread: Create video window & handle its messages
*****************************************************************************
HMODULE hkernel32;
int canc = vlc_savecancel ();
+ bool b_mouse_support = var_InheritBool( p_event->vd, "mouse-events" );
+ bool b_key_support = var_InheritBool( p_event->vd, "keyboard-events" );
+
vlc_mutex_lock( &p_event->lock );
/* Create a window for the video */
/* Creating a window under Windows also initializes the thread's event
if( b_done )
break;
+ if( !b_mouse_support && isMouseEvent( msg.message ) )
+ continue;
+
+ if( !b_key_support && isKeyEvent( msg.message ) )
+ continue;
+
/* */
switch( msg.message )
{
/* If an external window was specified, we'll draw in it. */
p_event->parent_window = vout_display_NewWindow(vd, &p_event->wnd_cfg );
if( p_event->parent_window )
- p_event->hparent = p_event->parent_window->hwnd;
+ p_event->hparent = p_event->parent_window->handle.hwnd;
else
p_event->hparent = NULL;
#ifdef MODULE_NAME_IS_direct3d
* have. Unfortunatly these dimensions will include the borders and
* titlebar. We use the following function to find out the size of
* the window corresponding to the useable surface we want */
- rect_window.top = 10;
rect_window.left = 10;
+ rect_window.top = 10;
rect_window.right = rect_window.left + p_event->wnd_cfg.width;
rect_window.bottom = rect_window.top + p_event->wnd_cfg.height;
_T("VLC DirectX"), /* name of window class */
_T(VOUT_TITLE) _T(" (DirectX Output)"), /* window title */
i_style, /* window style */
- (p_event->wnd_cfg.x < 0) ? CW_USEDEFAULT :
+ (!p_event->wnd_cfg.x) ? CW_USEDEFAULT :
(UINT)p_event->wnd_cfg.x, /* default X coordinate */
- (p_event->wnd_cfg.y < 0) ? CW_USEDEFAULT :
+ (!p_event->wnd_cfg.y) ? CW_USEDEFAULT :
(UINT)p_event->wnd_cfg.y, /* default Y coordinate */
rect_window.right - rect_window.left, /* window width */
rect_window.bottom - rect_window.top, /* window height */