Hari Rana
e1bc583597
views/month-view: Use debug messages
...
Given the complexity of keyboard navigation in the month view, it
may be useful to rely on debug entries/exits to debug edge cases.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/817 >
2026-08-26 20:08:28 -04:00
Hari Rana
2e5379982b
views/month-view-row: Replace "adjacent with "overlaying" event
...
"Adjacent" is incorrect because we are focusing the event that is
in front of the month cell.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/816 >
2026-08-25 22:02:50 -04:00
Hari Rana
14869fa02b
views/month-view-row: Replace "adjacent" with "underlying" cell
...
"Adjacent" is incorrect because we are focusing the cell that is
behind the event widget.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/816 >
2026-08-25 22:02:50 -04:00
Hari Rana
11e4d8ee8d
views/month-view: Allow focusing adjacent event widget from cell
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/741 >
2026-08-25 15:42:59 +00:00
Kaiky Cintra and Ryan Oliveira
3a6d120863
views/month-view: Implement drag and drop handling on month view
...
Replicate the week grid implementation of drag-and-drop to
allow events to be dropped on top of other events in the month view.
Closes : #1092
Co-authored-by: Ryan Oliveira <ryan.oliveiraf@usp.br >
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/806 >
2026-08-14 22:24:01 +00:00
Hari Rana
68d820b2f7
Revert "views/month-view: Remove offset"
...
For a while, we have been setting child visibility to false, which
hid the horizontal line separators. However, I started scrolling in
the month view today and came to realize that they were disappearing
sporadically when scrolling upwards.
This happens because we use the `box-shadow` CSS property to apply the
box shadow a pixel above the month view row, which keeps it visible
in the view even when the month view row itself is no longer in
the page. Adding a pixel fixes that.
This reverts commit f4702dde1f .
2026-07-28 08:14:43 -04:00
Hari Rana
4f9cba85fb
views/month-view: Set ceiled height of each row
...
Fixes: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1290 >
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/772 >
2026-05-28 06:27:37 -04:00
Georges Basile Stavracas Neto
5a693f2a25
views/month: Port to GListModel
...
This was an oversight from the original MR.
Pass the GListModel to the month popover, and let it filter itself
out. Use GtkListBox model utilities for automatically managing the
event widgets.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/work_items/1582
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/767 >
2026-05-20 14:33:13 -04:00
Georges Basile Stavracas Neto
59ee1db556
views/month: Show first invisible rows above and below
...
But mark them as not child visible. This should make keyboard
navigation work again, as the focused rows don't change actual
visible state, and thus are keyboard navigatable and don't lose
focus.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/769 >
2026-05-20 18:26:37 +00:00
Georges Basile Stavracas Neto
bbc041eed9
views/month: Recycle event widgets using the pool
...
Create a new GcalEventWidgetPool shared between all month view rows.
The event widgets are distributed to rows as needed.
When rows are done with the event widget, the give them back to the
pool so that other rows can reuse them.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/758 >
2026-05-19 22:20:10 +00:00
Georges Basile Stavracas Neto
378b7f6075
views/month: Remove unused field
...
The hash table is not used since we moved to list models.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/761 >
2026-05-05 21:37:05 -03:00
Georges Basile Stavracas Neto
64efb3a06b
views/month: Completely hide invisible rows
...
Instead of just skipping painting. This should remove rows and event
widgets from the CSS tree, avoid measurements and relayouts, and a
few other benefits.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/761 >
2026-05-05 21:36:58 -03:00
Georges Basile Stavracas Neto
95bc0a8fb2
views/month: Reduce to 3 pages
...
Now that the timeline handles augmentation, the Month view doesn't need
to fetch so much data at once. Reduce to 3 pages of month rows.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/757 >
2026-05-03 14:56:07 -03:00
Georges Basile Stavracas Neto
afd9f9b954
core/timeline: Remove message queueing and listeners
...
"Let go and move on." - The Fool?
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/742 >
2026-05-03 16:57:54 +00:00
Georges Basile Stavracas Neto
039b75755e
views/month: Port to GListModel
...
Neutralize the add/remove/update vfuncs (we can't remove them yet).
Pass the event model to the individual week rows, and let them
filter their events using a GtkFilterListModel.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/742 >
2026-05-03 16:57:51 +00:00
Hari Rana
cebd3cd84d
views/month-view: Replace "context" property with context getter method
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702 >
2026-03-23 19:30:00 +00:00
Zoey Ahmed
f99678aea9
views/month-view: Check if focused widget is month cell
...
This fixes an issue where pressing Shift + Up/Down while focused on the
overflow button will result in a bail out when asserting the focused
widget has a month cell ancestor:
```
GcalMonthView:ERROR:../src/gui/views/gcal-month-view.c:1002:on_key_controller_key_pressed_cb: assertion failed: (GCAL_IS_MONTH_CELL (month_cell))
Bail out! GcalMonthView:ERROR:../src/gui/views/gcal-month-view.c:1002:on_key_controller_key_pressed_cb: assertion failed: (GCAL_IS_MONTH_CELL (month_cell))
```
When navigating between month cells with a keyboard, focus is set
on respective month cells, so checking whether the ancestor
is a month cell or not is not only unnecessary, it also causes
bugs like the assertion above.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/720 >
2026-03-11 08:55:09 -04:00
Hari Rana
50e048c7e0
utils: Turn number of weekdays into a macro
...
While "7" may be obvious in the context of calendaring that
it represents the number of week days, it often gives me the
impression of it being a magic number when I'm hyperfocused on certain
parts of the codebase for several consecutive hours. Turning the
number into a macro helps me scan functions much more easily.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/674 >
2026-03-08 21:53:40 -04:00
Hari Rana
2638766d10
views/month-view: Focus adjacent cell when tabbing forward from the last event widget
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 21:11:16 -03:00
Hari Rana
e607a6bd2e
views/month-view: Clear marks when tabbing from a cell
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 21:11:16 -03:00
Hari Rana
4e54c18d06
views/month-view: Set focus to cell upon click release
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 21:11:16 -03:00
Hari Rana
3102766c51
views/month-view: Allow selecting cells
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 21:11:16 -03:00
Hari Rana
6c6dd46a89
views/month-view: Scroll view when out of bounds
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 18:35:18 -05:00
Hari Rana
c74fe74b97
views/month-view: Wrap cells
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 18:35:18 -05:00
Hari Rana
d8e44108ea
views/month-view: Display quick add popover when activating cell
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 18:35:18 -05:00
Hari Rana
48e6607d43
views/month-view: Focus adjacent cell when pressing Ctrl+Tab
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 18:35:17 -05:00
Hari Rana
b592f15b26
views/month-view: Add and update accessible elements
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564 >
2026-03-03 18:35:17 -05:00
Hari Rana
55aa6b8cc5
views/month-view: Focus last focused widget after closing month popover
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598 >
2026-03-01 19:35:46 +00:00
Hari Rana
24dd9be132
views/month-view: Allow skipping event widgets with Ctrl
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598 >
2026-03-01 19:35:44 +00:00
Hari Rana
08e8318889
views/month-view: Allow navigating with Tab
...
This also notifies if keyboard navigation fails.
2026-02-24 20:05:15 -03:00
Fabian Hügel and Maximiliano Sandoval
da90b94bbd
views/month: Jump to first day of month with PgUp/PgDown
...
With this we always jump to the first day of the next/previous month
when pressing the PgDown/PgUp key in the month view.
Partially fixes the regression described in
https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1103
Co-authored-by: Maximiliano Sandoval <msandova@gnome.org >
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/369 >
2026-02-21 20:22:15 -05:00
Hari Rana
82198e0b8f
views/month-view: Smoothen discrete scrolling animation
...
The current animation duration paired with the ease-out-quad function
eases out imperceptibly fast (almost instantaneously), which makes the
overall animation feel laggy.
This patch addresses the aforementioned issue by increasing the
duration to 500ms. This then makes the ease-out-quad function ease
out relatively slowly, which is addressed by changing the function
to ease-out-quart - a function that eases out much quicker.
As a result, the animation should feel much more fluid and natural,
without giving the impression that it's 3 times slower.
Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1125
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/670 >
2025-11-29 08:59:50 -05:00
Hari Rana
0a8bd0e994
views/month-view: Use ease-out-sine when snapping to row
...
It should feel a little bit more natural as it is eases out slower.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/670 >
2025-11-29 08:59:33 -05:00
Hari Rana
bf86699f84
views/month-view: Check for user's reduced motion setting
...
"gtk-interface-reduced-motion" is the modern alternative to
"gtk-enable-animations" but gtk-enable-animations will be
kept as as a fallback.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/670 >
2025-11-29 08:47:20 -05:00
Hari Rana
f4702dde1f
views/month-view: Remove offset
...
Since we're now relying on box shadows to render separators,
which don't contribute to layout, we no longer need to set some
sort of offset to compensate the separators.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/669 >
2025-11-27 11:52:31 +00:00
Georges Basile Stavracas Neto
564ce76349
views/month: Don't manually set can-focus property
...
Now that we're meddling with child visibility, hidden rows shouldn't
be focusable. At least that's what Hari discovered :)
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/659 >
2025-11-08 22:02:49 -03:00
Georges Basile Stavracas Neto
084a495f5c
views/month: Hide invisible rows
...
Change the child-visible property of rows when allocating. It's safe
to do in allocation because it doesn't affect layout, just rendering.
Related:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/402
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/659 >
2025-11-08 21:18:55 -03:00
Philipp Sauberzweig
a32df2b070
views/month-cell: Remove dimming of out-of-month cells
...
The infinite scrolling month view obsoletes the out-of-month
dimming, as the view is no longer fixed in a specific month, nor
does it make out-of-month cells insensitive.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1145
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/646 >
2025-10-17 18:06:17 -04:00
Trystan Mata
0b25305aa4
view/month-view: Fix seeking ancestor of NULL
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/638 >
2025-09-04 15:29:01 +00:00
Hari Rana
1ab336009e
views/month-view: Skip view when tabbing in event widget
...
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1444
2025-08-25 21:33:58 -06:00
Georges Basile Stavracas Neto
7282943d21
views/month: Remove useless function
...
The update_header_labels() was rendered useless after commit 1de447f7 .
This was discovered by static-scan. Thanks for Arak for finding the
root cause.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1418
2025-07-11 13:33:13 -03:00
Hari Rana
a0b530298a
views/month-view: Allocate more for grid height
...
This allocates two extra pixels for the grid's height to make
the cell borders hide below the footer.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/604 >
2025-07-08 14:08:37 +00:00
Markus Göllnitz
c03c501888
month-view: fix undershoot for new bottom bar
...
This adds the same styling as .undershoot-bottom would
while scrolling and adjusts the size allocation of month
rows, so that the top border of the month row right below
the last one is already visible.
Link: https://gitlab.gnome.org/GNOME/libadwaita/-/blob/649967044e269a0118ae09a9ff0ecba90cc58300/src/stylesheet/_drawing.scss#L57
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it >
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542 >
2025-06-08 09:59:00 +00:00
Markus Göllnitz
4a4dce8ee3
views: add time direction property
...
The time direction property tells which orientation one
needs to scroll to change the time of the view. In these
directions (up/down v left/right) the new prev/next
buttons will be pointing.
The two buttons will be added in a subsequent commit,
and will gain view-dependent tooltips.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it >
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542 >
2025-06-08 09:59:00 +00:00
Markus Göllnitz
1de447f7f3
month-view: remove month and year header
...
This header duplicates the month and year from the new
navigation button in the header.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it >
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/542 >
2025-06-08 09:59:00 +00:00
Federico Mena Quintero
2eec02b76a
gui/views/month-view: Initialize two variables
...
The static analizer can't figure out that they will always be initialized
by the for loop in this function.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Federico Mena Quintero
a3ddd8e510
gui/views/month-view: Mark variable as unused
...
It's just a temporary reference that will get removed at function exit.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/581 >
2025-05-28 18:08:54 +00:00
Hari Rana
a25b129643
views/month: Disallow moving focus out of the view with arrow keys
2025-05-21 01:17:33 -03:00
Hari Rana
ed1db0bf72
views/month: Move out of the view when pressing tab
...
This makes it so the user can easily skip the entire month view
by pressing tab within the month view. This means, events can only
be accessed with arrow keys in the month view.
2025-05-21 01:14:17 -03:00
Hari Rana
1ab79d0cc8
views/month: Set all non-visible rows as unfocusable
...
When tabbing into the month view, the keyboard focus would go
to the first week row in the widget hierarchy, rather than the
visible row. Setting the `GtkWidget:can-focus` property to
FALSE on every non-visible row only allows keyboard focus
within the visible rows.
2025-05-21 01:13:38 -03:00