Alexandre Julliard : user32: Correctly handle mouse events on a size grip scrollbar.
Alexandre Julliard
julliard at winehq.org
Tue Oct 12 11:26:58 CDT 2010
Module: wine
Branch: master
Commit: 90ba8ceb07645632318cd11e9ba03d9603056fa1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=90ba8ceb07645632318cd11e9ba03d9603056fa1
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Oct 12 11:43:21 2010 +0200
user32: Correctly handle mouse events on a size grip scrollbar.
---
dlls/user32/scroll.c | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/scroll.c b/dlls/user32/scroll.c
index 7e02a42..fd73bf4 100644
--- a/dlls/user32/scroll.c
+++ b/dlls/user32/scroll.c
@@ -1426,6 +1426,13 @@ LRESULT ScrollBarWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:
+ if (GetWindowLongW( hwnd, GWL_STYLE ) & SBS_SIZEGRIP)
+ {
+ SendMessageW( GetParent(hwnd), WM_SYSCOMMAND,
+ SC_SIZE + ((GetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_LAYOUTRTL) ?
+ WMSZ_BOTTOMLEFT : WMSZ_BOTTOMRIGHT), lParam );
+ }
+ else
{
POINT pt;
pt.x = (short)LOWORD(lParam);
@@ -1519,6 +1526,14 @@ LRESULT ScrollBarWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM
}
break;
+ case WM_SETCURSOR:
+ if (GetWindowLongW( hwnd, GWL_STYLE ) & SBS_SIZEGRIP)
+ {
+ ULONG_PTR cursor = (GetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_LAYOUTRTL) ? IDC_SIZENESW : IDC_SIZENWSE;
+ return (LRESULT)SetCursor( LoadCursorA( 0, (LPSTR)cursor ));
+ }
+ return DefWindowProcW( hwnd, message, wParam, lParam );
+
case SBM_SETPOS:
return SetScrollPos( hwnd, SB_CTL, wParam, (BOOL)lParam );
More information about the wine-cvs
mailing list