Fixed incorrect edit control behaviour in mouse message handling.

This commit is contained in:
Abey George 1999-07-27 17:08:26 +00:00 committed by Alexandre Julliard
parent 9849f1642a
commit 6e013e5c24
1 changed files with 4 additions and 1 deletions

View File

@ -95,6 +95,7 @@ typedef struct
EDITWORDBREAKPROCA word_break_proc32A; EDITWORDBREAKPROCA word_break_proc32A;
INT line_count; /* number of lines */ INT line_count; /* number of lines */
INT y_offset; /* scroll offset in number of lines */ INT y_offset; /* scroll offset in number of lines */
BOOL bCaptureState; /* flag indicating whether mouse was captured */
/* /*
* only for multi line controls * only for multi line controls
*/ */
@ -3487,6 +3488,7 @@ static LRESULT EDIT_WM_LButtonDown(WND *wnd, EDITSTATE *es, DWORD keys, INT x, I
if (!(es->flags & EF_FOCUSED)) if (!(es->flags & EF_FOCUSED))
return 0; return 0;
es->bCaptureState = TRUE;
SetCapture(wnd->hwndSelf); SetCapture(wnd->hwndSelf);
EDIT_ConfinePoint(wnd, es, &x, &y); EDIT_ConfinePoint(wnd, es, &x, &y);
e = EDIT_CharFromPos(wnd, es, x, y, &after_wrap); e = EDIT_CharFromPos(wnd, es, x, y, &after_wrap);
@ -3505,10 +3507,11 @@ static LRESULT EDIT_WM_LButtonDown(WND *wnd, EDITSTATE *es, DWORD keys, INT x, I
*/ */
static LRESULT EDIT_WM_LButtonUp(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT y) static LRESULT EDIT_WM_LButtonUp(WND *wnd, EDITSTATE *es, DWORD keys, INT x, INT y)
{ {
if (GetCapture() == wnd->hwndSelf) { if (es->bCaptureState && GetCapture() == wnd->hwndSelf) {
KillTimer(wnd->hwndSelf, 0); KillTimer(wnd->hwndSelf, 0);
ReleaseCapture(); ReleaseCapture();
} }
es->bCaptureState = FALSE;
return 0; return 0;
} }