Split/Client: Fix integration with 1 client & transfert on another screen

This commit is contained in:
Martin Duquesnoy 2011-05-24 23:14:29 +02:00
parent f75c75645d
commit c556b45a8d
2 changed files with 13 additions and 6 deletions

View File

@ -259,7 +259,15 @@ split_client_integrate(Client *c, Client *sc, int screen, int tag)
/* No client on wanted tag to integrate */
if(!b)
{
/* client_maximize check position of client
* to maximize it; so in case of transfert one client
* on a tag from another screen, we need it.
*/
c->geo.x = sgeo[screen].x;
c->geo.y = sgeo[screen].y;
client_maximize(c);
return;
}
}

View File

@ -135,15 +135,15 @@ tag_transfert(Client *c, int tag)
{
int s;
screen_get_sel();
CHECK(c);
screen_get_sel();
if(tag <= 0)
tag = 1;
if(tag > conf.ntag[selscreen]
|| (c->screen == selscreen && c->tag == tag))
|| (c->tag == tag && c->screen == selscreen))
return;
s = c->screen;
@ -159,13 +159,12 @@ tag_transfert(Client *c, int tag)
c->tag = tag;
c->screen = selscreen;
arrange(c->screen, True);
if(s != c->screen)
arrange(s, True);
client_focus_next(c);
arrange(c->screen, True);
client_focus_next(c);
client_update_attributes(c);
tags[c->screen][tag].request_update = True;