Module: wine Branch: master Commit: 10d825aaa3d1fcb4ec596a194200a3b913390055 URL: http://source.winehq.org/git/wine.git/?a=commit;h=10d825aaa3d1fcb4ec596a1942...
Author: Detlef Riekenberg wine.dev@web.de Date: Sun Feb 18 17:14:39 2007 +0100
regedit: Enable WM_RBUTTONDOWN to set the splitbar.
---
programs/regedit/childwnd.c | 34 +++++++++++++++++++++++----------- 1 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/programs/regedit/childwnd.c b/programs/regedit/childwnd.c index 6a56e82..659bc73 100644 --- a/programs/regedit/childwnd.c +++ b/programs/regedit/childwnd.c @@ -30,8 +30,9 @@ #include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(regedit); - + ChildWnd* g_pChildWnd; +static int last_split;
/******************************************************************************* * Local module support methods @@ -162,6 +163,24 @@ static void OnTreeSelectionChanged(HWND hwndTV, HWND hwndLV, HTREEITEM hItem, BO }
/******************************************************************************* + * finish_splitbar [internal] + * + * make the splitbar invisible and resize the windows + * (helper for ChildWndProc) + */ +static void finish_splitbar(HWND hWnd, int x) +{ + RECT rt; + + draw_splitbar(hWnd, last_split); + last_split = -1; + GetClientRect(hWnd, &rt); + g_pChildWnd->nSplitPos = x; + ResizeWnd(rt.right, rt.bottom); + ReleaseCapture(); +} + +/******************************************************************************* * * FUNCTION: _CmdWndProc(HWND, unsigned, WORD, LONG) * @@ -203,8 +222,6 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) */ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - static int last_split; - switch (message) { case WM_CREATE: g_pChildWnd = HeapAlloc(GetProcessHeap(), 0, sizeof(ChildWnd)); @@ -253,16 +270,11 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa break; }
+ /* WM_RBUTTONDOWN sets the splitbar the same way as WM_LBUTTONUP */ case WM_LBUTTONUP: + case WM_RBUTTONDOWN: if (GetCapture() == hWnd) { - RECT rt; - int x = LOWORD(lParam); - draw_splitbar(hWnd, last_split); - last_split = -1; - GetClientRect(hWnd, &rt); - g_pChildWnd->nSplitPos = x; - ResizeWnd(rt.right, rt.bottom); - ReleaseCapture(); + finish_splitbar(hWnd, LOWORD(lParam)); } break;