https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8bba3c43333679e828f40…
commit 8bba3c43333679e828f400f8a2d1ee70db171aa9
Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com>
AuthorDate: Sun Sep 8 16:59:28 2024 +0900
Commit: GitHub <noreply(a)github.com>
CommitDate: Sun Sep 8 16:59:28 2024 +0900
[COMDLG32] ChooseColor: Apply DarkShadow44's suggestions (#6971)
Co-authored-by: Fabian Maurer <dark.shadow4(a)web.de>
Based on @DarkShadow44's merge
request to WineHQ.
JIRA issue: CORE-19402
Merge Request:
https://gitlab.winehq.org/wine/wine/-/merge_requests/5756
Proposed changes
Extend CC_CheckDigitsInEdit's
parameters and set infoPtr->updating
to TRUE when updating.
Call CC_PaintLumBar function in
CC_WMCommand function.
---
dll/win32/comdlg32/colordlg.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/dll/win32/comdlg32/colordlg.c b/dll/win32/comdlg32/colordlg.c
index 299c740e752..b64ee6ad138 100644
--- a/dll/win32/comdlg32/colordlg.c
+++ b/dll/win32/comdlg32/colordlg.c
@@ -396,7 +396,11 @@ static BOOL CC_MouseCheckResultWindow( HWND hDlg, LPARAM lParam )
/***********************************************************************
* CC_CheckDigitsInEdit [internal]
*/
+#ifdef __REACTOS__
+static int CC_CheckDigitsInEdit( CCPRIV *infoPtr, HWND hwnd, int maxval )
+#else
static int CC_CheckDigitsInEdit( HWND hwnd, int maxval )
+#endif
{
int i, k, m, result, value;
long editpos;
@@ -430,7 +434,13 @@ static int CC_CheckDigitsInEdit( HWND hwnd, int maxval )
if (result)
{
editpos = SendMessageA(hwnd, EM_GETSEL, 0, 0);
+#ifdef __REACTOS__
+ infoPtr->updating = TRUE;
+#endif
SetWindowTextA(hwnd, buffer );
+#ifdef __REACTOS__
+ infoPtr->updating = FALSE;
+#endif
SendMessageA(hwnd, EM_SETSEL, 0, editpos);
}
return value;
@@ -984,7 +994,11 @@ static LRESULT CC_WMCommand(CCPRIV *lpp, WPARAM wParam, LPARAM
lParam, WORD noti
case IDC_COLOR_EDIT_B:
if (notifyCode == EN_UPDATE && !lpp->updating)
{
+#ifdef __REACTOS__
+ i = CC_CheckDigitsInEdit(lpp, hwndCtl, 255);
+#else
i = CC_CheckDigitsInEdit(hwndCtl, 255);
+#endif
r = GetRValue(lpp->lpcc->rgbResult);
g = GetGValue(lpp->lpcc->rgbResult);
b= GetBValue(lpp->lpcc->rgbResult);
@@ -1005,6 +1019,9 @@ static LRESULT CC_WMCommand(CCPRIV *lpp, WPARAM wParam, LPARAM
lParam, WORD noti
CC_EditSetHSL(lpp);
CC_PaintCross(lpp);
CC_PaintTriangle(lpp);
+#ifdef __REACTOS__
+ CC_PaintLumBar(lpp);
+#endif
}
}
break;
@@ -1014,7 +1031,11 @@ static LRESULT CC_WMCommand(CCPRIV *lpp, WPARAM wParam, LPARAM
lParam, WORD noti
case IDC_COLOR_EDIT_L:
if (notifyCode == EN_UPDATE && !lpp->updating)
{
+#ifdef __REACTOS__
+ i = CC_CheckDigitsInEdit(lpp, hwndCtl , LOWORD(wParam) == IDC_COLOR_EDIT_H ? 239 :
240);
+#else
i = CC_CheckDigitsInEdit(hwndCtl , LOWORD(wParam) == IDC_COLOR_EDIT_H ? 239 :
240);
+#endif
xx = 0;
switch (LOWORD(wParam))
{