Hari Rana
98a993de4d
gui/window: Reuse calendar management dialog
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/712 >
2026-03-24 16:14:47 +00:00
Hari Rana
088d826c34
gui/importer: Replace "context" property with context getter method
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702 >
2026-03-23 19:30:04 +00:00
Hari Rana
b5d12237d5
gui/window: Remove "context" property
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/702 >
2026-03-23 19:30:04 +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
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
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
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
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
Zoey Ahmed
c3635967bc
window: Go back/forth views using hardware buttons
...
Refactor `on_window_previous_date_activated_cb` and
`on_window_next_date_activated_cb` into separate methods for going to
the prev/next view, to be used in the callbacks for both the
forward/back buttons in the UI, and for the `Gtk.GestureClick` callbacks
that listens for the hardware buttons to be pressed.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1494
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/682 >
2026-01-15 17:02:17 +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
Jamie Gravendeel
48b9bcc0e8
window: Make view button tooltips HIG compliant
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/592 >
2025-07-08 15:31:06 +00:00
Jamie Gravendeel
7eb65ded71
window: Use closures for view button tooltip text
...
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/592 >
2025-07-08 15:31:06 +00:00
Georges Basile Stavracas Neto
4e7bc70450
gui/window: Cosmetics
2025-06-30 12:48:47 -03:00
Jamie Gravendeel
c59965670d
window: Use closures for view button icons
...
Fixes #1405
Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/591 >
2025-06-10 13:16:34 +02:00
Markus Göllnitz
7764b4dc0a
window: reintroduce back and forward buttons
...
They reappear in the newest adaptive layout wireframes.
These were dropped in
54a8445abb ("window: Drop the back and forward buttons")
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/933
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
b728e5beae
window: reorganise top and bottom toolbars
...
This lets users directly launch the calendar dialogue
instead of sidebar in narrow mode.
It moves the view switcher to bottom when narrow.
This also makes the sidebar overlaid for an intermediate
step between narrow and always optionally visible sidebar.
Further, it moves the today button to bottom with the new
navigation button at its old location.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1007
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
df182ed942
calendar-button: change widget to standalone list for sidebar
...
The sync entry is dropped here in favour of one in the
main menu.
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
dec31cadd4
views: move agenda view to main area
...
This prepares for multiple views to be there for mobile
users, and is the location at which a dedicated agenda
view for desktop will be, once the current agenda view
is refactored to suit desktop use-cases better.
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
26db7e1627
window: only allow changing to visible view
...
As of now, every view is visible. That however, will
change with a subsequent commit moving the agenda view to
the main area and introducing breakpoint-dependent view
visibilities.
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
3dce4414a8
enums+window: make GcalWindowView iterators order and length agnostic
...
Currently, iterators over the GcalWindowView enum relied
on knowing the first and last enum value. But we know,
without knowing which is the first, that an enum in C
will assign 0 to its first value if not otherwise
specified.
And with the trick of a new end value similar to N_PROPS,
we can determine the amount of available window views
without relying on know which it is.
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
55df257ed1
window: remove unnecessary single-childed Gtk.Box
...
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
Hari Rana
3d7197d3cd
gui/window: Set parent widget as last focus when event widget is unfocusable
...
When selecting an event with a pointer, the keyboard-focused widget
was being set instead of the last focus widget, which was
then refocused after the event popover closed.
This patch fixes that bug by only setting the parent widget as
the last focus widget if the event widget itself is unfocusable,
like in the agenda view. The `GtkWidget:focus-on-click` property
is already enabled, so it takes care of refocusing the event
widget if it's focusable.
Commit https://gitlab.gnome.org/GNOME/gnome-calendar/-/commit/a3fb57939a307f5b661cc2f205e562f43a0a31fa
technically fixed https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/915 ,
but this patch solidifies the commit.
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/915
2025-05-05 12:05:41 -04:00
Georges Basile Stavracas Neto
c42d987335
gui/window: Track focus widget when showing event preview
...
Store a weak pointer to whatever widget triggered the preview, and
restore when the popover is closed. This should fix the focused list
box row issue.
2025-04-30 21:43:52 -03:00
Titouan Real
42f891ff42
gui/event-editor: Add time zone selection
...
Creates a chooser managing a GDateTime. The chooser allows the user
to change the date, the time and the timezone independently.
This replaces the precedent GcalTimeChooserRow widget, because it is
easier to manage the different interactions with the user in a single
widget.
Co-authored-by: Georges Basile Stavracas Neto
<georges.stavracas@gmail.com >
2025-01-31 19:37:26 -03:00
Georges Basile Stavracas Neto
416a369f0c
window: Remove unused error handling
2024-11-06 10:43:42 -03:00
Georges Basile Stavracas Neto
1e8fa097e0
window: Simplify CSS recalculation code
2024-11-06 10:36:46 -03:00
Enzo MAROS
0e09efc43c
window: Create calendar-management-dialog on demand
...
When the user deletes a calendar in the calendar management dialog, a
popover allows them to undo the deletion. The calendar is fully deleted
only when the toast is dismissed or when the toast reaches its timeout.
When the user closes the calendar management dialog without dismissing
the toast and before the end of the timeout, the calendar can still be
manipulated for a short period of time.
To fix this, I removed the calendar-management-dialog from the UI of the
window, and made the window create and destroy the dialog on demand.
This forces the toast overlay to dismiss all toasts.
2024-10-22 12:35:45 +00:00
Diego Iván
dfc5a9b970
drop-overlay: Introduce GcalDropOverlay
...
A new widget to perform drag and drop operations, for example,
dropping ICS files to the GcalWindow. It allows to overlay
a child for visual feedback when a DnD operation is done.
either in the main window or in the import dialog,
depending on whether none could be imported, or just some
of them.
It is based on Loupe's DragOverlay widget.
Closes #1257
2024-08-05 12:31:31 -03:00
Abdullahi Usman
094d1330f4
gcal-window: start selected day at 00:00:00(HH:MM:SS)
...
whenever a day is selected anywhere, let start it at 00:00:00
fixes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1256
2024-07-31 22:11:25 +01:00
Diego Iván
2038ff1da1
import-dialog: Port to AdwDialog
...
This also brings some other changes:
* Enables closing the window using Escape
* Fixes a few criticals
Closes #1258
2024-07-24 16:00:59 +00:00
Georges Basile Stavracas Neto
de5f663373
style: Use CSS variables for event widget styling
...
This vastly simplifies the code!
2024-06-11 17:22:35 -03:00
Hari Rana
1494f7407f
summary-section: Grab focus on summary entry when opening dialog
...
Due to an unintentional behavior change from AdwWindow to AdwDialog, the entry row must be focused after the dialog is displayed.
2024-02-24 22:53:54 +00:00
Georges Basile Stavracas Neto
350cc6479f
window: Use adw_dialog_present() everywhere
2024-01-27 12:53:22 -03:00
Georges Basile Stavracas Neto
b52b27eace
event-editor: Turn into an AdwDialog
2024-01-27 12:38:35 -03:00
Georges Basile Stavracas Neto
72d3caaf94
calendar-management: Make it an AdwDialog
...
So it can behave like a bottom sheet when collapsed.
2024-01-27 12:32:12 -03:00
Rami Alkawadri
ff3a08ba95
window: Use GcalRange in NewEventData
2024-01-15 19:31:56 +00:00
Georges Basile Stavracas Neto
95cc40d8a8
window: Use non-deprecated function
...
gtk_widget_compute_point() is the hot new thing.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
57fa7b2d48
window: Compare week for month view too
...
The new month view operates on week rows, so it makes sense to
perform the same check than that of the week view.
https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1063
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
d5a36d4ad2
view: Operate on ranges
...
This is the data struct we should be using everywhere now.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
7e26bd5649
views/dazzling: Make it *the* month view
...
And move the old one to the attic. I'll keep the files around for
a while.
2023-08-11 15:13:44 -03:00