mirror of
https://github.com/0intro/wmii
synced 2025-02-08 02:14:48 +03:00
fix a redraw issue (on mousefocus of a client in an area, that area's prevsel client's has to be redrawn too)
This commit is contained in:
parent
e02d9ae205
commit
7b8e9aa512
@ -307,3 +307,12 @@ is_of_area(Area *a, Client *c)
|
||||
return True;
|
||||
return False;
|
||||
}
|
||||
|
||||
Client *
|
||||
sel_client_of_area(Area *a)
|
||||
{
|
||||
if(a) {
|
||||
return (a->frame.size) ? a->frame.data[a->sel]->client : nil;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
@ -120,6 +120,7 @@ focus_client(Client *c, Bool restack)
|
||||
{
|
||||
Client *old = sel_client();
|
||||
Frame *f = c->frame.data[c->sel];
|
||||
Client *old_in_area = sel_client_of_area(f->area);
|
||||
View *v = f->area->view;
|
||||
int i = idx_of_area(f->area);
|
||||
static char buf[256];
|
||||
@ -139,6 +140,8 @@ focus_client(Client *c, Bool restack)
|
||||
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
|
||||
if(old)
|
||||
draw_client(old);
|
||||
if(old_in_area != c)
|
||||
draw_client(old_in_area);
|
||||
draw_client(c);
|
||||
XSync(dpy, False);
|
||||
snprintf(buf, sizeof(buf), "ClientFocus %d\n", idx_of_client_id(c->id));
|
||||
|
@ -232,7 +232,7 @@ sel_client_of_view(View *v)
|
||||
{
|
||||
if(v) {
|
||||
Area *a = v->area.size ? v->area.data[v->sel] : nil;
|
||||
return (a && a->frame.size) ? a->frame.data[a->sel]->client : nil;
|
||||
return sel_client_of_area(a);
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
@ -198,6 +198,7 @@ void send_to_area(Area *to, Area *from, Client *c);
|
||||
void attach_to_area(Area *a, Client *c);
|
||||
void detach_from_area(Area *a, Client *c);
|
||||
Bool is_of_area(Area *a, Client *c);
|
||||
Client *sel_client_of_area(Area *a);
|
||||
|
||||
/* bar.c */
|
||||
Bar *create_bar(char *name, Bool intern);
|
||||
|
Loading…
x
Reference in New Issue
Block a user