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

Reply via email to