add WM_TRANSIENT_FOR event support: moves dialogs, toolbars and such to

the group of the main application window; based on a diff from Alexander
Polakov with CLIENT_IGNORE flag suggestion from oga@.

ok oga@
This commit is contained in:
okan
2011-09-13 08:41:57 +00:00
parent b96caa16e6
commit 796b32123d
3 changed files with 21 additions and 0 deletions

View File

@ -113,6 +113,8 @@ client_new(Window win, struct screen_ctx *sc, int mapped)
XAddToSaveSet(X_Dpy, cc->win);
client_transient(cc);
/* Notify client of its configuration. */
xu_configure(cc);
@ -869,6 +871,21 @@ client_freehints(struct client_ctx *cc)
XFree(cc->app_class);
}
void
client_transient(struct client_ctx *cc)
{
struct client_ctx *tc;
Window trans;
if (XGetTransientForHint(X_Dpy, cc->win, &trans)) {
if ((tc = client_find(trans)) && tc->group) {
group_movetogroup(cc, tc->group->shortcut - 1);
if (tc->flags & CLIENT_IGNORE)
cc->flags |= CLIENT_IGNORE;
}
}
}
static int
client_inbound(struct client_ctx *cc, int x, int y)
{