mirror of
https://github.com/reactos/reactos.git
synced 2025-05-07 18:56:48 +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;
|
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);
|
||||||
SendMessage(lphc->self, WM_LBUTTONUP, 0, 0xFFFFFFFF);
|
lphc->wState &= ~(CBF_FOCUSED | CBF_BEENFOCUSED);
|
||||||
SendMessage(lphc->hWndEdit, EM_SETSEL, 0, 0);
|
CB_NOTIFY(lphc, CBN_KILLFOCUS);
|
||||||
lphc->wState &= ~CBF_FOCUSED;
|
}
|
||||||
CB_NOTIFY(lphc, CBN_KILLFOCUS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3626,7 +3626,6 @@ static LRESULT EDIT_WM_KeyDown(EDITSTATE *es, INT key)
|
||||||
*/
|
*/
|
||||||
static LRESULT EDIT_WM_KillFocus(EDITSTATE *es)
|
static LRESULT EDIT_WM_KillFocus(EDITSTATE *es)
|
||||||
{
|
{
|
||||||
#if 0 // See CORE-10266.
|
|
||||||
HWND hCombo;
|
HWND hCombo;
|
||||||
LONG lStyles;
|
LONG lStyles;
|
||||||
|
|
||||||
|
@ -3647,15 +3646,7 @@ static LRESULT EDIT_WM_KillFocus(EDITSTATE *es)
|
||||||
if ((lStyles & CBS_DROPDOWN) || (lStyles & CBS_SIMPLE))
|
if ((lStyles & CBS_DROPDOWN) || (lStyles & CBS_SIMPLE))
|
||||||
SendMessage(hCombo, WM_CBLOSTTEXTFOCUS, 0, 0);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue