comctl32/monthcal: No need to calculate month length on every iteration.
This commit is contained in:
parent
db10fb8301
commit
49949cbbc2
@ -949,7 +949,7 @@ static void MONTHCAL_PaintFocusAndCircle(const MONTHCAL_INFO *infoPtr, HDC hdc,
|
|||||||
static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx)
|
static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const PAINTSTRUCT *ps, INT calIdx)
|
||||||
{
|
{
|
||||||
const SYSTEMTIME *date = &infoPtr->calendars[calIdx].month;
|
const SYSTEMTIME *date = &infoPtr->calendars[calIdx].month;
|
||||||
INT prev_month, i, j;
|
INT prev_month, i, j, length;
|
||||||
RECT r, fill_bk_rect;
|
RECT r, fill_bk_rect;
|
||||||
SYSTEMTIME st;
|
SYSTEMTIME st;
|
||||||
WCHAR buf[80];
|
WCHAR buf[80];
|
||||||
@ -1004,8 +1004,9 @@ static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const
|
|||||||
{
|
{
|
||||||
MONTHCAL_GetMinDate(infoPtr, &st);
|
MONTHCAL_GetMinDate(infoPtr, &st);
|
||||||
mask = 1 << (st.wDay-1);
|
mask = 1 << (st.wDay-1);
|
||||||
|
length = MONTHCAL_MonthLength(prev_month, date->wYear);
|
||||||
|
|
||||||
while(st.wDay <= MONTHCAL_MonthLength(prev_month, date->wYear))
|
while(st.wDay <= length)
|
||||||
{
|
{
|
||||||
MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[0] & mask, ps);
|
MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[0] & mask, ps);
|
||||||
mask <<= 1;
|
mask <<= 1;
|
||||||
@ -1036,7 +1037,8 @@ static void MONTHCAL_PaintCalendar(const MONTHCAL_INFO *infoPtr, HDC hdc, const
|
|||||||
st = *date;
|
st = *date;
|
||||||
st.wDay = 1;
|
st.wDay = 1;
|
||||||
mask = 1;
|
mask = 1;
|
||||||
while(st.wDay <= MONTHCAL_MonthLength(date->wMonth, date->wYear))
|
length = MONTHCAL_MonthLength(date->wMonth, date->wYear);
|
||||||
|
while(st.wDay <= length)
|
||||||
{
|
{
|
||||||
MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[1] & mask, ps);
|
MONTHCAL_DrawDay(infoPtr, hdc, &st, infoPtr->monthdayState[1] & mask, ps);
|
||||||
mask <<= 1;
|
mask <<= 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user