kwo pushed a commit to branch master.

commit 05834cf1e19181cb140935e4d65e5af0896d077d
Author: Kim Woelders <[email protected]>
Date:   Sat Jun 29 16:43:39 2013 +0200

    Tweak button event callback parameter.
---
 src/buttons.c  | 19 +++++++++----------
 src/buttons.h  |  6 +++---
 src/desktops.c |  9 ++++-----
 src/slideout.c |  6 +++---
 4 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/src/buttons.c b/src/buttons.c
index cf07adf..c16bff9 100644
--- a/src/buttons.c
+++ b/src/buttons.c
@@ -65,8 +65,8 @@ struct _button {
    char                default_show;
    char                state;
    char                left;
-   EObj               *owner;
-   ButtonCbFunc       *func;
+   ButtonCbFunc       *cb_func;
+   void               *cb_prm;
 
 #if 0                          /* Unused */
    Window              inside_win;
@@ -288,7 +288,6 @@ ButtonSwallowInto(Button * b, EObj * eo)
    b->internal = 1;
    b->default_show = 0;
    b->flags |= FLAG_FIXED;
-   b->owner = eo;
    b->ref_count++;
    EobjReparent(EoObj(b), eo, 0, 0);
    ButtonCalc(b);
@@ -298,10 +297,10 @@ ButtonSwallowInto(Button * b, EObj * eo)
 }
 
 void
-ButtonSetCallback(Button * b, ButtonCbFunc * func, EObj * eo)
+ButtonSetCallback(Button * b, ButtonCbFunc * func, void *prm)
 {
-   b->owner = eo;
-   b->func = func;
+   b->cb_prm = prm;
+   b->cb_func = func;
 }
 
 static void
@@ -481,8 +480,8 @@ ButtonsMoveStickyToDesk(Desk * dsk)
 static void
 ButtonDoAction(Button * b, XEvent * ev)
 {
-   if (b->owner && b->func)
-      b->func(b->owner, ev, b->aclass);
+   if (b->cb_func)
+      b->cb_func(b->cb_prm, ev, b->aclass);
    else
       ActionclassEvent(b->aclass, ev, NULL);
 }
@@ -650,8 +649,8 @@ ButtonHandleEvents(Win win __UNUSED__, XEvent * ev, void 
*prm)
        break;
      }
 
-   if (b->func)
-      b->func(b->owner, ev, NULL);
+   if (b->cb_func)
+      b->cb_func(b->cb_prm, ev, NULL);
 }
 
 /*
diff --git a/src/buttons.h b/src/buttons.h
index 7914825..dd34c97 100644
--- a/src/buttons.h
+++ b/src/buttons.h
@@ -28,7 +28,7 @@
 #include "eobj.h"
 #include "etypes.h"
 
-typedef void        (ButtonCbFunc) (EObj * eo, XEvent * ev, ActionClass * ac);
+typedef void        (ButtonCbFunc) (void *prm, XEvent * ev, ActionClass * ac);
 
 /* buttons.c */
 Button             *ButtonCreate(const char *name, int id, const char *iclass,
@@ -45,8 +45,8 @@ void                ButtonHide(Button * b);
 void                ButtonMoveToCoord(Button * b, int x, int y);
 void                ButtonMoveRelative(Button * b, int dx, int dy);
 EObj               *ButtonSwallowInto(Button * b, EObj * eo);
-void                ButtonSetCallback(Button * b, ButtonCbFunc * func,
-                                     EObj * eo);
+void                ButtonSetCallback(Button * b,
+                                     ButtonCbFunc * func, void *prm);
 int                 ButtonDoShowDefault(const Button * b);
 int                 ButtonEmbedWindow(Button * ButtonToUse,
                                      Window WindowToEmbed);
diff --git a/src/desktops.c b/src/desktops.c
index d827cfb..5315273 100644
--- a/src/desktops.c
+++ b/src/desktops.c
@@ -71,7 +71,7 @@ typedef struct {
 static void         DeskRaise(unsigned int num);
 static void         DeskLower(unsigned int num);
 static void         DeskHandleEvents(Win win, XEvent * ev, void *prm);
-static void         DeskButtonCallback(EObj * eo, XEvent * ev,
+static void         DeskButtonCallback(void *prm, XEvent * ev,
                                       ActionClass * ac);
 
 /* The desktops */
@@ -293,7 +293,7 @@ DeskControlsCreate(Desk * dsk)
        b = ButtonCreate("_DESKTOP_DRAG_CONTROL", 1, ic1, ac1, NULL, NULL,
                         -1, FLAG_FIXED, 1, 99999, 1, 99999, 0, 0, x[2], 0,
                         y[2], 0, 0, w[2], 0, h[2], 0, dsk->num, 0);
-       ButtonSetCallback(b, DeskButtonCallback, EoObj(dsk));
+       ButtonSetCallback(b, DeskButtonCallback, dsk);
      }
 
 #if ENABLE_DESKRAY
@@ -1946,9 +1946,9 @@ DeskDragMotion(Desk * dsk)
 }
 
 static void
-DeskButtonCallback(EObj * eo, XEvent * ev, ActionClass * ac)
+DeskButtonCallback(void *prm, XEvent * ev, ActionClass * ac)
 {
-   Desk               *dsk;
+   Desk               *dsk = (Desk *) prm;
 
    if (Mode.mode != MODE_DESKDRAG)
      {
@@ -1957,7 +1957,6 @@ DeskButtonCallback(EObj * eo, XEvent * ev, ActionClass * 
ac)
        return;
      }
 
-   dsk = (Desk *) eo;
    switch (ev->type)
      {
      case ButtonRelease:
diff --git a/src/slideout.c b/src/slideout.c
index 92c3be3..d0bb8b4 100644
--- a/src/slideout.c
+++ b/src/slideout.c
@@ -322,9 +322,9 @@ SlideoutCalcSize(Slideout * s)
 }
 
 static void
-SlideoutButtonCallback(EObj * seo, XEvent * ev, ActionClass * ac)
+SlideoutButtonCallback(void *prm, XEvent * ev, ActionClass * ac)
 {
-   Slideout           *s = (Slideout *) seo;
+   Slideout           *s = (Slideout *) prm;
    EWin               *ewin = s->context_ewin;
 
    if (ev->type == ButtonRelease)
@@ -349,7 +349,7 @@ SlideoutAddButton(Slideout * s, const char *bname)
    s->num_objs++;
    s->objs = EREALLOC(EObj *, s->objs, s->num_objs);
    s->objs[s->num_objs - 1] = ButtonSwallowInto(b, EoObj(s));
-   ButtonSetCallback(b, SlideoutButtonCallback, EoObj(s));
+   ButtonSetCallback(b, SlideoutButtonCallback, s);
    SlideoutCalcSize(s);
 }
 

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to