mirror of
https://github.com/reactos/reactos.git
synced 2024-08-20 02:13:29 +00:00
180 lines
5.4 KiB
Diff
180 lines
5.4 KiB
Diff
Index: propsheet.c
|
|
===================================================================
|
|
--- propsheet.c (revision 38890)
|
|
+++ propsheet.c (working copy)
|
|
@@ -2417,6 +2417,29 @@
|
|
return FALSE;
|
|
}
|
|
|
|
+BOOL CALLBACK
|
|
+EnumChildProc(HWND hwnd, LPARAM lParam)
|
|
+{
|
|
+ WCHAR szType[20];
|
|
+ RealGetWindowClassW(hwnd, szType, 20);
|
|
+
|
|
+ if (strcmpW(szType, WC_EDITW) == 0)
|
|
+ {
|
|
+ if (IsWindowEnabled(hwnd) && IsWindowVisible(hwnd))
|
|
+ {
|
|
+ SetFocus(hwnd);
|
|
+ return FALSE;
|
|
+ }
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ EnumChildWindows(hwnd, EnumChildProc, 0);
|
|
+ }
|
|
+
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
+
|
|
/******************************************************************************
|
|
* PROPSHEET_SetWizButtons
|
|
*
|
|
@@ -2438,17 +2461,6 @@
|
|
EnableWindow(hwndNext, FALSE);
|
|
EnableWindow(hwndFinish, FALSE);
|
|
|
|
- /* set the default pushbutton to an enabled button */
|
|
- if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH))
|
|
- SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
|
|
- else if (dwFlags & PSWIZB_NEXT)
|
|
- SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
|
|
- else if (dwFlags & PSWIZB_BACK)
|
|
- SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
|
|
- else
|
|
- SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
|
|
-
|
|
-
|
|
if (dwFlags & PSWIZB_BACK)
|
|
EnableWindow(hwndBack, TRUE);
|
|
|
|
@@ -2478,6 +2490,31 @@
|
|
}
|
|
else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
|
|
EnableWindow(hwndFinish, TRUE);
|
|
+
|
|
+ /* set the default pushbutton to an enabled button and give it focus */
|
|
+ if (((dwFlags & PSWIZB_FINISH) || psInfo->hasFinish) && !(dwFlags & PSWIZB_DISABLEDFINISH))
|
|
+ {
|
|
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_FINISH_BUTTON, 0);
|
|
+ SetFocus(hwndFinish);
|
|
+ }
|
|
+ else if (dwFlags & PSWIZB_NEXT)
|
|
+ {
|
|
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_NEXT_BUTTON, 0);
|
|
+ SetFocus(hwndNext);
|
|
+ }
|
|
+ else if (dwFlags & PSWIZB_BACK)
|
|
+ {
|
|
+ SendMessageW(hwndDlg, DM_SETDEFID, IDC_BACK_BUTTON, 0);
|
|
+ SetFocus(hwndBack);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ SendMessageW(hwndDlg, DM_SETDEFID, IDCANCEL, 0);
|
|
+ SetFocus(GetDlgItem(hwndDlg, IDCANCEL));
|
|
+ }
|
|
+
|
|
+ /* Now try to find an edit control that deserves focus */
|
|
+ EnumChildWindows(PropSheet_GetCurrentPageHwnd(hwndDlg), EnumChildProc, 0);
|
|
}
|
|
|
|
/******************************************************************************
|
|
Index: tooltips.c
|
|
===================================================================
|
|
--- tooltips.c (revision 38890)
|
|
+++ tooltips.c (working copy)
|
|
@@ -2488,8 +2488,33 @@
|
|
static LRESULT
|
|
TOOLTIPS_NotifyFormat (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
- FIXME ("hwnd=%p wParam=%lx lParam=%lx\n", hwnd, wParam, lParam);
|
|
+ TOOLTIPS_INFO *infoPtr = TOOLTIPS_GetInfoPtr (hwnd);
|
|
+ TTTOOL_INFO *toolPtr = infoPtr->tools;
|
|
+ INT nResult;
|
|
|
|
+ TRACE("hwnd=%p wParam=%lx lParam=%lx\n", hwnd, wParam, lParam);
|
|
+
|
|
+ if (lParam == NF_QUERY) {
|
|
+ if (toolPtr->bNotifyUnicode) {
|
|
+ return NFR_UNICODE;
|
|
+ } else {
|
|
+ return NFR_ANSI;
|
|
+ }
|
|
+ }
|
|
+ else if (lParam == NF_REQUERY) {
|
|
+ nResult = (INT) SendMessageW (toolPtr->hwnd, WM_NOTIFYFORMAT,
|
|
+ (WPARAM)hwnd, (LPARAM)NF_QUERY);
|
|
+ if (nResult == NFR_ANSI) {
|
|
+ toolPtr->bNotifyUnicode = FALSE;
|
|
+ TRACE(" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n");
|
|
+ } else if (nResult == NFR_UNICODE) {
|
|
+ toolPtr->bNotifyUnicode = TRUE;
|
|
+ TRACE(" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
|
|
+ } else {
|
|
+ TRACE (" -- WM_NOTIFYFORMAT returns: error!\n");
|
|
+ }
|
|
+ return nResult;
|
|
+ }
|
|
return 0;
|
|
}
|
|
|
|
Index: treeview.c
|
|
===================================================================
|
|
--- treeview.c (revision 38890)
|
|
+++ treeview.c (working copy)
|
|
@@ -2830,7 +2830,12 @@
|
|
}
|
|
}
|
|
|
|
- TREEVIEW_UpdateScrollBars(infoPtr);
|
|
+ //
|
|
+ // This is correct, but is causes and infinite loop of WM_PAINT messages, resulting
|
|
+ // in continuous painting of the scroll bar in reactos. Comment out until the real
|
|
+ // bug is found
|
|
+ //
|
|
+ //TREEVIEW_UpdateScrollBars(infoPtr);
|
|
|
|
if (infoPtr->cdmode & CDRF_NOTIFYPOSTPAINT)
|
|
infoPtr->cdmode =
|
|
Index: listview.c
|
|
===================================================================
|
|
--- listview.c (revision 51320)
|
|
+++ listview.c (working copy)
|
|
@@ -1634,8 +1635,19 @@
|
|
/* used to handle collapse main item column case */
|
|
static inline BOOL LISTVIEW_DrawFocusRect(const LISTVIEW_INFO *infoPtr, HDC hdc)
|
|
{
|
|
- return (infoPtr->rcFocus.left < infoPtr->rcFocus.right) ?
|
|
- DrawFocusRect(hdc, &infoPtr->rcFocus) : FALSE;
|
|
+ BOOL Ret = FALSE;
|
|
+
|
|
+ if (infoPtr->rcFocus.left < infoPtr->rcFocus.right)
|
|
+ {
|
|
+ DWORD dwOldBkColor, dwOldTextColor;
|
|
+
|
|
+ dwOldBkColor = SetBkColor(hdc, RGB(255, 255, 255));
|
|
+ dwOldTextColor = SetBkColor(hdc, RGB(0, 0, 0));
|
|
+ Ret = DrawFocusRect(hdc, &infoPtr->rcFocus);
|
|
+ SetBkColor(hdc, dwOldBkColor);
|
|
+ SetBkColor(hdc, dwOldTextColor);
|
|
+ }
|
|
+ return Ret;
|
|
}
|
|
|
|
/* Listview invalidation functions: use _only_ these functions to invalidate */
|
|
@@ -5041,7 +5053,11 @@
|
|
|
|
/* Draw marquee rectangle if appropriate */
|
|
if (infoPtr->bMarqueeSelect)
|
|
+ {
|
|
+ SetBkColor(hdc, RGB(255, 255, 255));
|
|
+ SetTextColor(hdc, RGB(0, 0, 0));
|
|
DrawFocusRect(hdc, &infoPtr->marqueeDrawRect);
|
|
+ }
|
|
|
|
if (cdmode & CDRF_NOTIFYPOSTPAINT)
|
|
notify_postpaint(infoPtr, &nmlvcd);
|