user32: Preselect all editbox text when combo gets focus.
This commit is contained in:
parent
0641192b52
commit
f27b032d50
|
@ -1910,8 +1910,14 @@ LRESULT ComboWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM lPar
|
||||||
case WM_GETFONT:
|
case WM_GETFONT:
|
||||||
return (LRESULT)lphc->hFont;
|
return (LRESULT)lphc->hFont;
|
||||||
case WM_SETFOCUS:
|
case WM_SETFOCUS:
|
||||||
if( lphc->wState & CBF_EDIT )
|
if( lphc->wState & CBF_EDIT ) {
|
||||||
SetFocus( lphc->hWndEdit );
|
SetFocus( lphc->hWndEdit );
|
||||||
|
/* The first time focus is received, select all the text */
|
||||||
|
if( !(lphc->wState & CBF_BEENFOCUSED) ) {
|
||||||
|
SendMessageW(lphc->hWndEdit, EM_SETSEL, 0, -1);
|
||||||
|
lphc->wState |= CBF_BEENFOCUSED;
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
COMBO_SetFocus( lphc );
|
COMBO_SetFocus( lphc );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -199,6 +199,7 @@ extern INT SCROLL_SetNCSbState( HWND hwnd, int vMin, int vMax, int vPos,
|
||||||
#define CBF_SELCHANGE 0x0400
|
#define CBF_SELCHANGE 0x0400
|
||||||
#define CBF_NOEDITNOTIFY 0x1000
|
#define CBF_NOEDITNOTIFY 0x1000
|
||||||
#define CBF_NOLBSELECT 0x2000 /* do not change current selection */
|
#define CBF_NOLBSELECT 0x2000 /* do not change current selection */
|
||||||
|
#define CBF_BEENFOCUSED 0x4000 /* has it ever had focus */
|
||||||
#define CBF_EUI 0x8000
|
#define CBF_EUI 0x8000
|
||||||
|
|
||||||
/* combo state struct */
|
/* combo state struct */
|
||||||
|
|
|
@ -449,13 +449,13 @@ static void test_editselection(void)
|
||||||
SendMessage(hCombo, CB_GETEDITSEL, (WPARAM)&start, (WPARAM)&end);
|
SendMessage(hCombo, CB_GETEDITSEL, (WPARAM)&start, (WPARAM)&end);
|
||||||
len = SendMessage(hCombo, CB_GETEDITSEL, 0,0);
|
len = SendMessage(hCombo, CB_GETEDITSEL, 0,0);
|
||||||
ok(LOWORD(len)==0, "Unexpected start position for selection %d\n", LOWORD(len));
|
ok(LOWORD(len)==0, "Unexpected start position for selection %d\n", LOWORD(len));
|
||||||
todo_wine ok(HIWORD(len)==6, "Unexpected end position for selection %d\n", HIWORD(len));
|
ok(HIWORD(len)==6, "Unexpected end position for selection %d\n", HIWORD(len));
|
||||||
|
|
||||||
/* Now emulate a key press */
|
/* Now emulate a key press */
|
||||||
edit[0] = 0x00;
|
edit[0] = 0x00;
|
||||||
SendMessage(hCombo, WM_CHAR, 'A', 0x1c0001);
|
SendMessage(hCombo, WM_CHAR, 'A', 0x1c0001);
|
||||||
SendMessage(hCombo, WM_GETTEXT, sizeof(edit), (LPARAM)edit);
|
SendMessage(hCombo, WM_GETTEXT, sizeof(edit), (LPARAM)edit);
|
||||||
todo_wine ok(strcmp(edit, "A")==0, "Unexpected text retrieved %s\n", edit);
|
ok(strcmp(edit, "A")==0, "Unexpected text retrieved %s\n", edit);
|
||||||
|
|
||||||
len = SendMessage(hCombo, CB_GETEDITSEL, 0,0);
|
len = SendMessage(hCombo, CB_GETEDITSEL, 0,0);
|
||||||
ok(LOWORD(len)==1, "Unexpected start position for selection %d\n", LOWORD(len));
|
ok(LOWORD(len)==1, "Unexpected start position for selection %d\n", LOWORD(len));
|
||||||
|
@ -489,7 +489,7 @@ static void test_editselection(void)
|
||||||
SendMessage(hCombo, CB_GETEDITSEL, (WPARAM)&start, (WPARAM)&end);
|
SendMessage(hCombo, CB_GETEDITSEL, (WPARAM)&start, (WPARAM)&end);
|
||||||
len = SendMessage(hCombo, CB_GETEDITSEL, 0,0);
|
len = SendMessage(hCombo, CB_GETEDITSEL, 0,0);
|
||||||
ok(LOWORD(len)==0, "Unexpected start position for selection %d\n", LOWORD(len));
|
ok(LOWORD(len)==0, "Unexpected start position for selection %d\n", LOWORD(len));
|
||||||
todo_wine ok(HIWORD(len)==6, "Unexpected end position for selection %d\n", HIWORD(len));
|
ok(HIWORD(len)==6, "Unexpected end position for selection %d\n", HIWORD(len));
|
||||||
|
|
||||||
/* Now change the selection to the apparently invalid start -1, end -1 and
|
/* Now change the selection to the apparently invalid start -1, end -1 and
|
||||||
show it means no selection (ie start -1) but cursor at end */
|
show it means no selection (ie start -1) but cursor at end */
|
||||||
|
@ -497,7 +497,7 @@ static void test_editselection(void)
|
||||||
edit[0] = 0x00;
|
edit[0] = 0x00;
|
||||||
SendMessage(hCombo, WM_CHAR, 'A', 0x1c0001);
|
SendMessage(hCombo, WM_CHAR, 'A', 0x1c0001);
|
||||||
SendMessage(hCombo, WM_GETTEXT, sizeof(edit), (LPARAM)edit);
|
SendMessage(hCombo, WM_GETTEXT, sizeof(edit), (LPARAM)edit);
|
||||||
todo_wine ok(strcmp(edit, "Jason2A")==0, "Unexpected text retrieved %s\n", edit);
|
ok(strcmp(edit, "Jason2A")==0, "Unexpected text retrieved %s\n", edit);
|
||||||
DestroyWindow(hCombo);
|
DestroyWindow(hCombo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue