This is an automated email from the git hooks/post-receive script. nomad pushed a commit to branch master in repository apps/xfdashboard.
commit 2c0376b9cf760d70d3963a27ade76c3d46efa4e9 Author: Stephan Haller <[email protected]> Date: Fri Aug 26 13:35:57 2016 +0200 Aloow to get default background drawing function of XfdashboardBackground get called if a custom function at virtual function (*draw_background) of XfdashboardBackground was set and FALSE or CLUTTER_EVENT_PROPAGATE was returned by this custom function. --- libxfdashboard/background.c | 96 +++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/libxfdashboard/background.c b/libxfdashboard/background.c index 11a3319..fa87c06 100644 --- a/libxfdashboard/background.c +++ b/libxfdashboard/background.c @@ -96,51 +96,11 @@ static GParamSpec* XfdashboardBackgroundProperties[PROP_LAST]={ 0, }; /* IMPLEMENTATION: Private variables and methods */ -/* Outline effect emitted signal to draw it so proxy this signal through this - * actor object instance first to allow overriding the default draw function. - * This function should return TRUE to stop further processing of this signal - * and to avoid getting the default signal handler to draw the oultine at - * XfdashboardOutlineEffect called. FALSE has to be returned to get it called, - * i.e. no custom function to draw outline was set. - */ -static gboolean _xfdashboard_background_on_draw_outline_effect(XfdashboardBackground *self, - ClutterEffectPaintFlags inFlags, - ClutterActor *inTarget, - gfloat inWidth, - gfloat inHeight, - gpointer inUserData) -{ - XfdashboardBackgroundClass *klass; - gboolean handled; - - g_return_val_if_fail(XFDASHBOARD_IS_BACKGROUND(self), CLUTTER_EVENT_PROPAGATE); - g_return_val_if_fail(CLUTTER_IS_ACTOR(inTarget), CLUTTER_EVENT_PROPAGATE); - g_return_val_if_fail(XFDASHBOARD_IS_OUTLINE_EFFECT(inUserData), CLUTTER_EVENT_PROPAGATE); - - /* By default the signal was not handled */ - handled=CLUTTER_EVENT_PROPAGATE; - - /* If a custom function to draw outline was set, call it and store handled result */ - klass=XFDASHBOARD_BACKGROUND_GET_CLASS(self); - if(klass->draw_outline) - { - handled=(klass->draw_outline)(self, inFlags, inWidth, inHeight); - } - - /* Return handled state. If it is TRUE the further processing of this signal - * will stop and that means that the default draw function of XfdashboardOutlineEffect - * will never be called - it is overriden. If it is FALSE the next signal handler - * (which might be the default signal handler of XfdashboardOutlineEffect and - * therefore the default drawing function for outlines) is called. - */ - return(handled); -} - -/* Draw background canvas */ +/* Default handler to draw background canvas */ static gboolean _xfdashboard_background_draw_background(XfdashboardBackground *self, - cairo_t *inContext, - gint inWidth, - gint inHeight) + cairo_t *inContext, + gint inWidth, + gint inHeight) { XfdashboardBackgroundPrivate *priv; @@ -256,6 +216,12 @@ static gboolean _xfdashboard_background_on_draw_background_canvas(XfdashboardBac handled=(klass->draw_background)(self, inContext, inWidth, inHeight); } + /* If this signal to draw background was not handled yet call default handler */ + if(handled==CLUTTER_EVENT_PROPAGATE) + { + handled=_xfdashboard_background_draw_background(self, inContext, inWidth, inHeight); + } + /* Return handled state. If it is TRUE the further processing of this signal * will stop and that means that the default draw function of this object instance * will never be called - it is overriden. If it is FALSE the next signal handler @@ -265,6 +231,46 @@ static gboolean _xfdashboard_background_on_draw_background_canvas(XfdashboardBac return(handled); } +/* Outline effect emitted signal to draw it so proxy this signal through this + * actor object instance first to allow overriding the default draw function. + * This function should return TRUE to stop further processing of this signal + * and to avoid getting the default signal handler to draw the oultine at + * XfdashboardOutlineEffect called. FALSE has to be returned to get it called, + * i.e. no custom function to draw outline was set. + */ +static gboolean _xfdashboard_background_on_draw_outline_effect(XfdashboardBackground *self, + ClutterEffectPaintFlags inFlags, + ClutterActor *inTarget, + gfloat inWidth, + gfloat inHeight, + gpointer inUserData) +{ + XfdashboardBackgroundClass *klass; + gboolean handled; + + g_return_val_if_fail(XFDASHBOARD_IS_BACKGROUND(self), CLUTTER_EVENT_PROPAGATE); + g_return_val_if_fail(CLUTTER_IS_ACTOR(inTarget), CLUTTER_EVENT_PROPAGATE); + g_return_val_if_fail(XFDASHBOARD_IS_OUTLINE_EFFECT(inUserData), CLUTTER_EVENT_PROPAGATE); + + /* By default the signal was not handled */ + handled=CLUTTER_EVENT_PROPAGATE; + + /* If a custom function to draw outline was set, call it and store handled result */ + klass=XFDASHBOARD_BACKGROUND_GET_CLASS(self); + if(klass->draw_outline) + { + handled=(klass->draw_outline)(self, inFlags, inWidth, inHeight); + } + + /* Return handled state. If it is TRUE the further processing of this signal + * will stop and that means that the default draw function of XfdashboardOutlineEffect + * will never be called - it is overriden. If it is FALSE the next signal handler + * (which might be the default signal handler of XfdashboardOutlineEffect and + * therefore the default drawing function for outlines) is called. + */ + return(handled); +} + /* IMPLEMENTATION: ClutterActor */ @@ -488,8 +494,6 @@ static void xfdashboard_background_class_init(XfdashboardBackgroundClass *klass) GObjectClass *gobjectClass=G_OBJECT_CLASS(klass); /* Override functions */ - klass->draw_background=_xfdashboard_background_draw_background; - clutterActorClass->paint_node=_xfdashboard_background_paint_node; clutterActorClass->allocate=_xfdashboard_background_allocate; -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
