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