From 79ef9f00e826f93d50ecb78bd5e52596ba0bfef9 Mon Sep 17 00:00:00 2001
From: Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>
Date: Tue, 1 Aug 2017 19:49:53 +0530
Subject: [PATCH] Fix bug with highlighting current system date in
BCalendarView.
---
src/kits/shared/CalendarView.cpp | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/src/kits/shared/CalendarView.cpp b/src/kits/shared/CalendarView.cpp
index a60aa6b..ca27ead 100644
a
|
b
|
BCalendarView::_SetToDay()
|
763 | 763 | void |
764 | 764 | BCalendarView::_SetToCurrentDay() |
765 | 765 | { |
766 | | BDate date(fDate.Year(), fDate.Month(), 1); |
| 766 | BDate date(fCurrentDate.Year(), fCurrentDate.Month(), 1); |
767 | 767 | if (!date.IsValid()) |
768 | 768 | return; |
769 | | |
| 769 | if (fDate.Year() != date.Year() || fDate.Month() != date.Month()) { |
| 770 | fNewCurrentDay.SetTo(-1, -1); |
| 771 | return; |
| 772 | } |
770 | 773 | const int32 firstDayOffset = (7 + date.DayOfWeek() - fStartOfWeek) % 7; |
771 | 774 | |
772 | 775 | int32 day = 1 - firstDayOffset; |
… |
… |
BCalendarView::_SetToCurrentDay()
|
780 | 783 | } |
781 | 784 | } |
782 | 785 | |
783 | | fNewCurrentDay.SetTo(0, 0); |
| 786 | fNewCurrentDay.SetTo(-1, -1); |
784 | 787 | } |
785 | 788 | |
786 | 789 | |
… |
… |
BCalendarView::_SetupDayNumbers()
|
881 | 884 | fSelectedDay.SetTo(row, column); |
882 | 885 | fNewFocusedDay.SetTo(row, column); |
883 | 886 | } |
884 | | if (day == fCurrentDate.Day() |
885 | | && fDate.Month() == fCurrentDate.Month()) |
| 887 | if (day == fCurrentDate.Day() && counter >= firstDayOffset |
| 888 | && counter < firstDayOffset + daysInMonth |
| 889 | && fDate.Month() == fCurrentDate.Month() |
| 890 | && fDate.Year() == fCurrentDate.Year()) |
886 | 891 | fCurrentDay.SetTo(row, column); |
| 892 | |
887 | 893 | counter++; |
888 | 894 | fDayNumbers[row][column].Truncate(0); |
889 | 895 | fDayNumbers[row][column] << day; |
… |
… |
BCalendarView::_UpdateCurrentDate()
|
1215 | 1221 | |
1216 | 1222 | fCurrentDate = date; |
1217 | 1223 | |
1218 | | if (fDate.Year() == date.Year() && fDate.Month() == date.Month()) { |
1219 | | _SetToCurrentDay(); |
1220 | | fCurrentDayChanged = true; |
1221 | | Draw(_RectOfDay(fCurrentDay)); |
1222 | | Draw(_RectOfDay(fNewCurrentDay)); |
1223 | | fCurrentDayChanged = false; |
1224 | | } |
| 1224 | _SetToCurrentDay(); |
| 1225 | fCurrentDayChanged = true; |
| 1226 | Draw(_RectOfDay(fCurrentDay)); |
| 1227 | Draw(_RectOfDay(fNewCurrentDay)); |
| 1228 | fCurrentDayChanged = false; |
1225 | 1229 | |
1226 | 1230 | return; |
1227 | 1231 | } |