From bb8b9ddbc5c7932f184aeed744f4762b5c95fe28 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 13 Apr 2003 08:36:38 +0000 Subject: [PATCH] pass the Client for frame_context cuz the client might be NULL --- openbox/event.c | 2 +- openbox/frame.c | 9 ++++++--- openbox/frame.h | 2 +- plugins/mouse/mouse.c | 6 +++--- 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, -- 2.45.2