Commit Graph
100 Commits
Author SHA1 Message Date
Hari Rana 4e9ea9cd51 core/timeline: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:03 +00:00
Hari Rana 170bed7755 gui/event-popover: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:02 +00:00
Hari Rana 037ffd3700 gui/event-widget: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:02 +00:00
Hari Rana 3c9a525710 gui/calendar-management: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:02 +00:00
Hari Rana 3f486c2ccc gui/search-button: Replace "context" property with context getter method
This is the last remaining widget whose `context` property was bound
to GcalWindow's on construction and was null-asserted before
setting the value, making the FIXME comment unnecessary.

Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1463
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:02 +00:00
Hari Rana c7c5d49b14 gui/sync-indicator: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:01 +00:00
Hari Rana 0e73034ffe gui/quick-add-popover: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:01 +00:00
Hari Rana 9b4c166a18 event-editor/event-editor-dialog: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:01 +00:00
Hari Rana f44a1ee942 event-editor/event-editor-section: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana 669906c601 event-editor/summary-section: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana b979ea05b5 event-editor/schedule-section: 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
Hari Rana 7bcb78b6ae event-editor/reminders-section: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana aafbd71ced event-editor/notes-section: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana a51b65f5f7 event-editor/attendees-section: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana 15a7a8cbd2 views/view: Remove "context" property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana ccd3e5cae3 common/date-chooser: Replace "context" method with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:30:00 +00:00
Hari Rana 5616ba2c03 views/agenda-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
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
Hari Rana d9f02cee20 views/week-view: Replace "context" property with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:29:59 +00:00
Hari Rana a687d8f10b gui/weather-settings: Replace "context" with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:29:59 +00:00
Hari Rana af30d8c43f gui/calendar-list: Replace "context" with context getter method
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:29:58 +00:00
Hari Rana a84cf3aed9 utils: Add macro for getting default application
This will be needed as a replacement for the removal of the
"context" property on every object.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702>
2026-03-23 19:29:58 +00:00
Hari Rana 855fea34bf window: Only clear last_focused_widget if the widget has been focused
When opening the event editor dialog as a new event, `set_new_event_mode()`
immediately tries to focus the last focused widget, which won't work
because it is unfocusable. `focus_last_focused_widget()` then clears
clears the pointer regardless of whether the widget has successfully
grabbed focus or not. So, we want to only clear focus if the widget
has successfully grabbed focus.

Related: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1566
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/730>
2026-03-22 20:19:54 +00:00
Hari Rana 3c94e255ac window: Grab focus after closing Event Editor dialog
Fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1566
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/730>
2026-03-22 20:19:54 +00:00
Hari Rana d0bdc9f2af gui/month-view-row: Add upward variable
`!downward` is disambiguous and could merely be interpreted
as "not downward and not upward either". The `upward` variable
is explicit and describes literally the condition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/729>
2026-03-21 10:39:16 -04:00
Hari Rana b75c44795e gui/meeting-row: Unset maximum width characters
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/728>
2026-03-20 11:27:54 -04:00
Hari Rana 4f067eeec7 gui/event-popover: Unset maximum width characters
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/728>
2026-03-20 11:27:54 -04:00
Hari RanaandJamie Gravendeel ec5884fcce gui/event-popover: Wrap content inside AdwClamp widget
The event popover contains a lot of text in different sizes, which
pushes us to magic-number the maximum amount of characters
(i.e. `max-width-chars`) and hope that all is well.

This approach addresses that by simply clamping the parent widget
to the desired size, allowing us to remove all instances
of `max-width-chars`.

Do note that `Adw.Clamp:tightening-threshold` is set to 400 by default,
which technically doesn't need to bind to `Adw.Clamp:maximum-size` at
the moment, but I decided to do it anyway in case we want to change
`Adw.Clamp:maximum-size` in the future and can't figure out why
the margins are off.

Co-authored-by: Jamie Gravendeel <me@jamie.garden>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/728>
2026-03-20 11:24:47 -04:00
Hari Rana dd3e4dce4a readme: Use new default screenshot
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/724>
2026-03-12 01:02:30 -04:00
Hari Rana 39cee3cbc3 event-editor/multi-choice: Check if destructor exists before clearing
Without this check, the app supposedly crashes when we close it.

GtkListBox frees itself the same way.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/723>
2026-03-12 01:12:29 +00: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 da7b625e18 data: Update screenshot URLs
See:
- https://gitlab.gnome.org/Teams/Websites/static.gnome.org/-/merge_requests/47#note_2701250
- https://gitlab.gnome.org/Teams/Websites/static.gnome.org/-/merge_requests/48

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/719>
2026-03-08 20:15:26 -04:00
Hari Rana 1141c758a4 data: Update screenshots
This also sets the month view as the default screenshot.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/717>
2026-03-08 09:26:11 -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 d6a450ff1f gui/window: Focus last focused widget upon closing quick add popover
This also introduces the `focus_last_focused_widget()` to make the
code a little bit cleaner.

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 3088b2260a views/month-view-row: Add "activate-cell" signal
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:18 -05:00
Hari Rana cd0138393f views/month-cell: Add activate signal
This will be needed for keyboard navigation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:17 -05:00
Hari Rana 471f81eb31 views/month-view-row: Implement focusing cells horizontally
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:17 -05:00
Hari Rana e6e201d9aa views/month-view-row: Implement focusing cells vertically
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:17 -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 405f826252 views/month-view-row: Add method for focusing adjacent cells
This method allows to focus the month cells behind the event widgets.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:17 -05:00
Hari Rana d76d37dff2 views/month-cell: Add focus styling
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:17 -05:00
Hari Rana e88f77802b views/month-cell: Override focus() virtual function
Without this patch, focus immediately goes to the "Previous Month"
button at startup, for some unknown reason.
So, as a workaround, skip focus if the root cannot retrieve the
current focused widget.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564>
2026-03-03 18:35:17 -05:00
Hari Rana 80adbd0d23 views/month-cell: Inherit GtkWidget
AdwBreakpointBin, the parent, cannot set focus to itself. Instead
of focusing GtkOverlay, a child widget, we should instead inherit
GtkWidget to allow focusing that instead.

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 caed41abdd views/month-cell: Set accessibility properties for overflow button
This uses the "toggle-button" role instead of GtkToggleButton widget,
as GtkToggleButton remains toggled after closing the month popover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/598>
2026-03-01 19:35:46 +00: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 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 19879c6c02 style: Decrease event widget's outline offset
Having an offset would hide the overflowing pixels.

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 033e719833 event-editor/alarm-row: Remove volume_button member
`volume_button` no longer exists.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/708>
2026-02-27 21:37:42 -05: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
Hari Rana 19171e5540 gui/event-widget: Position event popover to the pointer's
Currently, the event popover will always set its position to the
center of the event widget. This becomes an undesirable behavior
with long(er) event widgets, as clicking the edges will require
the user to physically move their pointer all the way to the
popover, which may be challenging depending on the distance.

This addresses this problematic behavior by positioning the popover
right above the pointer only when the event is a multi-day event,
and when the event widget is not inside a GtkListBox widget.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/677>
2026-02-11 09:49:08 -05: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
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 4c9d7e5a79 build: Depend on GTK4 4.21.2
We'll use the new "prefers-reduced-motion" property in GtkSettings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/670>
2025-11-29 08:46:55 -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
Hari Rana 81990357fe quick-add-popover: Make rows behave like radio buttons
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:44:30 -03:00
Hari Rana c624c9b53b quick-add-popover: Rework population and update
This emits the `changed` signal, allowing us to filter out a wider
variety of calendars. It also allows us to remove the loops
that needed to re-run every time the user changed the default
calendar or closed the popover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:44:29 -03:00
Hari Rana b83498cb1f quick-add-popover: Use calendar row widget
The calendar row widget also makes it easy for us to display
hidden calendars.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:42:39 -03:00
Hari Rana 7e63f5f7e2 calendar-row: Add APIs
Since the calendar row widget is becoming an expandable widget,
several APIs were added to the widget:
- `gcal_calendar_row_get_calendar`
- `gcal_calendar_row_add_suffix`
- `gcal_calendar_row_get_first_suffix_child`
- `gcal_calendar_row_add_header_class`
- `gcal_calendar_row_remove_header_class`

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:37:18 -03:00
Hari Rana f8c5751174 calendar-row: Rename calendar-combo-row-item to calendar-row
Currently, the quick add popover implements its own row
widget for each calendar, which duplicates tons of unnecessary
code. This commit streamlines the calendar-combo-row-item row
widget to make it reusable elsewhere.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:37:07 -03:00
Hari Rana 324bde2c72 quick-add-popover: Port to libadwaita widgets and merge stack pages
Both stack pages are merged into one page to avoid additional
cycling through pages.

`GtkListBoxRow`s were replaced by `AdwActionRow`s with
`GtkCheckBox`es as children.

Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/90,
https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1003

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:33:23 -03:00
Hari Rana ac6cccee53 quick-add-popover: Port to GListModel
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/362>
2025-11-18 11:31:24 -03:00
Hari Rana 0c09e41796 gui/quick-add-popover: Specify const for strings using gettext
`gettext` returns a static string.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/656>
2025-10-31 09:40:44 -04:00
Hari Rana c3098bf23a gui/quick-add-popover: Automatically free strings
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/656>
2025-10-31 09:39:05 -04:00
Hari Rana eefea2f7f4 gui/quick-add-popover: Handle memory leaks
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/656>
2025-10-31 09:31:23 -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
Hari Rana 9213a4fbe4 gui/window: Only set focus when popover is explicitly closed
The window would either set focus to the event widget or a
focusable ancestor, no matter how the event popover was being
closed.

This caused a major accessibility regression where,
whenever the event editor dialog opened from the event
popover, the window set focus to the event widget instead of
the content inside the dialog, which made the dialog incapable
of navigating through until the dialog was focused. This also
prevented mnemonics from being triggered.

This patch addresses that bug by only setting focus whenever
the popover is being closed explicitly; as in, when the user
presses outside the popover to hide it or pressing escape.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1398
2025-08-29 21:45:59 -06: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 27b4237410 css: Reduce week number background opacity
The week numbers' foreground and background colors are relatively
low in contrast; decreasing the background color's opacity heavily
helps with contrast.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 20:00:19 -04:00
Hari Rana 6252069d26 css: Adjust week number borders
We should generally avoid setting padding without subtracting with
the border width. On high contrast style, week numbers receive a
1px border width without subtracting it from the padding. This
causes a layout shift and makes the sidebar wider.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 20:00:19 -04: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 f887ea10f8 css: Remove unused style classes
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 18:37:29 -04:00
Hari Rana 8889139b82 gui/month-view: Use dimmed style class
Instead of manually setting the font color for the month view's
week header, the `dimmed` style class dims labels according to the
HIG while simultaneously accommodating high contrast users.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/624>
2025-08-18 18:37:29 -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
Hari Rana 78e87fad4b gui/event-popover: Apply style to italicize
Using the italic attribute in the label property made the
attribute translatable, which is undesired.

Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1427
2025-08-02 15:20:36 -04:00
Hari Rana d477ac2d72 event-editor/multi-choice: Focus widget if increment/decrement buttons are pressed
This also re-sets the state flags of the buttons, because otherwise
the increment/decrement buttons lose their hovered state after
the widget gains focus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/616>
2025-07-27 07:20:15 -04:00