From 8a0dab38c8fd0779ec26661ddc511cc41149cfe0 Mon Sep 17 00:00:00 2001 From: Divan Burger Date: Mon, 7 Jan 2008 18:44:10 +0200 Subject: [PATCH] comdlg32: Clamp hue and saturation when clicking in colour graph in colour dialog. --- dlls/comdlg32/colordlg.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/dlls/comdlg32/colordlg.c b/dlls/comdlg32/colordlg.c index a955650dbe6..aa7bca445dc 100644 --- a/dlls/comdlg32/colordlg.c +++ b/dlls/comdlg32/colordlg.c @@ -337,24 +337,29 @@ static int CC_MouseCheckColorGraph( HWND hDlg, int dlgitem, int *hori, int *vert ClientToScreen(hDlg, &point); hwnd = GetDlgItem( hDlg, dlgitem ); GetWindowRect(hwnd, &rect); - if (PtInRect(&rect, point)) - { - GetClientRect(hwnd, &rect); - ScreenToClient(hwnd, &point); - x = (long) point.x * MAXHORI; - x /= rect.right; - y = (long) (rect.bottom - point.y) * MAXVERT; - y /= rect.bottom; - - if (hori) - *hori = x; - if (vert) - *vert = y; - return 1; - } - else + if (!PtInRect(&rect, point)) return 0; + + GetClientRect(hwnd, &rect); + ScreenToClient(hwnd, &point); + + x = (long) point.x * MAXHORI; + x /= rect.right; + y = (long) (rect.bottom - point.y) * MAXVERT; + y /= rect.bottom; + + if (x < 0) x = 0; + if (y < 0) y = 0; + if (x > MAXHORI) x = MAXHORI; + if (y > MAXVERT) y = MAXVERT; + + if (hori) + *hori = x; + if (vert) + *vert = y; + + return 1; } /*********************************************************************** * CC_MouseCheckResultWindow [internal]