From dec8699728fca556f8295d6688d1fc25be974385 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis <george.kiagiadakis@collabora.com> Date: Fri, 20 Mar 2020 14:42:33 +0200 Subject: [PATCH] session-item: implement default activation sequence with no steps This allows activating a dummy item for unit testing --- lib/wp/session-item.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/wp/session-item.c b/lib/wp/session-item.c index cfe52910..9d4937c3 100644 --- a/lib/wp/session-item.c +++ b/lib/wp/session-item.c @@ -64,6 +64,15 @@ wp_session_item_finalize (GObject * object) G_OBJECT_CLASS (wp_session_item_parent_class)->finalize (object); } +static guint +wp_session_item_default_get_next_step (WpSessionItem * self, + WpTransition * transition, guint step) +{ + /* the default implementation just activates instantly, + without taking any action */ + return WP_TRANSITION_STEP_NONE; +} + static void wp_session_item_default_reset (WpSessionItem * self) { @@ -84,6 +93,8 @@ wp_session_item_class_init (WpSessionItemClass * klass) klass->reset = wp_session_item_default_reset; + klass->get_next_step = wp_session_item_default_get_next_step; + /** * WpSessionItem::flags-changed: * @self: the session item @@ -231,12 +242,15 @@ wp_si_transition_get_next_step (WpTransition * transition, guint step) g_return_val_if_fail ( WP_SESSION_ITEM_GET_CLASS (item)->get_next_step, WP_TRANSITION_STEP_ERROR); + + step = WP_SESSION_ITEM_GET_CLASS (item)->get_next_step (item, + transition, step); + g_return_val_if_fail ( + step == WP_TRANSITION_STEP_NONE || WP_SESSION_ITEM_GET_CLASS (item)->execute_step, WP_TRANSITION_STEP_ERROR); - - return WP_SESSION_ITEM_GET_CLASS (item)->get_next_step (item, - transition, step); + return step; } static void -- GitLab