X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=cf6965ae24ade67a84338309fe434ebad6d9d0fe;hb=d158b642820910adf2d4f73370cf3537749230a6;hp=f8ebd1361cf29681eb318f9dc880b5ed2d1e931e;hpb=8923bd7026755ecc35898c5573fa9c6670a8c56b;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index f8ebd136..cf6965ae 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -394,7 +394,7 @@ void client_manage(Window window) */ if (ob_state() == OB_STATE_RUNNING && (transient || - (!(self->sized & USSize) && + (!(self->sized & USSize || self->positioned & USPosition) && client_normal(self) && !self->session))) { @@ -2084,8 +2084,11 @@ void client_update_icons(ObClient *self) /* set the default icon onto the window in theory, this could be a race, but if a window doesn't set an icon or removes it entirely, it's not very likely it is going to set one - right away afterwards */ - if (self->nicons == 0) { + right away afterwards + + if it has parents, then one of them will have an icon already + */ + if (self->nicons == 0 && !self->parents) { RrPixel32 *icon = ob_rr_theme->def_win_icon; gulong *data; @@ -3260,7 +3263,8 @@ void client_set_desktop_recursive(ObClient *self, frame_adjust_state(self->frame); /* 'move' the window to the new desktop */ if (!donthide) - client_showhide(self); + client_hide(self); + client_show(self); /* raise if it was not already on the desktop */ if (old != DESKTOP_ALL && !dontraise) stacking_raise(CLIENT_AS_WINDOW(self));