summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-03-19 18:34:15 +0000
committerDana Jansens <danakj@orodu.net>2003-03-19 18:34:15 +0000
commit32a17b31b0e3ec9302de7d8dbc3994d47a6a842c (patch)
treefc3ccf929904103122889686df2e3ba48d0ecc69 /plugins
parent90e654131da98a4a2aaddc2bf281ab95d876b4e2 (diff)
fewer context lookups
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mouse/mouse.c37
1 files changed, 15 insertions, 22 deletions
diff --git a/plugins/mouse/mouse.c b/plugins/mouse/mouse.c
index f1d872e8..ad332982 100644
--- a/plugins/mouse/mouse.c
+++ b/plugins/mouse/mouse.c
@@ -185,6 +185,7 @@ static void event(ObEvent *e, void *foo)
static Corner corner = Corner_TopLeft;
gboolean click = FALSE;
gboolean dclick = FALSE;
+ GQuark context;
switch (e->type) {
case Event_Client_Mapped:
@@ -208,16 +209,14 @@ static void event(ObEvent *e, void *foo)
}
button = e->data.x.e->xbutton.button;
}
- fire_button(MouseAction_Press,
- engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window),
+ context = engine_get_context(e->data.x.client,
+ e->data.x.e->xbutton.window);
+
+ fire_button(MouseAction_Press, context,
e->data.x.client, e->data.x.e->xbutton.state,
e->data.x.e->xbutton.button);
- /* XXX dont look up the context so many times */
- if (engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window) ==
- g_quark_try_string("client")) {
+ if (context == g_quark_try_string("client")) {
/* Replay the event, so it goes to the client*/
XAllowEvents(ob_display, ReplayPointer, CurrentTime);
/* Fall through to the release case! */
@@ -225,12 +224,12 @@ static void event(ObEvent *e, void *foo)
break;
case Event_X_ButtonRelease:
+ context = engine_get_context(e->data.x.client,
+ e->data.x.e->xbutton.window);
if (e->data.x.e->xbutton.button == button) {
/* end drags */
if (drag) {
- fire_motion(MouseAction_Motion,
- engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window),
+ fire_motion(MouseAction_Motion, context,
e->data.x.client, e->data.x.e->xbutton.state,
e->data.x.e->xbutton.button,
cx, cy, cw, ch, dx, dy, TRUE, corner);
@@ -262,21 +261,15 @@ static void event(ObEvent *e, void *foo)
button = 0;
ltime = e->data.x.e->xbutton.time;
}
- fire_button(MouseAction_Press,
- engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window),
+ fire_button(MouseAction_Press, context,
e->data.x.client, e->data.x.e->xbutton.state,
e->data.x.e->xbutton.button);
if (click)
- fire_button(MouseAction_Click,
- engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window),
+ fire_button(MouseAction_Click, context,
e->data.x.client, e->data.x.e->xbutton.state,
e->data.x.e->xbutton.button);
if (dclick)
- fire_button(MouseAction_DClick,
- engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window),
+ fire_button(MouseAction_DClick, context,
e->data.x.client, e->data.x.e->xbutton.state,
e->data.x.e->xbutton.button);
break;
@@ -286,9 +279,9 @@ static void event(ObEvent *e, void *foo)
drag = TRUE;
dx = e->data.x.e->xmotion.x_root - px;
dy = e->data.x.e->xmotion.y_root - py;
- fire_motion(MouseAction_Motion,
- engine_get_context(e->data.x.client,
- e->data.x.e->xbutton.window),
+ context = engine_get_context(e->data.x.client,
+ e->data.x.e->xbutton.window);
+ fire_motion(MouseAction_Motion, context,
e->data.x.client, e->data.x.e->xmotion.state,
button, cx, cy, cw, ch, dx, dy, FALSE, corner);
}