summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-09-06 15:01:05 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2022-09-06 18:59:07 +0200
commita71f537c0243fd89b7bc153889fee0a65fed6726 (patch)
treeffcb54366cab774bb223bc8c803f0148642eda8d
parentaf415dc03f34cd89f9e6319971d00edb76ccba85 (diff)
Simplify SalSysObj(Child)WndProcW
Change-Id: I578410db327c98cde5e6e2a9f802e4de5b64a539 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139492 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--vcl/win/window/salobj.cxx122
1 files changed, 37 insertions, 85 deletions
diff --git a/vcl/win/window/salobj.cxx b/vcl/win/window/salobj.cxx
index e2ba3856b1de..05ad16b0d4cd 100644
--- a/vcl/win/window/salobj.cxx
+++ b/vcl/win/window/salobj.cxx
@@ -258,62 +258,52 @@ void ImplSalPostDispatchMsg( const MSG* pMsg )
pSalData->mnSalObjWantKeyEvt = 0;
}
-static LRESULT CALLBACK SalSysObjWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam, int& rDef )
+static LRESULT CALLBACK SalSysObjWndProcW(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
- WinSalObject* pSysObj;
- LRESULT nRet = 0;
-
switch( nMsg )
{
case WM_ERASEBKGND:
- nRet = 1;
- rDef = FALSE;
- break;
+ return 1;
case WM_PAINT:
{
PAINTSTRUCT aPs;
BeginPaint( hWnd, &aPs );
EndPaint( hWnd, &aPs );
- rDef = FALSE;
}
- break;
+ return 0;
case WM_PARENTNOTIFY:
- {
- UINT nNotifyMsg = LOWORD( wParam );
- if ( (nNotifyMsg == WM_LBUTTONDOWN) ||
+ if (UINT nNotifyMsg = LOWORD(wParam);
+ (nNotifyMsg == WM_LBUTTONDOWN) ||
(nNotifyMsg == WM_RBUTTONDOWN) ||
(nNotifyMsg == WM_MBUTTONDOWN) )
{
ImplSalYieldMutexAcquireWithWait();
- pSysObj = GetSalObjWindowPtr( hWnd );
+ WinSalObject* pSysObj = GetSalObjWindowPtr(hWnd);
if ( pSysObj && !pSysObj->IsMouseTransparent() )
pSysObj->CallCallback( SalObjEvent::ToTop );
ImplSalYieldMutexRelease();
}
- }
break;
case WM_MOUSEACTIVATE:
- {
ImplSalYieldMutexAcquireWithWait();
- pSysObj = GetSalObjWindowPtr( hWnd );
- if ( pSysObj && !pSysObj->IsMouseTransparent() )
+ if (WinSalObject* pSysObj = GetSalObjWindowPtr(hWnd);
+ pSysObj && !pSysObj->IsMouseTransparent())
{
bool const ret = PostMessageW( hWnd, SALOBJ_MSG_TOTOP, 0, 0 );
SAL_WARN_IF(!ret, "vcl", "ERROR: PostMessage() failed!");
}
ImplSalYieldMutexRelease();
- }
break;
case SALOBJ_MSG_TOTOP:
if ( ImplSalYieldMutexTryToAcquire() )
{
- pSysObj = GetSalObjWindowPtr( hWnd );
- pSysObj->CallCallback( SalObjEvent::ToTop );
+ if (WinSalObject* pSysObj = GetSalObjWindowPtr(hWnd))
+ pSysObj->CallCallback(SalObjEvent::ToTop);
ImplSalYieldMutexRelease();
- rDef = FALSE;
+ return 0;
}
else
{
@@ -325,7 +315,7 @@ static LRESULT CALLBACK SalSysObjWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, L
case SALOBJ_MSG_POSTFOCUS:
if ( ImplSalYieldMutexTryToAcquire() )
{
- pSysObj = GetSalObjWindowPtr( hWnd );
+ WinSalObject* pSysObj = GetSalObjWindowPtr(hWnd);
HWND hFocusWnd = ::GetFocus();
SalObjEvent nEvent;
if ( hFocusWnd && ImplIsSysWindowOrChild( hWnd, hFocusWnd ) )
@@ -340,67 +330,44 @@ static LRESULT CALLBACK SalSysObjWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, L
bool const ret = PostMessageW(hWnd, SALOBJ_MSG_POSTFOCUS, 0, 0);
SAL_WARN_IF(!ret, "vcl", "ERROR: PostMessage() failed!");
}
- rDef = FALSE;
- break;
+ return 0;
case WM_SIZE:
- {
- HWND hWndChild = GetWindow( hWnd, GW_CHILD );
- if ( hWndChild )
+ if (HWND hWndChild = GetWindow(hWnd, GW_CHILD))
{
SetWindowPos( hWndChild,
nullptr, 0, 0, static_cast<int>(LOWORD( lParam )), static_cast<int>(HIWORD( lParam )),
SWP_NOZORDER | SWP_NOACTIVATE );
}
- }
- rDef = FALSE;
- break;
+ return 0;
case WM_CREATE:
{
// Save the window instance at the window handle.
- // Can also be used for the A-Version, because the struct
- // to access lpCreateParams is the same structure
CREATESTRUCTW* pStruct = reinterpret_cast<CREATESTRUCTW*>(lParam);
- pSysObj = static_cast<WinSalObject*>(pStruct->lpCreateParams);
+ WinSalObject* pSysObj = static_cast<WinSalObject*>(pStruct->lpCreateParams);
SetSalObjWindowPtr( hWnd, pSysObj );
// set HWND already here,
// as instance data might be used during CreateWindow() events
pSysObj->mhWnd = hWnd;
- rDef = FALSE;
+ return 0;
}
- break;
}
- return nRet;
-}
-
-static LRESULT CALLBACK SalSysObjWndProcW( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam )
-{
- int bDef = TRUE;
- LRESULT nRet = SalSysObjWndProc( hWnd, nMsg, wParam, lParam, bDef );
- if ( bDef )
- nRet = DefWindowProcW( hWnd, nMsg, wParam, lParam );
- return nRet;
+ return DefWindowProcW(hWnd, nMsg, wParam, lParam);
}
-static LRESULT CALLBACK SalSysObjChildWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam, int& rDef )
+static LRESULT CALLBACK SalSysObjChildWndProcW(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
- LRESULT nRet = 0;
-
switch( nMsg )
{
// clear background for plugins
case WM_ERASEBKGND:
+ if (WinSalObject* pSysObj = GetSalObjWindowPtr(GetParent(hWnd));
+ pSysObj && !pSysObj->IsEraseBackgroundEnabled())
{
- WinSalObject* pSysObj = GetSalObjWindowPtr( ::GetParent( hWnd ) );
-
- if( pSysObj && !pSysObj->IsEraseBackgroundEnabled() )
- {
- // do not erase background
- nRet = 1;
- rDef = FALSE;
- }
+ // do not erase background
+ return 1;
}
break;
@@ -409,9 +376,8 @@ static LRESULT CALLBACK SalSysObjChildWndProc( HWND hWnd, UINT nMsg, WPARAM wPar
PAINTSTRUCT aPs;
BeginPaint( hWnd, &aPs );
EndPaint( hWnd, &aPs );
- rDef = FALSE;
}
- break;
+ return 0;
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
@@ -420,39 +386,25 @@ static LRESULT CALLBACK SalSysObjChildWndProc( HWND hWnd, UINT nMsg, WPARAM wPar
case WM_LBUTTONUP:
case WM_MBUTTONUP:
case WM_RBUTTONUP:
+ if (WinSalObject* pSysObj = GetSalObjWindowPtr(GetParent(hWnd));
+ pSysObj && pSysObj->IsMouseTransparent())
{
- WinSalObject* pSysObj;
- pSysObj = GetSalObjWindowPtr( ::GetParent( hWnd ) );
+ // forward mouse events to parent frame
+ HWND hWndParent = GetParent(pSysObj->mhWnd);
- if( pSysObj && pSysObj->IsMouseTransparent() )
- {
- // forward mouse events to parent frame
- HWND hWndParent = ::GetParent( pSysObj->mhWnd );
-
- // transform coordinates
- POINT pt;
- pt.x = static_cast<tools::Long>(LOWORD( lParam ));
- pt.y = static_cast<tools::Long>(HIWORD( lParam ));
- MapWindowPoints( hWnd, hWndParent, &pt, 1 );
- lParam = MAKELPARAM( static_cast<WORD>(pt.x), static_cast<WORD>(pt.y) );
-
- nRet = SendMessageW( hWndParent, nMsg, wParam, lParam );
- rDef = FALSE;
- }
+ // transform coordinates
+ POINT pt;
+ pt.x = static_cast<tools::Long>(LOWORD(lParam));
+ pt.y = static_cast<tools::Long>(HIWORD(lParam));
+ MapWindowPoints(hWnd, hWndParent, &pt, 1);
+ lParam = MAKELPARAM(static_cast<WORD>(pt.x), static_cast<WORD>(pt.y));
+
+ return SendMessageW(hWndParent, nMsg, wParam, lParam);
}
break;
}
- return nRet;
-}
-
-static LRESULT CALLBACK SalSysObjChildWndProcW( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam )
-{
- int bDef = TRUE;
- LRESULT nRet = SalSysObjChildWndProc( hWnd, nMsg, wParam, lParam, bDef );
- if ( bDef )
- nRet = DefWindowProcW( hWnd, nMsg, wParam, lParam );
- return nRet;
+ return DefWindowProcW(hWnd, nMsg, wParam, lParam);
}
SalObject* ImplSalCreateObject( WinSalInstance* pInst, WinSalFrame* pParent )