mirror of
https://github.com/reactos/reactos.git
synced 2025-05-06 18:31:26 +00:00
[NTDLL][NTUSER] Fix unselected text after WM_CBLOSTTEXTFOCUS
When we unselect text after the WM_CBLOSTTEXTFOCUS message, make sure we also forget we have been focused at all; otherwise the edit may become focused again, but with an empty text selection. CORE-10266
This commit is contained in:
parent
c97e9defc1
commit
71ab0b5d4c
2 changed files with 8 additions and 19 deletions
|
@ -2260,16 +2260,14 @@ LRESULT WINAPI ComboWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPAR
|
|||
}
|
||||
break;
|
||||
|
||||
case WM_CBLOSTTEXTFOCUS: /* undocumented message - deselects the text when focus is lost */
|
||||
case WM_CBLOSTTEXTFOCUS: /* undocumented message - deselects the text when focus is lost */
|
||||
if (lphc->hWndEdit != NULL)
|
||||
{
|
||||
if (lphc->hWndEdit != NULL)
|
||||
{
|
||||
SendMessage(lphc->self, WM_LBUTTONUP, 0, 0xFFFFFFFF);
|
||||
SendMessage(lphc->hWndEdit, EM_SETSEL, 0, 0);
|
||||
lphc->wState &= ~CBF_FOCUSED;
|
||||
CB_NOTIFY(lphc, CBN_KILLFOCUS);
|
||||
}
|
||||
}
|
||||
SendMessage(lphc->self, WM_LBUTTONUP, 0, 0xFFFFFFFF);
|
||||
SendMessage(lphc->hWndEdit, EM_SETSEL, 0, 0);
|
||||
lphc->wState &= ~(CBF_FOCUSED | CBF_BEENFOCUSED);
|
||||
CB_NOTIFY(lphc, CBN_KILLFOCUS);
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3626,7 +3626,6 @@ static LRESULT EDIT_WM_KeyDown(EDITSTATE *es, INT key)
|
|||
*/
|
||||
static LRESULT EDIT_WM_KillFocus(EDITSTATE *es)
|
||||
{
|
||||
#if 0 // See CORE-10266.
|
||||
HWND hCombo;
|
||||
LONG lStyles;
|
||||
|
||||
|
@ -3647,15 +3646,7 @@ static LRESULT EDIT_WM_KillFocus(EDITSTATE *es)
|
|||
if ((lStyles & CBS_DROPDOWN) || (lStyles & CBS_SIMPLE))
|
||||
SendMessage(hCombo, WM_CBLOSTTEXTFOCUS, 0, 0);
|
||||
}
|
||||
#else
|
||||
es->flags &= ~EF_FOCUSED;
|
||||
DestroyCaret();
|
||||
if(!(es->style & ES_NOHIDESEL))
|
||||
EDIT_InvalidateText(es, es->selection_start, es->selection_end);
|
||||
EDIT_NOTIFY_PARENT(es, EN_KILLFOCUS);
|
||||
/* throw away left over scroll when we lose focus */
|
||||
es->wheelDeltaRemainder = 0;
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue