when flags are not set assume bette defaults
This commit is contained in:
parent
79a352a40b
commit
1683b33fc1
1 changed files with 47 additions and 44 deletions
|
@ -1033,55 +1033,58 @@ void client_update_wmhints(Client *self)
|
||||||
if (hints->flags & XUrgencyHint)
|
if (hints->flags & XUrgencyHint)
|
||||||
ur = TRUE;
|
ur = TRUE;
|
||||||
|
|
||||||
if (hints->flags & WindowGroupHint) {
|
if (!(hints->flags & WindowGroupHint))
|
||||||
/* did the group state change? */
|
hints->window_group = None;
|
||||||
if (hints->window_group !=
|
|
||||||
(self->group ? self->group->leader : None)) {
|
|
||||||
/* remove from the old group if there was one */
|
|
||||||
if (self->group != NULL) {
|
|
||||||
/* remove transients of the group */
|
|
||||||
for (it = self->group->members; it; it = it->next)
|
|
||||||
if (it->data != self &&
|
|
||||||
((Client*)it->data)->transient_for == TRAN_GROUP) {
|
|
||||||
self->transients = g_slist_remove(self->transients,
|
|
||||||
it->data);
|
|
||||||
}
|
|
||||||
group_remove(self->group, self);
|
|
||||||
self->group = NULL;
|
|
||||||
}
|
|
||||||
if (hints->window_group != None) {
|
|
||||||
self->group = group_add(hints->window_group, self);
|
|
||||||
|
|
||||||
/* add other transients of the group that are already
|
/* did the group state change? */
|
||||||
set up */
|
if (hints->window_group !=
|
||||||
for (it = self->group->members; it; it = it->next)
|
(self->group ? self->group->leader : None)) {
|
||||||
if (it->data != self &&
|
/* remove from the old group if there was one */
|
||||||
((Client*)it->data)->transient_for == TRAN_GROUP)
|
if (self->group != NULL) {
|
||||||
self->transients = g_slist_append(self->transients,
|
/* remove transients of the group */
|
||||||
it->data);
|
for (it = self->group->members; it; it = it->next)
|
||||||
}
|
if (it->data != self &&
|
||||||
|
((Client*)it->data)->transient_for == TRAN_GROUP) {
|
||||||
/* because the self->transient flag wont change from this call,
|
self->transients = g_slist_remove(self->transients,
|
||||||
we don't need to update the window's type and such, only its
|
it->data);
|
||||||
transient_for, and the transients lists of other windows in
|
}
|
||||||
the group may be affected */
|
group_remove(self->group, self);
|
||||||
client_update_transient_for(self);
|
self->group = NULL;
|
||||||
}
|
}
|
||||||
|
if (hints->window_group != None) {
|
||||||
|
self->group = group_add(hints->window_group, self);
|
||||||
|
|
||||||
|
/* add other transients of the group that are already
|
||||||
|
set up */
|
||||||
|
for (it = self->group->members; it; it = it->next)
|
||||||
|
if (it->data != self &&
|
||||||
|
((Client*)it->data)->transient_for == TRAN_GROUP)
|
||||||
|
self->transients = g_slist_append(self->transients,
|
||||||
|
it->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* because the self->transient flag wont change from this call,
|
||||||
|
we don't need to update the window's type and such, only its
|
||||||
|
transient_for, and the transients lists of other windows in
|
||||||
|
the group may be affected */
|
||||||
|
client_update_transient_for(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hints->flags & IconPixmapHint) {
|
client_update_kwm_icon(self);
|
||||||
client_update_kwm_icon(self);
|
/* try get the kwm icon first, this is a fallback only */
|
||||||
/* try get the kwm icon first, this is a fallback only */
|
if (self->pixmap_icon == None) {
|
||||||
if (self->pixmap_icon == None) {
|
if (hints->flags & IconPixmapHint) {
|
||||||
self->pixmap_icon = hints->icon_pixmap;
|
if (self->pixmap_icon == None) {
|
||||||
if (hints->flags & IconMaskHint)
|
self->pixmap_icon = hints->icon_pixmap;
|
||||||
self->pixmap_icon_mask = hints->icon_mask;
|
if (hints->flags & IconMaskHint)
|
||||||
else
|
self->pixmap_icon_mask = hints->icon_mask;
|
||||||
self->pixmap_icon_mask = None;
|
else
|
||||||
|
self->pixmap_icon_mask = None;
|
||||||
|
|
||||||
if (self->frame)
|
if (self->pixmap_icons != None && self->frame)
|
||||||
frame_adjust_icon(self->frame);
|
frame_adjust_icon(self->frame);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
XFree(hints);
|
XFree(hints);
|
||||||
|
|
Loading…
Reference in a new issue