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);
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;
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.
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,
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 */
(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,