all repos — openbox @ 32a17b31b0e3ec9302de7d8dbc3994d47a6a842c

openbox fork - make it a bit more like ryudo

fewer context lookups
Dana Jansens danakj@orodu.net
commit

32a17b31b0e3ec9302de7d8dbc3994d47a6a842c

parent

90e654131da98a4a2aaddc2bf281ab95d876b4e2

1 files changed, 15 insertions(+), 22 deletions(-)

jump to
M plugins/mouse/mouse.cplugins/mouse/mouse.c

@@ -185,6 +185,7 @@ static gboolean drag = FALSE;

static Corner corner = Corner_TopLeft; gboolean click = FALSE; gboolean dclick = FALSE; + GQuark context; switch (e->type) { case Event_Client_Mapped:

@@ -208,16 +209,14 @@ corner = pick_corner(px, py, cx, cy, cw, ch);

} 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 @@ } else

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 @@

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 @@ if (button) {

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); }