pass the Client for frame_context cuz the client might be NULL
This commit is contained in:
parent
14a842b34c
commit
bb8b9ddbc5
4 changed files with 12 additions and 9 deletions
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
if (win == ob_root) return Context_Root;
|
||||
if (self == NULL) return Context_None;
|
||||
if (win == self->client->window) return Context_Client;
|
||||
Frame *self;
|
||||
|
||||
if (win == ob_root) return Context_Root;
|
||||
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;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue