Commit Graph
236 Commits
Author SHA1 Message Date
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 8877d93059 views/month-popover: Add "closed" signal
This will be needed for setting focus to the last focused widget
after closing the popover.

Alternatively, we could have used the "unmap" signal, but this causes
a significant delay before setting focus to the last focused widget,
as it needs to complete the animation before it emits the
"unmap" signal.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:46 +00:00
Hari Rana f3a6c93245 views/month-popover: Cycle focus through widgets
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:46 +00:00
Hari Rana 5c4a2b1ab0 views/month-popover: Only focus rows
This follows the same approach as
https://gitlab.gnome.org/GNOME/gnome-calendar/-/commit/0aaf13626c0bb7e8ade2d79e8b50132b3a583c9f?merge_request_iid=559

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:45 +00:00
Hari Rana a1c8a9575e views/month-popover: Make close button unfocusable
Close buttons throughout the app are unfocusable, so it's best
to keep that behavior consistent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:45 +00:00
Hari Rana 295f154c76 views/month-view-row: Allow navigating through overflow buttons
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:45 +00:00
Hari Rana 9e8c9ae6e8 style: Add border radius to overflow button
This also adds the `.overflow` style class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:45 +00:00
Hari Rana d79a3260f0 views/month-cell: Add margins to overflow button
`margin-end` and `margin-bottom` have a 2px margin since the
`box-shadow` CSS property, which is used to mimic a border,
is offset by 1px.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:44 +00:00
Hari Rana 5ed93e73d4 views/month-cell: Add method for retrieving overflow button
This is needed for keyboard navigation, specifically for grabbing
focus and checking focus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:44 +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 bdfb4b609e views/week-view-common: Port from GtkStyleContext to GtkSnapshot
GtkStyleContext methods are deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/707>
2026-02-28 13:57:52 +00:00
Hari Rana bb2fa2a63b views/month-view-row: Find nearest vertical widget when tabbing
This was overlooked from the original commit:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598/diffs?commit_id=2ae3dd771cb9b2cc0d08a1cabb0b2f5359719d0b#c04c121e2c8eebcfb09fbcbeecff310223fe987f_708_767

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/706>
2026-02-24 19:46:47 -05:00
Hari Rana aecb17a59b views/month-view-row: Only find first/last event widget if tabbing through another widget
This was overlooked from the original commit:
https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598/diffs?commit_id=4ad8aeac65648f8d0873f8392cd8ab9109de5198#c04c121e2c8eebcfb09fbcbeecff310223fe987f_471_600

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/706>
2026-02-24 19:46:35 -05:00
Hari Rana e1c139782f views/month-view-row: Implement keyboard navigation for event widgets vertically 2026-02-24 21:22:26 -03:00
Hari Rana 4901709e63 views/month-view-row: Implement keyboard navigation for event widgets horizontally
Ideally, we should be comparing if the Y coordinate of both the
candidate and focused widgets are identical, but given font
sizing issues with special characters such as emojis
(see https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1519),
it is safer to check if these widgets intersect vertically, as
otherwise a single pixel offset may cause keyboard focus to
completely skip event widgets.
2026-02-24 21:11:40 -03:00
Hari Rana 4ae0997c3f views/month-view-row: Focus first and last event widgets
This also creates the FocusEventData struct, which stores
relevant information to compare and contrast event widgets.
2026-02-24 20:44:51 -03: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ügelandMaximiliano 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
Zoey Ahmed a38bcf9b68 month-cell: Fix accessibility warnings
* Add a tooltip to the overflow button.
* Change weather icon to have use the presentation accessible role

Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1522
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/681>
2026-01-29 02:21:42 +00:00
Hari Rana 6d47fc1db8 views/month-view-row: Add offset when allocating event widgets
The SEPARATOR_OFFSET constant is for the box shadow property
defined in month cells' CSS. Since the box-shadow property does
not contribute to layout, so these offsets need to be set manually.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/676>
2025-12-28 17:04:32 +00:00
Hari Rana b0a5ff18d5 views/month-view-row: Compute exact width of event widgets
Currently, month cells are using `round()` to allocate the width,
whereas event widgets are using implicit double → int conversion,
which causes event widgets to be offset by a pixel, and thus
touches month cells' borders.

This new approach guarantees the exact width of the event widgets
by invoking `round()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/676>
2025-12-28 17:04:32 +00:00
Adrien Plazas 9c1a7fecfc week-header: Fix end of week comparison
This fixes comparison of an event to the end of the week, so "end" can't
incorrectly be 7 anymore.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/835

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/672>
2025-12-03 20:50:15 +01: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 ef4c70fa4c month-cell: Add pill style to first day of the month.
Add a pill style to the label of the first day of the month to make it easy to identify. Adjust the border radius of the existing pill style for the current date to be the same. Apply the font-weight using the new style class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/647>
2025-10-28 14:06:44 +00:00
Philipp Sauberzweig 6e97c05a14 views: Merge month name and date number into a single label.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/647>
2025-10-28 14:06:44 +00: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
Lukáš Tyrychtr 3a544b22fc week-view: Add tooltip to the all day events expander
This adds a tooltip to the all day events expander button,
indicating whether the expander will expand or collapse
upon activation.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1449

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/637>
2025-10-17 13:59:26 -04:00
Hari Rana 3a93a4004d views/month-popover: Use adw_lerp() function
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/650>
2025-10-17 17:08:42 +00:00
Philipp Sauberzweig fc90d259b2 gui/views: Fix event margins in week header
Margins are already applied to the event widget itself through CSS.
This commit removes unnecessary margins and row spacing to bring
it in line with the month view.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/649>
2025-10-17 12:27:03 -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
Hari Rana 534fb3a83c gui: Update to libadwaita's custom properties and style classes
Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1440

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 19:59:43 -04:00
Hari Rana be0ba51481 gui: Replace dim-label with dimmed style class
`dim-label` is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 18:37:25 -04:00
Jean-François Fortin Tam e56ef92abd gcal-month-cell: Fix a typo in a comment 2025-08-18 15:16:35 -04:00
Jean-François Fortin Tam e2a3d31532 month-cell: Use full-length month names when safe to do so
Full month names are easier to notice and read while scrolling,
and would be read more naturally by text-to-speech screen readers.

An exception must be made when today is near the beginning of the month,
as the weather forecast temperatures labels might also appear there.
In that case, use the abbreviated version of the month name label.

Fixes issue #962
2025-08-18 15:16:35 -04:00
Emma Blink fbc181743b week-view: explicitly handle PgUp/PgDown via ShortcutController
ScrolledWindow handles PgUp/PgDown in bubble phase to trigger scrolling.
Which leads to inconsistent behaviour: scrolling when an event is focused,
and moving to the previous/next week when not. Explicitly handling the
shortcuts with a ShortcutController in capture phase makes it consistently
navigate to previous/next week.

Fixes #1409

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/618>
2025-07-27 16:23:40 +01:00
Jean-François Fortin Tam 1ab28d3e95 month-cell: Bold month name & 1st day labels
Make it easier to track which month you are crossing while scrolling.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/962
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/478>
2025-07-15 15:46:41 -04:00
Jean-François Fortin Tam 1b500973e6 month-cell: Simplify calls to day_of_month
We already had this local variable waiting to be used;
let's reuse it to avoid calling querying the date repeatedly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/478>
2025-07-15 15:46:41 -04: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 684ed71711 css: Rework month view's box shadows
This makes the box shadows permanent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/604>
2025-07-08 14:08:37 +00: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
Hari Rana 110856ee1a views/month-cell: Don't assert icon_tooltip_binding
The g_assert line would exit the program whenever we tried targeting
a month cell from the inspector.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/601>
2025-07-05 18:06:05 -04:00
Hari Rana 8dd8538014 views/month-cell: Use GtkWidget APIs for retrieving margin
GtkStyleContext is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/601>
2025-07-05 18:05:07 -04:00
Hari Rana b368e1f674 views/agenda-view: Set accessible properties for list items
This is needed to have the screen reader read event information
out loud.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1036
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/606>
2025-06-30 16:18:06 +00:00
Clockwork-CritterandHari Rana 951062340f views/gcal-view: Appropriately denote properties
Co-authored-by: Hari Rana <theevilskeleton@riseup.net>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/600>
2025-06-22 08:50:19 -04:00