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
Hari Rana
8c02d0ce24
views/month: Use macros for first and last visible row indexes
2025-05-20 22:33:43 -04:00
Markus Göllnitz
87607efa90
views/month: Fix measurement of month view and month rows
...
The measurement in opposit direction of the one in which
the elements are lined up needs not to add up all the
sizes but just get the maximal size.
This bug leads to too high minimal and natural widths
(and heights) of the month view.
Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it >
2025-01-22 16:45:23 -03:00
Georges Basile Stavracas Neto
5f86b88c3b
views/month: Increase overflow popover min width
...
Makes it so that it's at least 1.25 the width of a day cell, and at
most 1.5 of that.
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1166
2024-08-13 16:25:45 +00:00
Georges Basile Stavracas Neto
2b85b9c680
views/month: Rename a variable
...
Makes it clearer that this is the day cell.
2024-08-13 16:25:45 +00:00
Georges Basile Stavracas Neto
54657788d0
views/month: Use variables some more
...
Makes it easier to reason about the if conditions there.
2024-08-13 16:25:45 +00:00
Rami Alkawadri
c06e45f595
month-view: Make the selection range type date only
2024-01-15 19:31:56 +00:00
Georges Basile Stavracas Neto
ddaf0e17a4
views/month: Create timed ranges
...
This allows proper range comparisons.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1106
2023-09-28 13:21:30 -03:00
Georges Basile Stavracas Neto
3ff57f71e4
views/month: Dispose overflow popover
2023-09-28 11:52:40 -03:00
Georges Basile Stavracas Neto
27ee81b072
views/month: Only diff when current range exists
...
Right after bring created, the current date - and consequently
the range - is NULL. We shouldn't diff in this case.
2023-09-28 11:25:27 -03:00
Georges Basile Stavracas Neto
a7f798a815
views/month: Use en dash
...
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1107
2023-09-22 11:45:47 -03:00
Georges Basile Stavracas Neto
8d79fe2ffd
views/month: Demote assertion to regular check
...
We can have a NULL selection start, when starting the drag on the
header section.
2023-09-13 18:34:22 -03:00
Georges Basile Stavracas Neto
f1767037ac
views/month: Clear selection after showing overflow
...
This should prevent selection after clicking any overflow button.
2023-09-13 09:17:12 -03:00
Georges Basile Stavracas Neto
ad34aa40fc
views/month: Add header above week rows
...
Otherwise GTK4 will pick the rows, even when they're clipped.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1095
2023-09-09 20:14:39 -03:00
Georges Basile Stavracas Neto
5503e5ca50
views/month: Handle reduced animations setting
...
Move rows slightly faster in that case.
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1080
2023-09-02 10:28:39 -03:00
Georges Basile Stavracas Neto
20ad7f3676
views/month: Reset offset when animation is done
2023-09-02 10:26:41 -03:00
Georges Basile Stavracas Neto
da84b727b3
core/subscriber: Pass old event on update
...
Now that we keep precise control over GcalEvent instances, and
can use simple pointer comparisons everywhere, GcalMonthView
implemented its update function as a simple remove + add pair.
The problem is that we're not passing the old event instance,
so removals never actually happen, since the new instance is
not yet available to subscribers.
Pass old event in additio to the new one, and use it where it
makes sense.
Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1073
2023-08-18 10:41:41 -03:00
Georges Basile Stavracas Neto
bd989aae66
views/month: Implement event creation flow
...
Add a click gesture to detect when we have to start monitoring
cursor motion. Also add a motion event controller to react to
cursor motion, and enable and disable the this motion controller
on button press and release, respectively.
Selection is implemented as a pair of GDateTimes stored in the
month view struct. Whenever a selection begins, the start date
is set; the end date is only set when moving the cursor. It is
valid to have a start of the selection, and no end (meaning, a
1 day selection); it is, however, forbidden to have an end but
not a start.
Future improvements can be added later, such as scrolling when
moving the cursor close to the edges of the month view. We're
gonna have to live without that for now though.
Implement the GcalView.clear_marks vfunc now that we have a
selection to operate on.
2023-08-17 21:13:54 -03:00
Georges Basile Stavracas Neto
ded56392ef
views/month: Use inclusive week end to format title
...
Otherwise we end up with D+1 in the last date.
2023-08-17 19:41:55 -03:00
Georges Basile Stavracas Neto
0e4c4d5177
views/month: Use month and year rangers in titles
2023-08-17 18:46:52 -03:00
Georges Basile Stavracas Neto
f1f9d83943
views/month: Implement get_children_by_uuid
...
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1057
2023-08-14 14:57:51 -03:00
Georges Basile Stavracas Neto
1fd984306f
views/month: Animate discrete scrolls
...
When scrolling with a scroll wheel, animate towards a target
row. If multiple scrolls happen before the animation completes,
change the target row of the animation.
2023-08-13 18:37:12 -03:00
Georges Basile Stavracas Neto
8f04f40272
views/month: Factor out row offsetting in a function
...
And use it in the pixel-based variant.
2023-08-13 18:37:12 -03:00
Georges Basile Stavracas Neto
12a9e8193f
views/month: Rename a function
...
We'll introduce a variant of this function that operates directly
on row offsets, instead of pixel values.
2023-08-13 18:37:12 -03:00
Georges Basile Stavracas Neto
da2b7328e0
views/month: Implement event updates
...
Just do a stupid remove + add, which is far from ideal but will
be enough for the time being.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
176f8f28a8
views/month: Show overflow popover when requested
...
Basically, all that we used to do, but written in a different
way for the new month view.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
9b343db339
views/month: Improve date calculation for cell style
...
Use the center the view as the date with which the day cells
are styled. This should be enough to highlight the month with
most days visible onscreen.
2023-08-11 15:13:44 -03:00
Georges Basile Stavracas Neto
e7846a6b9c
views/month-view: Change visuals of out-of-month day cells
...
This still looks like garbage becase of the rudimentary way we
compute the current date, but it's a start.
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
Felipe Kinoshita
72eb199f84
general: Stop using get_allocated_width/height
...
gtk_widget_get_allocated_width and gtk_widget_get_allocated_height are
deprecated, let's use the recommended functions.
2023-05-30 05:13:34 -03:00