summaryrefslogtreecommitdiff
path: root/plugins/mouse/mouse.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-04-15 18:29:55 +0000
committerDana Jansens <danakj@orodu.net>2003-04-15 18:29:55 +0000
commit0e28a07e3d6677aa6af9ad97fbc55f8101f3fdf2 (patch)
treee180e7b7162d9d75e7e307bd236784730547cf74 /plugins/mouse/mouse.c
parent1c3689d0c725202eba7191d32480aa2cc3addfea (diff)
start of showing/rendering menus. woot!
Diffstat (limited to 'plugins/mouse/mouse.c')
-rw-r--r--plugins/mouse/mouse.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/plugins/mouse/mouse.c b/plugins/mouse/mouse.c
index 45559e5c..2a0b4ecc 100644
--- a/plugins/mouse/mouse.c
+++ b/plugins/mouse/mouse.c
@@ -105,7 +105,7 @@ static void clearall()
}
static void fire_button(MouseAction a, Context context, Client *c, guint state,
- guint button)
+ guint button, int x, int y)
{
GSList *it;
MouseBinding *b;
@@ -124,6 +124,11 @@ static void fire_button(MouseAction a, Context context, Client *c, guint state,
g_assert(!(b->action[a]->func == action_move ||
b->action[a]->func == action_resize));
+ if (b->action[a]->func == action_showmenu) {
+ b->action[a]->data.showmenu.x = x;
+ b->action[a]->data.showmenu.y = y;
+ }
+
b->action[a]->func(&b->action[a]->data);
}
}
@@ -245,7 +250,8 @@ static void event(ObEvent *e, void *foo)
fire_button(MouseAction_Press, context,
e->data.x.client, e->data.x.e->xbutton.state,
- e->data.x.e->xbutton.button);
+ e->data.x.e->xbutton.button,
+ e->data.x.e->xbutton.x_root, e->data.x.e->xbutton.y_root);
if (context == Context_Client) {
/* Replay the event, so it goes to the client*/
@@ -295,15 +301,20 @@ static void event(ObEvent *e, void *foo)
}
fire_button(MouseAction_Release, context,
e->data.x.client, e->data.x.e->xbutton.state,
- e->data.x.e->xbutton.button);
+ e->data.x.e->xbutton.button,
+ e->data.x.e->xbutton.x_root, e->data.x.e->xbutton.y_root);
if (click)
fire_button(MouseAction_Click, context,
e->data.x.client, e->data.x.e->xbutton.state,
- e->data.x.e->xbutton.button);
+ e->data.x.e->xbutton.button,
+ e->data.x.e->xbutton.x_root,
+ e->data.x.e->xbutton.y_root);
if (dclick)
fire_button(MouseAction_DClick, context,
e->data.x.client, e->data.x.e->xbutton.state,
- e->data.x.e->xbutton.button);
+ e->data.x.e->xbutton.button,
+ e->data.x.e->xbutton.x_root,
+ e->data.x.e->xbutton.y_root);
break;
case Event_X_MotionNotify: