From 9e39ebd684e362300cbf5c3da21af59d0e512eed Mon Sep 17 00:00:00 2001 From: Martin Duquesnoy Date: Sat, 14 Mar 2009 12:23:42 +0100 Subject: [PATCH] Client: Can swap 2 clients of different screen --- src/client.c | 5 +++++ src/wmfs.h | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/client.c b/src/client.c index 26ad260..e228136 100644 --- a/src/client.c +++ b/src/client.c @@ -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); diff --git a/src/wmfs.h b/src/wmfs.h index f5cd168..e43cdd4 100644 --- a/src/wmfs.h +++ b/src/wmfs.h @@ -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);