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>
This commit is contained in:
Hari Rana
2026-03-03 18:35:17 -05:00
parent 471f81eb31
commit cd0138393f
2 changed files with 36 additions and 0 deletions
+1
View File
@@ -9,6 +9,7 @@ template $GcalMonthCell: Widget {
}
accessible-role: grid_cell;
receives-default: true;
focusable: true;
Adw.BreakpointBin breakpoint_bin {
+35
View File
@@ -62,6 +62,7 @@ G_DEFINE_TYPE (GcalMonthCell, gcal_month_cell, GTK_TYPE_WIDGET)
enum
{
SHOW_OVERFLOW,
ACTIVATE,
N_SIGNALS
};
@@ -441,6 +442,40 @@ gcal_month_cell_class_init (GcalMonthCellClass *klass)
1,
GTK_TYPE_WIDGET);
signals[ACTIVATE] = g_signal_new ("activate",
GCAL_TYPE_MONTH_CELL,
G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
0,
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE,
0);
gtk_widget_class_set_activate_signal (widget_class, signals[ACTIVATE]);
{
g_autoptr (GtkShortcutAction) activate_action = NULL;
const guint activate_keyvals[] = {
GDK_KEY_space,
GDK_KEY_KP_Space,
GDK_KEY_Return,
GDK_KEY_ISO_Enter,
GDK_KEY_KP_Enter,
};
activate_action = gtk_signal_action_new ("activate");
for (size_t i = 0; i < G_N_ELEMENTS (activate_keyvals); i++)
{
g_autoptr (GtkShortcut) activate_shortcut = NULL;
activate_shortcut = gtk_shortcut_new (gtk_keyval_trigger_new (activate_keyvals[i], 0),
g_object_ref (activate_action));
gtk_widget_class_add_shortcut (widget_class, activate_shortcut);
}
}
properties[PROP_CONTEXT] = g_param_spec_object ("context",
"Context",
"The GcalContext of the application",