From 6e013e5c24309aec20d38b5b5f1e0b48ff0c9d2b Mon Sep 17 00:00:00 2001 From: Abey George Date: Tue, 27 Jul 1999 17:08:26 +0000 Subject: [PATCH] Fixed incorrect edit control behaviour in mouse message handling. --- controls/edit.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/controls/edit.c b/controls/edit.c index bb73ea3917c..7e4d797b8cd 100644 --- a/controls/edit.c +++ b/controls/edit.c @@ -95,6 +95,7 @@ typedef struct EDITWORDBREAKPROCA word_break_proc32A; INT line_count; /* 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 */ @@ -3487,6 +3488,7 @@ static LRESULT EDIT_WM_LButtonDown(WND *wnd, EDITSTATE *es, DWORD keys, INT x, I if (!(es->flags & EF_FOCUSED)) return 0; + es->bCaptureState = TRUE; SetCapture(wnd->hwndSelf); EDIT_ConfinePoint(wnd, es, &x, &y); 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) { - if (GetCapture() == wnd->hwndSelf) { + if (es->bCaptureState && GetCapture() == wnd->hwndSelf) { KillTimer(wnd->hwndSelf, 0); ReleaseCapture(); } + es->bCaptureState = FALSE; return 0; }