]> git.sesse.net Git - vlc/commitdiff
oleobject.cpp: fixed order of notifications for buggy containers like Delphi, added...
authorDamien Fouilleul <damienf@videolan.org>
Fri, 11 Nov 2005 16:28:01 +0000 (16:28 +0000)
committerDamien Fouilleul <damienf@videolan.org>
Fri, 11 Nov 2005 16:28:01 +0000 (16:28 +0000)
plugin.cpp: set configuration width/height when resizing control

activex/oleobject.cpp
activex/plugin.cpp

index 0c95bd5795f86966647746d76378a271d83dd4ea..f376dec033343216e5650e5ecad4bcaf840bbf7b 100644 (file)
@@ -142,6 +142,12 @@ HRESULT VLCOleObject::doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite
         {
             return OLEOBJ_S_INVALIDHWND;
         }
+        else if( NULL == lprcPosRect )
+        {
+            SetRect(&posRect, 0, 0, 0, 0);
+            lprcPosRect = &posRect;
+            lprcClipRect = &posRect;
+        }
 
         if( FAILED(_p_instance->onActivateInPlace(lpMsg, hwndParent, lprcPosRect, lprcClipRect)) )
         {
@@ -150,18 +156,16 @@ HRESULT VLCOleObject::doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite
             return OLEOBJ_S_CANNOT_DOVERB_NOW;
         }
 
-        if( NULL != p_inPlaceSite )
-            p_inPlaceSite->OnPosRectChange(lprcPosRect);
-
-        pActiveSite->ShowObject();
-        _p_instance->setVisible(TRUE);
-
         if( NULL != p_inPlaceSite )
         {
             p_inPlaceSite->OnInPlaceActivate();
+            p_inPlaceSite->OnPosRectChange(lprcPosRect);
             p_inPlaceSite->Release();
         }
 
+        pActiveSite->ShowObject();
+        _p_instance->setVisible(TRUE);
+
         if( NULL != lpMsg )
         {
             switch( lpMsg->message )
@@ -331,6 +335,7 @@ STDMETHODIMP VLCOleObject::SetExtent(DWORD dwDrawAspect, SIZEL *pSizel)
     if( NULL == pSizel )
         return E_POINTER;
 
+
     if( dwDrawAspect & DVASPECT_CONTENT )
     {
         _p_instance->setExtent(*pSizel);
index 0cc3a7e336b209c0a9d22c7e2a4c0bbe3f81c2a6..9cf355dce8bbfd905b852e93e5695f2aa8f624ca 100644 (file)
@@ -984,9 +984,9 @@ void VLCPlugin::onPositionChange(LPCRECT lprcPosRect, LPCRECT lprcClipRect)
     //RedrawWindow(_videownd, &posRect, NULL, RDW_INVALIDATE|RDW_ERASE|RDW_ALLCHILDREN);
     vlc_value_t val;
     val.i_int = posRect.right-posRect.left;
-    VLC_VariableSet(_i_vlc, "width", val);
+    VLC_VariableSet(_i_vlc, "conf::width", val);
     val.i_int = posRect.bottom-posRect.top;
-    VLC_VariableSet(_i_vlc, "height", val);
+    VLC_VariableSet(_i_vlc, "conf::height", val);
 };
 
 void VLCPlugin::freezeEvents(BOOL freeze)