simplify sel handling
This commit is contained in:
parent
50e7595a0c
commit
5f92667773
4
ewmh.c
4
ewmh.c
|
@ -176,9 +176,7 @@ void
|
||||||
ewmh_update_net_active_window(int phys_screen)
|
ewmh_update_net_active_window(int phys_screen)
|
||||||
{
|
{
|
||||||
Window win;
|
Window win;
|
||||||
Tag **curtags = get_current_tags(phys_screen);
|
Client *sel = focus_get_current_client(phys_screen);
|
||||||
Client *sel = focus_get_latest_client_for_tags(phys_screen, curtags);
|
|
||||||
p_delete(&curtags);
|
|
||||||
|
|
||||||
win = sel ? sel->win : None;
|
win = sel ? sel->win : None;
|
||||||
|
|
||||||
|
|
12
focus.c
12
focus.c
|
@ -94,7 +94,7 @@ focus_delete_client(Client *c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Client *
|
static Client *
|
||||||
focus_get_latest_client_for_tags(int screen, Tag **t)
|
focus_get_latest_client_for_tags(int screen, Tag **t)
|
||||||
{
|
{
|
||||||
FocusList *fl;
|
FocusList *fl;
|
||||||
|
@ -107,6 +107,16 @@ focus_get_latest_client_for_tags(int screen, Tag **t)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Client *
|
||||||
|
focus_get_current_client(int screen)
|
||||||
|
{
|
||||||
|
Tag **curtags = get_current_tags(screen);
|
||||||
|
Client *sel = focus_get_latest_client_for_tags(screen, curtags);
|
||||||
|
p_delete(&curtags);
|
||||||
|
|
||||||
|
return sel;
|
||||||
|
}
|
||||||
|
|
||||||
/** Jump in focus history stack
|
/** Jump in focus history stack
|
||||||
* \param screen Screen ID
|
* \param screen Screen ID
|
||||||
* \param arg Integer argument
|
* \param arg Integer argument
|
||||||
|
|
2
focus.h
2
focus.h
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
void focus_add_client(Client *);
|
void focus_add_client(Client *);
|
||||||
void focus_delete_client(Client *);
|
void focus_delete_client(Client *);
|
||||||
Client * focus_get_latest_client_for_tags(int, Tag **);
|
Client * focus_get_current_client(int);
|
||||||
|
|
||||||
UICB_PROTO(uicb_focus_history);
|
UICB_PROTO(uicb_focus_history);
|
||||||
UICB_PROTO(uicb_focus_client_byname);
|
UICB_PROTO(uicb_focus_client_byname);
|
||||||
|
|
3
layout.c
3
layout.c
|
@ -67,8 +67,7 @@ arrange(int screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
curtags[0]->layout->arrange(screen);
|
curtags[0]->layout->arrange(screen);
|
||||||
focus(focus_get_latest_client_for_tags(screen, curtags),
|
focus(focus_get_current_client(screen), True, screen);
|
||||||
True, screen);
|
|
||||||
p_delete(&curtags);
|
p_delete(&curtags);
|
||||||
restack(screen);
|
restack(screen);
|
||||||
}
|
}
|
||||||
|
|
6
screen.c
6
screen.c
|
@ -252,7 +252,6 @@ void
|
||||||
uicb_screen_focus(int screen, char *arg)
|
uicb_screen_focus(int screen, char *arg)
|
||||||
{
|
{
|
||||||
int new_screen, numscreens = get_screen_count();
|
int new_screen, numscreens = get_screen_count();
|
||||||
Tag **curtags = get_current_tags(screen);
|
|
||||||
|
|
||||||
if(arg)
|
if(arg)
|
||||||
new_screen = compute_new_value_from_arg(arg, screen);
|
new_screen = compute_new_value_from_arg(arg, screen);
|
||||||
|
@ -264,10 +263,7 @@ uicb_screen_focus(int screen, char *arg)
|
||||||
if (new_screen > (numscreens - 1))
|
if (new_screen > (numscreens - 1))
|
||||||
new_screen = 0;
|
new_screen = 0;
|
||||||
|
|
||||||
focus(focus_get_latest_client_for_tags(new_screen, curtags),
|
focus(focus_get_current_client(new_screen), True, new_screen);
|
||||||
True, new_screen);
|
|
||||||
|
|
||||||
p_delete(&curtags);
|
|
||||||
|
|
||||||
move_mouse_pointer_to_screen(new_screen);
|
move_mouse_pointer_to_screen(new_screen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,10 +34,7 @@ static int
|
||||||
focustitle_draw(Widget *widget, DrawCtx *ctx, int offset, int used)
|
focustitle_draw(Widget *widget, DrawCtx *ctx, int offset, int used)
|
||||||
{
|
{
|
||||||
VirtScreen vscreen = globalconf.screens[widget->statusbar->screen];
|
VirtScreen vscreen = globalconf.screens[widget->statusbar->screen];
|
||||||
Tag **curtags = get_current_tags(widget->statusbar->screen);
|
Client *sel = focus_get_current_client(widget->statusbar->screen);
|
||||||
Client *sel = focus_get_latest_client_for_tags(widget->statusbar->screen, curtags);
|
|
||||||
|
|
||||||
p_delete(&curtags);
|
|
||||||
|
|
||||||
widget->location = widget_calculate_offset(vscreen.statusbar->width,
|
widget->location = widget_calculate_offset(vscreen.statusbar->width,
|
||||||
0,
|
0,
|
||||||
|
|
|
@ -38,10 +38,7 @@ netwmicon_draw(Widget *widget, DrawCtx *ctx, int offset,
|
||||||
int format, width, height, size, i;
|
int format, width, height, size, i;
|
||||||
unsigned long items, rest;
|
unsigned long items, rest;
|
||||||
unsigned char *image, *imgdata;
|
unsigned char *image, *imgdata;
|
||||||
Tag **curtags = get_current_tags(widget->statusbar->screen);
|
Client *sel = focus_get_current_client(widget->statusbar->screen);
|
||||||
Client *sel = focus_get_latest_client_for_tags(widget->statusbar->screen, curtags);
|
|
||||||
|
|
||||||
p_delete(&curtags);
|
|
||||||
|
|
||||||
if(!sel)
|
if(!sel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue