summaryrefslogtreecommitdiff
path: root/plugins
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
parent1c3689d0c725202eba7191d32480aa2cc3addfea (diff)
start of showing/rendering menus. woot!
Diffstat (limited to 'plugins')
-rw-r--r--plugins/keyboard/keyparse.c2
-rw-r--r--plugins/mouse/mouse.c21
-rw-r--r--plugins/mouse/mouseparse.c2
3 files changed, 20 insertions, 5 deletions
diff --git a/plugins/keyboard/keyparse.c b/plugins/keyboard/keyparse.c
index ba283dd8..61c7cd9d 100644
--- a/plugins/keyboard/keyparse.c
+++ b/plugins/keyboard/keyparse.c
@@ -82,6 +82,8 @@ void keyparse(ParseToken *token)
/* these use the argument */
if (action->func == action_execute || action->func == action_restart)
action->data.execute.path = g_strdup(arg_str);
+ else if (action->func == action_showmenu)
+ action->data.showmenu.name = g_strdup(arg_str);
if ((action->func == action_desktop ||
action->func == action_send_to_desktop) &&
arg_int)
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:
diff --git a/plugins/mouse/mouseparse.c b/plugins/mouse/mouseparse.c
index d2039dd8..099dbaa8 100644
--- a/plugins/mouse/mouseparse.c
+++ b/plugins/mouse/mouseparse.c
@@ -99,6 +99,8 @@ void mouseparse(ParseToken *token)
/* these use the argument */
if (action->func == action_execute || action->func == action_restart)
action->data.execute.path = g_strdup(arg_str);
+ else if (action->func == action_showmenu)
+ action->data.showmenu.name = g_strdup(arg_str);
if ((action->func == action_desktop ||
action->func == action_send_to_desktop) &&
arg_int)