Another partial cleanup of client window property/state stuff.

SVN revision: 15989
This commit is contained in:
Kim Woelders 2005-08-01 17:34:53 +00:00
parent bf32185c0d
commit b23ccfa530
14 changed files with 131 additions and 120 deletions

View File

@ -245,7 +245,7 @@ SetCurrentArea(int ax, int ay)
for (i = 0; i < num; i++)
{
ewin = lst[i];
if (ewin->client.transient > 0)
if (EwinIsTransientChild(ewin))
continue;
if (EoGetDesk(ewin) != DesksGetCurrent() && !EoIsFloating(ewin))
continue;

View File

@ -927,7 +927,7 @@ MoveStickyWindowsToCurrentDesk(void)
ewin = lst[i];
if (!EoIsSticky(ewin) && !EoIsFloating(ewin))
continue;
if (ewin->client.transient > 0)
if (EwinIsTransientChild(ewin))
continue;
EwinMoveToDesktop(ewin, desk);

View File

@ -138,11 +138,11 @@ DockIt(EWin * ewin)
DockappFindEmptySpotFor(ewin);
ewin->state.placed = 1;
if (ewin->client.icon_win)
if (ewin->icccm.icon_win)
{
XSetWindowBorderWidth(disp, ewin->client.icon_win, 0);
XMoveWindow(disp, ewin->client.icon_win, 0, 0);
XMapWindow(disp, ewin->client.icon_win);
XSetWindowBorderWidth(disp, ewin->icccm.icon_win, 0);
XMoveWindow(disp, ewin->icccm.icon_win, 0, 0);
XMapWindow(disp, ewin->icccm.icon_win);
}
ImageclassApply(ic, EoGetWin(ewin), ewin->client.w, ewin->client.h,

View File

@ -578,7 +578,7 @@ EwinIconify(EWin * ewin)
was_shaded = ewin->state.shaded;
if (!ewin->client.transient)
if (!EwinIsTransient(ewin))
ModulesSignal(ESIGNAL_EWIN_ICONIFY, ewin);
ewin->state.iconified = 3;
@ -590,7 +590,7 @@ EwinIconify(EWin * ewin)
if (was_shaded != ewin->state.shaded)
EwinInstantShade(ewin, 0);
if (ewin->client.transient)
if (EwinIsTransient(ewin))
{
/* We should only get here during restart */
ewin->state.iconified = 4;
@ -1391,7 +1391,7 @@ EwinsShowDesktop(int on)
if (on)
{
if (EwinIsInternal(ewin) || ewin->state.iconified
|| ewin->props.donthide || ewin->client.transient)
|| ewin->props.donthide || EwinIsTransient(ewin))
continue;
ewin->state.showingdesk = 1;

View File

@ -97,7 +97,7 @@ EwinCreate(Window win, int type)
ewin->client.y = -1;
ewin->client.w = -1;
ewin->client.h = -1;
ewin->client.need_input = 1;
ewin->icccm.need_input = 1;
ewin->client.aspect_min = 0.0;
ewin->client.aspect_max = 65535.0;
ewin->client.w_inc = 1;
@ -206,9 +206,9 @@ EwinDestroy(EWin * ewin)
lst = EwinListTransientFor(ewin, &num);
for (i = 0; i < num; i++)
{
lst[i]->has_transients--;
if (lst[i]->has_transients < 0) /* Paranoia? */
lst[i]->has_transients = 0;
lst[i]->icccm.transient_count--;
if (lst[i]->icccm.transient_count < 0) /* Paranoia? */
lst[i]->icccm.transient_count = 0;
}
if (lst)
Efree(lst);
@ -519,7 +519,7 @@ void
EwinStateUpdate(EWin * ewin)
{
ewin->state.inhibit_actions = ewin->props.no_actions;
ewin->state.inhibit_focus = !ewin->client.need_input ||
ewin->state.inhibit_focus = !ewin->icccm.need_input ||
ewin->props.never_focus || ewin->state.iconified;
ewin->state.no_border = ewin->props.no_border || ewin->state.docked ||
@ -631,36 +631,36 @@ AddToFamily(EWin * ewin, Window win)
DockIt(ewin);
ewin2 = NULL;
if (ewin->client.transient)
if (ewin->icccm.transient)
{
if (ewin->client.transient_for == None ||
ewin->client.transient_for == VRoot.win)
if (ewin->icccm.transient_for == None ||
ewin->icccm.transient_for == VRoot.win)
{
/* Group transient */
ewin->client.transient_for = VRoot.win;
ewin->icccm.transient_for = VRoot.win;
#if 0 /* Maybe? */
ewin->layer++;
#endif
/* Don't treat this as a normal transient */
ewin->client.transient = -1;
ewin->icccm.transient = -1;
}
else if (ewin->client.transient_for == ewin->client.win)
else if (ewin->icccm.transient_for == ewin->client.win)
{
/* Some apps actually do this. Why? */
ewin->client.transient = 0;
ewin->icccm.transient = 0;
}
else
{
/* Regular transient */
}
if (ewin->client.transient)
if (ewin->icccm.transient)
{
/* Tag the parent window if this is a transient */
lst = EwinListTransientFor(ewin, &num);
for (i = 0; i < num; i++)
{
lst[i]->has_transients++;
lst[i]->icccm.transient_count++;
if (EoGetLayer(ewin) < EoGetLayer(lst[i]))
EoSetLayer(ewin, EoGetLayer(lst[i]));
}
@ -673,19 +673,19 @@ AddToFamily(EWin * ewin, Window win)
else
{
/* No parents? - not a transient */
ewin->client.transient = 0;
ewin->icccm.transient = 0;
}
}
}
x = EoGetX(ewin);
y = EoGetY(ewin);
if (ewin->client.transient && Conf.focus.transientsfollowleader)
if (ewin->icccm.transient && Conf.focus.transientsfollowleader)
{
EWin *const *lst2;
if (!ewin2)
ewin2 = EwinFindByClient(ewin->client.group);
ewin2 = EwinFindByClient(ewin->icccm.group);
if (!ewin2)
{
@ -693,7 +693,7 @@ AddToFamily(EWin * ewin, Window win)
for (i = 0; i < num; i++)
{
if ((lst2[i]->state.iconified) ||
(ewin->client.group != lst2[i]->client.group))
(ewin->icccm.group != lst2[i]->icccm.group))
continue;
ewin2 = lst2[i];
@ -730,7 +730,7 @@ AddToFamily(EWin * ewin, Window win)
doslide = 1;
if (Conf.place.manual && !Mode.place.doing_manual &&
!ewin->state.placed && !ewin->client.transient)
!ewin->state.placed && !ewin->icccm.transient)
{
if (GrabPointerSet(VRoot.win, ECSR_GRAB, 0) == GrabSuccess)
manplace = 1;
@ -785,7 +785,7 @@ AddToFamily(EWin * ewin, Window win)
}
/* if the window asked to be iconified at the start */
if (ewin->client.start_iconified)
if (ewin->icccm.start_iconified)
{
EwinMoveToDesktopAt(ewin, desk, x, y);
ewin->state.state = EWIN_STATE_MAPPED;

View File

@ -28,21 +28,6 @@
typedef struct _ewin EWin;
#endif
#define EWIN_STATE_NEW 0 /* New */
#define EWIN_STATE_STARTUP 1 /* New - during startup */
#define EWIN_STATE_WITHDRAWN 2
#define EWIN_STATE_ICONIC 3
#define EWIN_STATE_MAPPED 4
#define EWIN_TYPE_NORMAL 0x00
#define EWIN_TYPE_DIALOG 0x01
#define EWIN_TYPE_MENU 0x02
#define EWIN_TYPE_ICONBOX 0x04
#define EWIN_TYPE_PAGER 0x08
#define EwinIsMapped(ewin) (ewin->state.state >= EWIN_STATE_MAPPED)
#define EwinIsInternal(ewin) (ewin->type != EWIN_TYPE_NORMAL)
struct _ewin
{
EObj o;
@ -59,18 +44,6 @@ struct _ewin
Window win;
int x, y, w, h, bw;
Colormap cmap;
Window icon_win;
Pixmap icon_pmap, icon_mask;
Window group;
Window client_leader;
char start_iconified;
char need_input;
char urgency;
char take_focus;
char delete_window;
signed char transient;
Window transient_for;
char is_group_leader;
char no_resize_h;
char no_resize_v;
Constraints width, height;
@ -144,6 +117,24 @@ struct _ewin
char *wm_role;
char *wm_command;
char *wm_machine;
/* WM_HINTS */
char need_input;
char start_iconified;
Pixmap icon_pmap, icon_mask;
Window icon_win;
Window group;
char urgency;
/* WM_PROTOCOLS */
char take_focus;
char delete_window;
/* WM_TRANSIENT_FOR */
signed char transient;
Window transient_for; /* We are a transient for ... */
int transient_count; /* We have <N> transients */
/* WM_CLIENT_LEADER */
Window client_leader;
char is_group_leader;
} icccm;
struct
{
@ -181,7 +172,6 @@ struct _ewin
Group **groups;
int area_x, area_y;
char *session_id;
int has_transients;
PmapMask mini_pmm;
int mini_w, mini_h;
@ -203,6 +193,27 @@ struct _ewin
void (*Close) (EWin * ewin);
};
#define EWIN_STATE_NEW 0 /* New */
#define EWIN_STATE_STARTUP 1 /* New - during startup */
#define EWIN_STATE_WITHDRAWN 2
#define EWIN_STATE_ICONIC 3
#define EWIN_STATE_MAPPED 4
#define EWIN_TYPE_NORMAL 0x00
#define EWIN_TYPE_DIALOG 0x01
#define EWIN_TYPE_MENU 0x02
#define EWIN_TYPE_ICONBOX 0x04
#define EWIN_TYPE_PAGER 0x08
#define EwinIsMapped(ewin) (ewin->state.state >= EWIN_STATE_MAPPED)
#define EwinIsInternal(ewin) (ewin->type != EWIN_TYPE_NORMAL)
#define EwinIsTransientChild(ewin) (ewin->icccm.transient > 0)
#define EwinIsTransient(ewin) (ewin->icccm.transient != 0)
#define EwinGetTransientFor(ewin) (ewin->icccm.transient_for)
#define EwinGetTransientCount(ewin) (ewin->icccm.transient_count)
#define EwinIsWindowGroupLeader(ewin) (ewin->icccm.is_group_leader)
#define EwinGetWindowGroup(ewin) (ewin->icccm.group)
/* ewins.c */
#define EWIN_CHANGE_NAME (1<<0)
#define EWIN_CHANGE_ICON_NAME (1<<1)

View File

@ -354,7 +354,7 @@ EwinListTransients(EWin * ewin, int *num, int group)
j = 0;
lst = NULL;
if (!ewin->has_transients)
if (EwinGetTransientCount(ewin) <= 0)
goto done;
ewins = EwinListGetAll(&n);
@ -368,7 +368,7 @@ EwinListTransients(EWin * ewin, int *num, int group)
if (ew == ewin)
continue;
if (ew->client.transient_for == ewin->client.win)
if (EwinGetTransientFor(ew) == ewin->client.win)
{
lst = Erealloc(lst, (j + 1) * sizeof(EWin *));
lst[j++] = ew;
@ -379,7 +379,7 @@ EwinListTransients(EWin * ewin, int *num, int group)
goto done;
/* Group transients (if ewin is not a transient) */
if (ewin->client.transient)
if (EwinIsTransient(ewin))
goto done;
for (i = 0; i < n; i++)
@ -390,8 +390,8 @@ EwinListTransients(EWin * ewin, int *num, int group)
if (ew == ewin)
continue;
if (ew->client.transient_for == VRoot.win &&
ew->client.group == ewin->client.group)
if (EwinGetTransientFor(ew) == VRoot.win &&
EwinGetWindowGroup(ew) == EwinGetWindowGroup(ewin))
{
lst = Erealloc(lst, (j + 1) * sizeof(EWin *));
lst[j++] = ew;
@ -412,7 +412,7 @@ EwinListTransientFor(EWin * ewin, int *num)
j = 0;
lst = NULL;
if (!ewin->client.transient)
if (!EwinIsTransient(ewin))
goto done;
ewins = EwinListGetAll(&n);
@ -425,10 +425,10 @@ EwinListTransientFor(EWin * ewin, int *num)
continue;
/* Regular parent or if root trans, top level group members */
if ((ewin->client.transient_for == ew->client.win) ||
(!ew->client.transient &&
ewin->client.transient_for == VRoot.win &&
ew->client.group == ewin->client.group))
if ((EwinGetTransientFor(ewin) == ew->client.win) ||
(!EwinIsTransient(ew) &&
EwinGetTransientFor(ewin) == VRoot.win &&
EwinGetWindowGroup(ew) == EwinGetWindowGroup(ewin)))
{
lst = Erealloc(lst, (j + 1) * sizeof(EWin *));
lst[j++] = ew;

View File

@ -316,7 +316,7 @@ doFocusToEwin(EWin * ewin, int why)
do_focus = 1;
}
if (ewin->client.transient)
if (EwinIsTransient(ewin))
{
if (Conf.focus.new_transients_get_focus)
{
@ -326,7 +326,7 @@ doFocusToEwin(EWin * ewin, int why)
{
EWin *ewin2;
ewin2 = EwinFindByClient(ewin->client.transient_for);
ewin2 = EwinFindByClient(EwinGetTransientFor(ewin));
if ((ewin2) && (Mode.focuswin == ewin2))
do_focus = 2;
}

View File

@ -378,7 +378,7 @@ EHintsGetInfo(EWin * ewin)
ewin->client.grav = NorthWestGravity;
if (ewin->state.iconified)
{
ewin->client.start_iconified = 1;
ewin->icccm.start_iconified = 1;
ewin->state.iconified = 0;
}
ewin->state.placed = 1;

View File

@ -110,7 +110,7 @@ ICCCM_Delete(const EWin * ewin)
return;
}
if (ewin->client.delete_window)
if (ewin->icccm.delete_window)
ecore_x_icccm_delete_window_send(ewin->client.win, CurrentTime);
else
XKillClient(disp, ewin->client.win);
@ -262,7 +262,7 @@ ICCCM_Adopt(const EWin * ewin)
{
Window win = ewin->client.win;
if (ewin->client.start_iconified)
if (ewin->icccm.start_iconified)
ecore_x_icccm_state_set_iconic(win);
else
ecore_x_icccm_state_set_normal(win);
@ -338,7 +338,7 @@ ICCCM_Focus(const EWin * ewin)
return;
}
if (ewin->client.take_focus)
if (ewin->icccm.take_focus)
{
ecore_x_icccm_take_focus_send(ewin->client.win, CurrentTime);
}
@ -521,7 +521,7 @@ ICCCM_GetGeoms(EWin * ewin, Atom atom_change)
ewin->client.w, ewin->client.h, EwinGetName(ewin));
}
#define TryGroup(e) (((e)->client.group != None) && ((e)->client.group != (e)->client.win))
#define TryGroup(e) (((e)->icccm.group != None) && ((e)->icccm.group != (e)->client.win))
void
ICCCM_GetInfo(EWin * ewin, Atom atom_change)
@ -534,7 +534,7 @@ ICCCM_GetInfo(EWin * ewin, Atom atom_change)
_EFREE(ewin->icccm.wm_res_class);
if (XGetClassHint(disp, ewin->client.win, &hint) ||
(TryGroup(ewin) && XGetClassHint(disp, ewin->client.group, &hint)))
(TryGroup(ewin) && XGetClassHint(disp, ewin->icccm.group, &hint)))
{
ewin->icccm.wm_res_name = Estrdup(hint.res_name);
ewin->icccm.wm_res_class = Estrdup(hint.res_class);
@ -554,7 +554,7 @@ ICCCM_GetInfo(EWin * ewin, Atom atom_change)
ECORE_X_ATOM_WM_COMMAND,
&argv);
if ((argc < 0) && TryGroup(ewin))
argc = ecore_x_window_prop_string_list_get(ewin->client.group,
argc = ecore_x_window_prop_string_list_get(ewin->icccm.group,
ECORE_X_ATOM_WM_COMMAND,
&argv);
@ -572,7 +572,7 @@ ICCCM_GetInfo(EWin * ewin, Atom atom_change)
ECORE_X_ATOM_WM_CLIENT_MACHINE);
if (!ewin->icccm.wm_machine && TryGroup(ewin))
ewin->icccm.wm_machine =
ecore_x_window_prop_string_get(ewin->client.group,
ecore_x_window_prop_string_get(ewin->icccm.group,
ECORE_X_ATOM_WM_CLIENT_MACHINE);
}
@ -585,7 +585,7 @@ ICCCM_GetInfo(EWin * ewin, Atom atom_change)
ECORE_X_ATOM_WM_ICON_NAME);
if (!ewin->icccm.wm_icon_name && TryGroup(ewin))
ewin->icccm.wm_icon_name =
ecore_x_window_prop_string_get(ewin->client.group,
ecore_x_window_prop_string_get(ewin->icccm.group,
ECORE_X_ATOM_WM_ICON_NAME);
}
@ -627,45 +627,45 @@ ICCCM_GetHints(EWin * ewin, Atom atom_change)
}
}
ewin->client.need_input =
ewin->icccm.need_input =
((hint->flags & InputHint) && (!hint->input)) ? 0 : 1;
ewin->client.start_iconified =
ewin->icccm.start_iconified =
((hint->flags & StateHint) &&
(hint->initial_state == IconicState)) ? 1 : 0;
if (hint->flags & IconPixmapHint)
{
if (ewin->client.icon_pmap != hint->icon_pixmap)
if (ewin->icccm.icon_pmap != hint->icon_pixmap)
{
ewin->client.icon_pmap = hint->icon_pixmap;
ewin->icccm.icon_pmap = hint->icon_pixmap;
EwinChange(ewin, EWIN_CHANGE_ICON_PMAP);
}
}
else
{
ewin->client.icon_pmap = None;
ewin->icccm.icon_pmap = None;
}
ewin->client.icon_mask =
ewin->icccm.icon_mask =
(hint->flags & IconMaskHint) ? hint->icon_mask : None;
ewin->client.icon_win =
ewin->icccm.icon_win =
(hint->flags & IconWindowHint) ? hint->icon_window : None;
ewin->client.group =
ewin->icccm.group =
(hint->flags & WindowGroupHint) ? hint->window_group : None;
if (hint->flags & XUrgencyHint)
{
if (!ewin->state.attention)
EwinChange(ewin, EWIN_CHANGE_ATTENTION);
ewin->client.urgency = 1;
ewin->icccm.urgency = 1;
ewin->state.attention = 1;
}
else
{
ewin->client.urgency = 0;
ewin->icccm.urgency = 0;
}
XFree(hint);
@ -675,14 +675,14 @@ ICCCM_GetHints(EWin * ewin, Atom atom_change)
{
if (XGetWMProtocols(disp, ewin->client.win, &prop, &num))
{
ewin->client.take_focus = 0;
ewin->client.delete_window = 0;
ewin->icccm.take_focus = 0;
ewin->icccm.delete_window = 0;
for (i = 0; i < num; i++)
{
if (prop[i] == ECORE_X_ATOM_WM_TAKE_FOCUS)
ewin->client.take_focus = ewin->client.need_input = 1;
ewin->icccm.take_focus = ewin->icccm.need_input = 1;
else if (prop[i] == ECORE_X_ATOM_WM_DELETE_WINDOW)
ewin->client.delete_window = 1;
ewin->icccm.delete_window = 1;
}
XFree(prop);
}
@ -690,22 +690,22 @@ ICCCM_GetHints(EWin * ewin, Atom atom_change)
if (atom_change == 0 || atom_change == ECORE_X_ATOM_WM_TRANSIENT_FOR)
{
ewin->client.transient = 0;
ewin->client.transient_for = None;
ewin->icccm.transient = 0;
ewin->icccm.transient_for = None;
if (XGetTransientForHint(disp, ewin->client.win, &win))
{
ewin->client.transient = 1;
ewin->client.transient_for = win;
ewin->icccm.transient = 1;
ewin->icccm.transient_for = win;
}
}
if (ewin->client.group == ewin->client.win)
if (ewin->icccm.group == ewin->client.win)
{
ewin->client.is_group_leader = 1;
ewin->icccm.is_group_leader = 1;
}
else
{
ewin->client.is_group_leader = 0;
ewin->icccm.is_group_leader = 0;
}
if (atom_change == 0 || atom_change == ECORE_X_ATOM_WM_CLIENT_LEADER)
@ -717,9 +717,9 @@ ICCCM_GetHints(EWin * ewin, Atom atom_change)
&cleader, 1);
if (num > 0)
{
ewin->client.client_leader = cleader;
if (!ewin->client.group)
ewin->client.group = cleader;
ewin->icccm.client_leader = cleader;
if (!ewin->icccm.group)
ewin->icccm.group = cleader;
}
}
}

View File

@ -156,19 +156,19 @@ IB_GetAppIcon(EWin * ewin, int size)
}
}
if (!ewin->client.icon_pmap)
if (!ewin->icccm.icon_pmap)
return NULL;
w = 0;
h = 0;
XGetGeometry(disp, ewin->client.icon_pmap, &rt, &x, &y, &w, &h, &bw, &depth);
XGetGeometry(disp, ewin->icccm.icon_pmap, &rt, &x, &y, &w, &h, &bw, &depth);
if (w < 1 || h < 1)
return NULL;
imlib_context_set_colormap(None);
imlib_context_set_drawable(ewin->client.icon_pmap);
im = imlib_create_image_from_drawable(ewin->client.icon_mask, 0, 0, w, h,
imlib_context_set_drawable(ewin->icccm.icon_pmap);
im = imlib_create_image_from_drawable(ewin->icccm.icon_mask, 0, 0, w, h,
!EServerIsGrabbed());
imlib_context_set_image(im);
imlib_image_set_has_alpha(1); /* Should be set by imlib? */

View File

@ -1020,14 +1020,14 @@ EwinShowInfo1(const EWin * ewin)
EoIsShown(ewin), ewin->state.iconified, ewin->state.shaded,
ewin->state.active, EoGetLayer(ewin), ewin->props.never_use_area,
EoIsFloating(ewin), ewin->client.w, ewin->client.h,
ewin->client.icon_win,
ewin->client.icon_pmap, ewin->client.icon_mask,
ewin->client.group,
ewin->client.need_input, ewin->client.transient,
ewin->icccm.icon_win,
ewin->icccm.icon_pmap, ewin->icccm.icon_mask,
EwinGetWindowGroup(ewin),
ewin->icccm.need_input, EwinIsTransient(ewin),
SS(ewin->icccm.wm_name), SS(ewin->icccm.wm_res_class),
SS(ewin->icccm.wm_res_name), SS(ewin->icccm.wm_command),
SS(ewin->icccm.wm_machine), SS(ewin->icccm.wm_icon_name),
ewin->client.is_group_leader,
EwinIsWindowGroupLeader(ewin),
ewin->client.no_resize_h, ewin->client.no_resize_v,
ewin->state.shaped,
ewin->client.width.min, ewin->client.height.min,
@ -1102,11 +1102,11 @@ EwinShowInfo2(const EWin * ewin)
#endif
border->name, border->border.left, border->border.right,
border->border.top, border->border.bottom,
ewin->client.icon_win,
ewin->client.icon_pmap, ewin->client.icon_mask,
ewin->client.is_group_leader, ewin->client.group,
ewin->client.client_leader, ewin->has_transients,
ewin->client.transient, ewin->client.transient_for,
ewin->icccm.icon_win,
ewin->icccm.icon_pmap, ewin->icccm.icon_mask,
EwinIsWindowGroupLeader(ewin), EwinGetWindowGroup(ewin),
ewin->icccm.client_leader, EwinGetTransientCount(ewin),
EwinIsTransient(ewin), EwinGetTransientFor(ewin),
ewin->client.no_resize_h, ewin->client.no_resize_v,
ewin->state.shaped, ewin->client.base_w, ewin->client.base_h,
ewin->client.width.min, ewin->client.height.min,
@ -1118,7 +1118,7 @@ EwinShowInfo2(const EWin * ewin)
ewin->mwm.decor_border, ewin->mwm.decor_resizeh,
ewin->mwm.decor_title, ewin->mwm.decor_menu,
ewin->mwm.decor_minimize, ewin->mwm.decor_maximize,
ewin->client.need_input, ewin->client.take_focus,
ewin->icccm.need_input, ewin->icccm.take_focus,
ewin->props.never_focus, ewin->props.focusclick,
ewin->props.never_use_area, ewin->props.fixedpos, EoGetDesk(ewin),
EoGetLayer(ewin), ewin->o.ilayer,

View File

@ -269,7 +269,7 @@ MatchEwinToSM(EWin * ewin)
matches[i].used = 1;
ewin->state.placed = 1;
ewin->client.start_iconified = matches[i].iconified;
ewin->icccm.start_iconified = matches[i].iconified;
EoSetSticky(ewin, matches[i].sticky);
ewin->state.shaded = matches[i].shaded;
EoSetLayer(ewin, matches[i].layer);

View File

@ -560,7 +560,7 @@ WindowMatchTest(const EWin * ewin, const WindowMatch * wm)
switch (wm->prop)
{
case MATCH_PROP_TRANSIENT:
match = ewin->client.transient;
match = EwinIsTransient(ewin);
break;
case MATCH_PROP_SHAPED:
@ -668,7 +668,7 @@ WindowMatchEwinOpsAction(EWin * ewin, int op, const char *args)
return;
case EWIN_OP_ICONIFY:
WINOP_GET_BOOL(ewin->client.start_iconified, args);
WINOP_GET_BOOL(ewin->icccm.start_iconified, args);
break;
case EWIN_OP_SHADE: