Client: Can swap 2 clients of different screen

This commit is contained in:
Martin Duquesnoy 2009-03-14 12:23:42 +01:00
parent 23d00abb5a
commit 9e39ebd684
2 changed files with 9 additions and 4 deletions

View File

@ -637,6 +637,7 @@ void
client_swap(Client *a, Client *b)
{
Client *an, *bn, *ap, *bp;
int ts;
if(!a || !b)
return;
@ -645,6 +646,7 @@ client_swap(Client *a, Client *b)
an = a->next;
bp = b->prev;
bn = b->next;
ts = a->screen;
if(a == b->next)
{
@ -683,6 +685,9 @@ client_swap(Client *a, Client *b)
else if(clients == b)
clients = a;
a->screen = b->screen;
b->screen = ts;
arrange(a->screen);
arrange(b->screen);

View File

@ -247,9 +247,9 @@ int screen_get_with_geo(int x, int y);
int screen_get_sel(void);
void screen_set_sel(int screen);
void screen_init_geo(void);
void uicb_screen_select(uicb_t cmd);
void uicb_screen_next(uicb_t cmd);
void uicb_screen_prev(uicb_t cmd);
void uicb_screen_select(uicb_t);
void uicb_screen_next(uicb_t);
void uicb_screen_prev(uicb_t);
/* layout.c */
void arrange(int screen);
@ -271,7 +271,7 @@ void uicb_layout_prev(uicb_t);
void uicb_layout_next(uicb_t);
void uicb_set_mwfact(uicb_t);
void uicb_set_nmaster(uicb_t);
void uicb_set_layout(uicb_t cmd);
void uicb_set_layout(uicb_t);
/* init.c */
void init(void);