From 49fb1d3bea0b3a96e5cc2adffbd957c3f965ef4a Mon Sep 17 00:00:00 2001 From: Victor Kareh Date: Fri, 19 Sep 2025 18:27:32 -0400 Subject: clock: Add DBus 'activate' callback This allows users to open the clock/calendar popup through DBus, which means we could configure a keybinding for it. --- applets/clock/clock.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/applets/clock/clock.c b/applets/clock/clock.c index 2e26b39f..bc01b290 100644 --- a/applets/clock/clock.c +++ b/applets/clock/clock.c @@ -1435,6 +1435,21 @@ toggle_calendar (GtkWidget *button, update_calendar_popup (cd); } +static gboolean +clock_applet_activate (MatePanelApplet *applet, + const gchar *action, + guint32 timestamp, + ClockData *cd) +{ + if (g_strcmp0 (action, "toggle-calendar") == 0) { + /* Toggle the button state first, then activate popup */ + gboolean current_state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cd->panel_button)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cd->panel_button), !current_state); + return TRUE; + } + return FALSE; +} + static gboolean do_not_eat_button_press (GtkWidget *widget, GdkEventButton *event) @@ -2739,6 +2754,10 @@ fill_clock_applet (MatePanelApplet *applet) G_CALLBACK (applet_change_orient), cd); + g_signal_connect (cd->applet, "activate", + G_CALLBACK (clock_applet_activate), + cd); + g_signal_connect (cd->panel_button, "size-allocate", G_CALLBACK (panel_button_change_pixel_size), cd); -- cgit v1.2.1