Read WM_TRANSIENT_FOR only on map or change + debug stuff.

SVN revision: 10524
This commit is contained in:
Kim Woelders 2004-06-16 22:49:37 +00:00
parent 1aad1cf0d2
commit 3d5c6c0743
2 changed files with 13 additions and 9 deletions

View File

@ -40,6 +40,7 @@ static Atom E_XA_WM_ICON_NAME = 0;
static Atom E_XA_WM_WINDOW_ROLE = 0;
static Atom E_XA_WM_HINTS = 0;
static Atom E_XA_WM_CLIENT_LEADER = 0;
static Atom E_XA_WM_TRANSIENT_FOR = 0;
void
ICCCM_Init(void)
@ -60,6 +61,7 @@ ICCCM_Init(void)
E_XA_WM_WINDOW_ROLE = XInternAtom(disp, "WM_WINDOW_ROLE", False);
E_XA_WM_HINTS = XInternAtom(disp, "WM_HINTS", False);
E_XA_WM_CLIENT_LEADER = XInternAtom(disp, "WM_CLIENT_LEADER", False);
E_XA_WM_TRANSIENT_FOR = XInternAtom(disp, "WM_TRANSIENT_FOR", False);
}
void
@ -831,7 +833,7 @@ void
ICCCM_GetHints(EWin * ewin, Atom atom_change)
{
XWMHints *hint;
Window w;
Window win;
Atom *prop;
Window *cleader;
int i, num;
@ -949,14 +951,15 @@ ICCCM_GetHints(EWin * ewin, Atom atom_change)
ewin->skipfocus = 1;
}
if (XGetTransientForHint(disp, ewin->client.win, &w))
{
ewin->client.transient = 1;
ewin->client.transient_for = w;
}
else
if (atom_change == 0 || atom_change == E_XA_WM_TRANSIENT_FOR)
{
ewin->client.transient = 0;
ewin->client.transient_for = None;
if (XGetTransientForHint(disp, ewin->client.win, &win))
{
ewin->client.transient = 1;
ewin->client.transient_for = win;
}
}
if (ewin->client.group == ewin->client.win)

View File

@ -5747,7 +5747,7 @@ EwinShowInfo2(const EWin * ewin)
"Border %s lrtb %i,%i,%i,%i\n"
"Icon window, pixmap, mask %#10lx, %#10lx, %#10lx\n"
"Is client group leader %i Client group leader %#10lx\n"
"Has transients %i Transient for %#10lx\n"
"Has transients %i Transient type %i Transient for %#10lx\n"
"No resize H/V %i/%i Shaped %i\n"
"Base, min, max, inc w/h %ix%i, %ix%i, %ix%i %ix%i\n"
"Aspect min, max %5.5f, %5.5f\n"
@ -5773,7 +5773,8 @@ EwinShowInfo2(const EWin * ewin)
ewin->client.icon_win,
ewin->client.icon_pmap, ewin->client.icon_mask,
ewin->client.is_group_leader, ewin->client.group,
ewin->has_transients, ewin->client.transient_for,
ewin->has_transients,
ewin->client.transient, ewin->client.transient_for,
ewin->client.no_resize_h, ewin->client.no_resize_v,
ewin->client.shaped,
ewin->client.base_w, ewin->client.base_h,