summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/event.c2
-rw-r--r--openbox/frame.c9
-rw-r--r--openbox/frame.h2
-rw-r--r--plugins/mouse/mouse.c6
4 files changed, 11 insertions, 8 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 4d449f78..b0ab0f35 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -369,7 +369,7 @@ static void event_handle_client(Client *client, XEvent *e)
switch (e->type) {
case ButtonPress:
case ButtonRelease:
- switch (frame_context(client->frame, e->xbutton.window)) {
+ switch (frame_context(client, e->xbutton.window)) {
case Context_Maximize:
client->frame->max_press = (e->type == ButtonPress);
framerender_frame(client->frame);
diff --git a/openbox/frame.c b/openbox/frame.c
index 765c4b59..a223aa5e 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -646,12 +646,15 @@ Context frame_context_from_string(char *name)
return Context_None;
}
-Context frame_context(Frame *self, Window win)
+Context frame_context(Client *client, Window win)
{
+ Frame *self;
+
if (win == ob_root) return Context_Root;
- if (self == NULL) return Context_None;
- if (win == self->client->window) return Context_Client;
+ if (client == NULL) return Context_None;
+ if (win == client->window) return Context_Client;
+ self = client->frame;
if (win == self->window) return Context_Frame;
if (win == self->plate) return Context_Client;
if (win == self->title) return Context_Titlebar;
diff --git a/openbox/frame.h b/openbox/frame.h
index c36e7833..bbe7d370 100644
--- a/openbox/frame.h
+++ b/openbox/frame.h
@@ -98,7 +98,7 @@ void frame_release_client(Frame *self, Client *client);
Context frame_context_from_string(char *name);
-Context frame_context(Frame *self, Window win);
+Context frame_context(Client *self, Window win);
/*! Applies gravity to the client's position to find where the frame should
be positioned.
diff --git a/plugins/mouse/mouse.c b/plugins/mouse/mouse.c
index b2173c25..45559e5c 100644
--- a/plugins/mouse/mouse.c
+++ b/plugins/mouse/mouse.c
@@ -240,7 +240,7 @@ static void event(ObEvent *e, void *foo)
button = e->data.x.e->xbutton.button;
state = e->data.x.e->xbutton.state;
}
- context = frame_context(e->data.x.client->frame,
+ context = frame_context(e->data.x.client,
e->data.x.e->xbutton.window);
fire_button(MouseAction_Press, context,
@@ -255,7 +255,7 @@ static void event(ObEvent *e, void *foo)
break;
case Event_X_ButtonRelease:
- context = frame_context(e->data.x.client->frame,
+ context = frame_context(e->data.x.client,
e->data.x.e->xbutton.window);
if (e->data.x.e->xbutton.button == button) {
/* end drags */
@@ -314,7 +314,7 @@ static void event(ObEvent *e, void *foo)
(ABS(dx) >= threshold || ABS(dy) >= threshold))
drag = TRUE;
if (drag) {
- context = frame_context(e->data.x.client->frame,
+ context = frame_context(e->data.x.client,
e->data.x.e->xbutton.window);
drag_used = fire_motion(MouseAction_Motion, context,
e->data.x.client,