comctl32/datetime: Fix incorrect use of the ScreenToClient function.

This commit is contained in:
Alexandre Julliard 2010-10-05 14:03:33 +02:00
parent 4b4c1a0060
commit 96ed854d35

View File

@ -787,6 +787,7 @@ DATETIME_LButtonDown (DATETIME_INFO *infoPtr, INT x, INT y)
if (infoPtr->select == DTHT_MCPOPUP) {
RECT rcMonthCal;
POINT pos;
SendMessageW(infoPtr->hMonthCal, MCM_GETMINREQRECT, 0, (LPARAM)&rcMonthCal);
/* FIXME: button actually is only depressed during dropdown of the */
@ -795,17 +796,16 @@ DATETIME_LButtonDown (DATETIME_INFO *infoPtr, INT x, INT y)
/* recalculate the position of the monthcal popup */
if(infoPtr->dwStyle & DTS_RIGHTALIGN)
infoPtr->monthcal_pos.x = infoPtr->calbutton.left -
(rcMonthCal.right - rcMonthCal.left);
pos.x = infoPtr->calbutton.left - (rcMonthCal.right - rcMonthCal.left);
else
/* FIXME: this should be after the area reserved for the checkbox */
infoPtr->monthcal_pos.x = infoPtr->rcDraw.left;
pos.x = infoPtr->rcDraw.left;
infoPtr->monthcal_pos.y = infoPtr->rcClient.bottom;
ClientToScreen (infoPtr->hwndSelf, &(infoPtr->monthcal_pos));
SetWindowPos(infoPtr->hMonthCal, 0, infoPtr->monthcal_pos.x,
infoPtr->monthcal_pos.y, rcMonthCal.right - rcMonthCal.left,
rcMonthCal.bottom - rcMonthCal.top, 0);
pos.y = infoPtr->rcClient.bottom;
OffsetRect( &rcMonthCal, pos.x, pos.y );
MapWindowPoints( infoPtr->hwndSelf, 0, (POINT *)&rcMonthCal, 2 );
SetWindowPos(infoPtr->hMonthCal, 0, rcMonthCal.left, rcMonthCal.top,
rcMonthCal.right - rcMonthCal.left, rcMonthCal.bottom - rcMonthCal.top, 0);
if(IsWindowVisible(infoPtr->hMonthCal)) {
ShowWindow(infoPtr->hMonthCal, SW_HIDE);