diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2014-01-29 12:50:59 -0600 |
---|---|---|
committer | Charles Kerr <charles.kerr@canonical.com> | 2014-01-29 12:50:59 -0600 |
commit | f07f97ef53522abdce52cf3c7b583c0d6d47aa40 (patch) | |
tree | 6f535ea3e19a727f1de47914b4b3bfb80ecc2857 /src/actions.cpp | |
parent | 9045a274a93bb96be458e563bebbceca1426da96 (diff) | |
download | ayatana-indicator-datetime-f07f97ef53522abdce52cf3c7b583c0d6d47aa40.tar.gz ayatana-indicator-datetime-f07f97ef53522abdce52cf3c7b583c0d6d47aa40.tar.bz2 ayatana-indicator-datetime-f07f97ef53522abdce52cf3c7b583c0d6d47aa40.zip |
sync with lp:~larsu/indicator-datetime/reset-date and add corresponding unit tests.
Diffstat (limited to 'src/actions.cpp')
-rw-r--r-- | src/actions.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/actions.cpp b/src/actions.cpp index a6a7c0b..acf8fd4 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -108,9 +108,22 @@ void on_set_location(GSimpleAction * /*action*/, g_free(zone); } -static void on_calendar_activated(GSimpleAction * /*action*/, - GVariant * state, - gpointer gself) +void on_calendar_active_changed(GSimpleAction * /*action*/, + GVariant * state, + gpointer gself) +{ + // reset the date when the menu is shown + if (g_variant_get_boolean(state)) + { + auto self = static_cast<Actions*>(gself); + + self->set_calendar_date(self->state()->clock->localtime()); + } +} + +void on_calendar_activated(GSimpleAction * /*action*/, + GVariant * state, + gpointer gself) { const time_t t = g_variant_get_int64(state); @@ -175,6 +188,7 @@ Actions::Actions(const std::shared_ptr<State>& state): { "activate-phone-clock-app", on_phone_clock_activated }, { "activate-appointment", on_activate_appointment, "s", nullptr }, { "activate-planner", on_activate_planner, "x", nullptr }, + { "calendar-active", nullptr, nullptr, "false", on_calendar_active_changed }, { "set-location", on_set_location, "s" } }; |