parent
98b0931f8b
commit
018408379a
9
src/E.h
9
src/E.h
|
@ -504,6 +504,7 @@ struct _eobj
|
|||
short desk; /* Belongs on desk */
|
||||
int x, y;
|
||||
int w, h;
|
||||
signed char stacked;
|
||||
char sticky;
|
||||
char floating;
|
||||
char shown;
|
||||
|
@ -512,7 +513,7 @@ struct _eobj
|
|||
unsigned int opacity;
|
||||
void *cmhook;
|
||||
#endif
|
||||
char *name; /* Debug only */
|
||||
char *name;
|
||||
};
|
||||
|
||||
#define EOBJ_TYPE_EWIN 0
|
||||
|
@ -558,7 +559,7 @@ struct _eobj
|
|||
#define EoGetShadow(eo) 0
|
||||
#endif
|
||||
|
||||
#define EoMap(eo, raise) EobjMap(&((eo)->o), (raise))
|
||||
#define EoMap(eo, raise) EobjMap(&((eo)->o), raise)
|
||||
#define EoUnmap(eo) EobjUnmap(&((eo)->o))
|
||||
#define EoMove(eo, x, y) EobjMove(&((eo)->o), x, y)
|
||||
#define EoResize(eo, w, h) EobjResize(&((eo)->o), w, h)
|
||||
|
@ -1407,10 +1408,8 @@ void DeskAssignBg(int desk, Background * bg);
|
|||
void DeskSetBg(int desk, Background * bg, int refresh);
|
||||
int DesktopAt(int x, int y);
|
||||
void DeskGoto(int num);
|
||||
void DeskMove(int num, int x, int y);
|
||||
void DeskHide(int num);
|
||||
void DeskShow(int num);
|
||||
void StackDesktops(void);
|
||||
void StackDesktop(int num);
|
||||
void DeskGotoByEwin(EWin * ewin);
|
||||
void DesksEventsConfigure(int mode);
|
||||
|
@ -1549,7 +1548,7 @@ void EobjChangeOpacity(EObj * eo, unsigned int opacity);
|
|||
#else
|
||||
#define EobjChangeOpacity(eo, opacity)
|
||||
#endif
|
||||
int EobjSetDesk(EObj * eo, int desk);
|
||||
void EobjSetDesk(EObj * eo, int desk);
|
||||
void EobjSetLayer(EObj * eo, int layer);
|
||||
void EobjSetFloating(EObj * eo, int floating);
|
||||
int EobjIsShaped(const EObj * eo);
|
||||
|
|
|
@ -132,9 +132,9 @@ ButtonCreate(const char *name, int id, ImageClass * iclass,
|
|||
win = ECreateWindow(DeskGetWin(desk), -100, -100, 50, 50, 0);
|
||||
EoSetSticky(b, sticky);
|
||||
EoSetDesk(b, desk);
|
||||
EobjInit(&b->o, EOBJ_TYPE_BUTTON, win, -100, -100, 50, 50, name);
|
||||
EoSetLayer(b, ontop);
|
||||
EoSetShadow(b, 0);
|
||||
EobjInit(&b->o, EOBJ_TYPE_BUTTON, win, -100, -100, 50, 50, name);
|
||||
|
||||
ESelectInput(EoGetWin(b), BUTTON_EVENT_MASK);
|
||||
EventCallbackRegister(EoGetWin(b), 0, ButtonHandleEvents, b);
|
||||
|
@ -635,11 +635,13 @@ ButtonEventMotion(Button * b, XEvent * ev __UNUSED__)
|
|||
if (b)
|
||||
{
|
||||
ButtonMoveRelative(b, dx, dy);
|
||||
#if 0 /* FIXME - Not active */
|
||||
if (Conf.deskmode == MODE_DESKRAY)
|
||||
{
|
||||
DeskMove(Mode.deskdrag, DeskGetX(Mode.deskdrag),
|
||||
DeskGetY(Mode.deskdrag) + dy);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1109,7 +1111,6 @@ doHideShowButton(const char *params)
|
|||
}
|
||||
|
||||
done:
|
||||
StackDesktops();
|
||||
autosave();
|
||||
}
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ CoordsShow(EWin * ewin)
|
|||
EobjMoveResize(eo, cx, cy, cw, ch);
|
||||
|
||||
if (!eo->shown)
|
||||
EobjMap(eo, 1);
|
||||
EobjMap(eo, 0);
|
||||
|
||||
ImageclassApply(ic, eo->win, cw, ch, 1, 0, STATE_NORMAL, 0, ST_UNKNWN);
|
||||
TextclassApply(ic, eo->win, cw, ch, 0, 0, STATE_NORMAL, 0, tc, s);
|
||||
|
|
108
src/desktops.c
108
src/desktops.c
|
@ -41,6 +41,7 @@ typedef struct _desktops
|
|||
}
|
||||
Desktops;
|
||||
|
||||
static void DeskMove(Desk * d, int x, int y);
|
||||
static void DeskRaise(int num);
|
||||
static void DeskLower(int num);
|
||||
static void DesktopHandleEvents(XEvent * ev, void *prm);
|
||||
|
@ -300,9 +301,6 @@ DeskControlsCreate(Desk * d)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Restack buttons - Hmmm. */
|
||||
StackDesktop(d->num);
|
||||
|
||||
d->tag = b;
|
||||
}
|
||||
|
||||
|
@ -416,11 +414,10 @@ DeskCreate(int desk, int configure)
|
|||
Esnprintf(buf, sizeof(buf), "Desk-%d", desk);
|
||||
EobjInit(&d->o, EOBJ_TYPE_DESK, win, 0, 0, VRoot.w, VRoot.h, buf);
|
||||
EoSetShadow(d, 0);
|
||||
EoSetLayer(d, 0);
|
||||
if (desk > 0)
|
||||
{
|
||||
EoSetFloating(d, 1);
|
||||
EobjListStackRaise(&d->o);
|
||||
EoSetLayer(d, 0);
|
||||
#if 0 /* TBD */
|
||||
d->event_mask = EDESK_EVENT_MASK;
|
||||
DeskEventsConfigure(d, 1);
|
||||
|
@ -572,6 +569,8 @@ DeskSetDirtyStack(int desk)
|
|||
return;
|
||||
|
||||
d->dirty_stack++;
|
||||
if (EventDebug(EDBUG_TYPE_DESKS))
|
||||
Eprintf("DeskSetDirtyStack %d (%d)\n", desk, d->dirty_stack);
|
||||
}
|
||||
|
||||
Window
|
||||
|
@ -727,7 +726,6 @@ DeskShowTabs(void)
|
|||
for (i = 0; i < num; i++)
|
||||
ButtonShow(blst[i]);
|
||||
Efree(blst);
|
||||
StackDesktops();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -743,7 +741,6 @@ DeskHideTabs(void)
|
|||
for (i = 0; i < num; i++)
|
||||
ButtonHide(blst[i]);
|
||||
Efree(blst);
|
||||
StackDesktops();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -994,25 +991,25 @@ DeskGoto(int desk)
|
|||
switch (Conf.desks.dragdir)
|
||||
{
|
||||
case 0:
|
||||
DeskMove(desk, VRoot.w, 0);
|
||||
DeskMove(d, VRoot.w, 0);
|
||||
DeskRaise(desk);
|
||||
EobjSlideTo(&d->o, VRoot.w, 0, 0, 0,
|
||||
Conf.desks.slidespeed);
|
||||
break;
|
||||
case 1:
|
||||
DeskMove(desk, -VRoot.w, 0);
|
||||
DeskMove(d, -VRoot.w, 0);
|
||||
DeskRaise(desk);
|
||||
EobjSlideTo(&d->o, -VRoot.w, 0, 0, 0,
|
||||
Conf.desks.slidespeed);
|
||||
break;
|
||||
case 2:
|
||||
DeskMove(desk, 0, VRoot.h);
|
||||
DeskMove(d, 0, VRoot.h);
|
||||
DeskRaise(desk);
|
||||
EobjSlideTo(&d->o, 0, VRoot.h, 0, 0,
|
||||
Conf.desks.slidespeed);
|
||||
break;
|
||||
case 3:
|
||||
DeskMove(desk, 0, -VRoot.h);
|
||||
DeskMove(d, 0, -VRoot.h);
|
||||
DeskRaise(desk);
|
||||
EobjSlideTo(&d->o, 0, -VRoot.h, 0, 0,
|
||||
Conf.desks.slidespeed);
|
||||
|
@ -1027,14 +1024,12 @@ DeskGoto(int desk)
|
|||
Conf.desks.slidespeed);
|
||||
DeskRaise(desk);
|
||||
}
|
||||
StackDesktops();
|
||||
}
|
||||
else
|
||||
{
|
||||
DeskRaise(desk);
|
||||
StackDesktops();
|
||||
}
|
||||
DeskMove(desk, 0, 0);
|
||||
DeskMove(d, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1052,29 +1047,25 @@ DeskGoto(int desk)
|
|||
HandleDrawQueue();
|
||||
}
|
||||
|
||||
void
|
||||
DeskMove(int desk, int x, int y)
|
||||
static void
|
||||
DeskMove(Desk * d, int x, int y)
|
||||
{
|
||||
Desk *d, *dd;
|
||||
Desk *dd;
|
||||
int i;
|
||||
EWin *const *lst;
|
||||
int n, v, dx, dy;
|
||||
|
||||
if (desk <= 0 || desk >= Conf.desks.num)
|
||||
return;
|
||||
|
||||
n = -1;
|
||||
i = 0;
|
||||
while (n < 0 && i < Conf.desks.num)
|
||||
{
|
||||
if (desks.order[i] == desk)
|
||||
if (desks.order[i] == d->num)
|
||||
n = i;
|
||||
i++;
|
||||
}
|
||||
if (n < 0) /* Should not be possible */
|
||||
return;
|
||||
|
||||
d = _DeskGet(desk);
|
||||
dx = x - EoGetX(d);
|
||||
dy = y - EoGetY(d);
|
||||
|
||||
|
@ -1122,10 +1113,27 @@ DeskMove(int desk, int x, int y)
|
|||
|
||||
lst = EwinListGetAll(&n);
|
||||
for (i = 0; i < n; i++)
|
||||
if (EoGetDesk(lst[i]) == desk)
|
||||
if (EoGetDesk(lst[i]) == d->num)
|
||||
ICCCM_Configure(lst[i]);
|
||||
}
|
||||
|
||||
static void
|
||||
DesksStackingCheck(void)
|
||||
{
|
||||
Desk *d;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < Conf.desks.num; i++)
|
||||
{
|
||||
d = DeskGet(i);
|
||||
if (i && !d->viewable)
|
||||
continue;
|
||||
if (!d->dirty_stack)
|
||||
continue;
|
||||
StackDesktop(i);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
UncoverDesktop(int desk)
|
||||
{
|
||||
|
@ -1173,10 +1181,9 @@ DeskRaise(int desk)
|
|||
EoMap(d, 0);
|
||||
}
|
||||
|
||||
StackDesktops();
|
||||
MoveStickyWindowsToCurrentDesk();
|
||||
MoveStickyButtonsToCurrentDesk();
|
||||
StackDesktop(DesksGetCurrent());
|
||||
DesksStackingCheck();
|
||||
FocusNewDesk();
|
||||
if (Mode.mode == MODE_NONE)
|
||||
{
|
||||
|
@ -1204,10 +1211,9 @@ DeskLower(int desk)
|
|||
UncoverDesktop(desks.order[0]);
|
||||
DeskHide(desk);
|
||||
|
||||
StackDesktops();
|
||||
MoveStickyWindowsToCurrentDesk();
|
||||
MoveStickyButtonsToCurrentDesk();
|
||||
StackDesktop(DesksGetCurrent());
|
||||
DesksStackingCheck();
|
||||
FocusNewDesk();
|
||||
if (Mode.mode == MODE_NONE)
|
||||
{
|
||||
|
@ -1256,17 +1262,10 @@ DeskShow(int desk)
|
|||
}
|
||||
else
|
||||
{
|
||||
StackDesktops();
|
||||
EoMap(d, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
StackDesktops(void)
|
||||
{
|
||||
StackDesktop(0);
|
||||
}
|
||||
|
||||
#define _APPEND_TO_WIN_LIST(win) \
|
||||
{ \
|
||||
wl = Erealloc(wl, ++tot * sizeof(Window)); \
|
||||
|
@ -1275,6 +1274,7 @@ StackDesktops(void)
|
|||
void
|
||||
StackDesktop(int desk)
|
||||
{
|
||||
Desk *d = DeskGet(desk);
|
||||
Window *wl;
|
||||
int i, num, tot;
|
||||
EObj *const *lst, *eo;
|
||||
|
@ -1285,24 +1285,12 @@ StackDesktop(int desk)
|
|||
wl = NULL;
|
||||
lst = EobjListStackGetForDesk(&num, desk);
|
||||
|
||||
/* Floating objects */
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
eo = lst[i];
|
||||
if (!eo->floating)
|
||||
continue;
|
||||
|
||||
_APPEND_TO_WIN_LIST(eo->win);
|
||||
}
|
||||
|
||||
/* Normal objects */
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
eo = lst[i];
|
||||
if (eo->floating)
|
||||
continue;
|
||||
|
||||
_APPEND_TO_WIN_LIST(eo->win);
|
||||
eo->stacked = 1;
|
||||
}
|
||||
|
||||
if (EventDebug(EDBUG_TYPE_STACKING))
|
||||
|
@ -1317,6 +1305,10 @@ StackDesktop(int desk)
|
|||
|
||||
if (wl)
|
||||
Efree(wl);
|
||||
|
||||
if (EventDebug(EDBUG_TYPE_DESKS))
|
||||
Eprintf("StackDesktop %d (%d)\n", d->num, d->dirty_stack);
|
||||
d->dirty_stack = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1371,24 +1363,24 @@ DeskDragMotion(void)
|
|||
case 0:
|
||||
if ((EoGetX(d) + dx) < 0)
|
||||
dx = -EoGetX(d);
|
||||
DeskMove(Mode.deskdrag, EoGetX(d) + dx, EoGetY(d));
|
||||
DeskMove(d, EoGetX(d) + dx, EoGetY(d));
|
||||
break;
|
||||
case 1:
|
||||
if ((EoGetX(d) + dx) > 0)
|
||||
DeskMove(Mode.deskdrag, 0, EoGetY(d));
|
||||
DeskMove(d, 0, EoGetY(d));
|
||||
else
|
||||
DeskMove(Mode.deskdrag, EoGetX(d) + dx, EoGetY(d));
|
||||
DeskMove(d, EoGetX(d) + dx, EoGetY(d));
|
||||
break;
|
||||
case 2:
|
||||
if ((EoGetY(d) + dy) < 0)
|
||||
dy = -EoGetY(d);
|
||||
DeskMove(Mode.deskdrag, EoGetX(d), EoGetY(d) + dy);
|
||||
DeskMove(d, EoGetX(d), EoGetY(d) + dy);
|
||||
break;
|
||||
case 3:
|
||||
if ((EoGetY(d) + dy) > 0)
|
||||
DeskMove(Mode.deskdrag, EoGetX(d), 0);
|
||||
DeskMove(d, EoGetX(d), 0);
|
||||
else
|
||||
DeskMove(Mode.deskdrag, EoGetX(d), EoGetY(d) + dy);
|
||||
DeskMove(d, EoGetX(d), EoGetY(d) + dy);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -1469,9 +1461,13 @@ DeskDragdirSet(const char *params)
|
|||
if (pd != Conf.desks.dragdir)
|
||||
{
|
||||
int i;
|
||||
Desk *d;
|
||||
|
||||
for (i = 0; i < Conf.desks.num; i++)
|
||||
DeskMove(i, 0, 0);
|
||||
{
|
||||
d = _DeskGet(i);
|
||||
EoMove(d, (d->viewable) ? 0 : VRoot.w, 0);
|
||||
}
|
||||
DesksControlsRefresh();
|
||||
}
|
||||
}
|
||||
|
@ -1619,6 +1615,10 @@ DesktopsSighan(int sig, void *prm __UNUSED__)
|
|||
/* Draw all the buttons that belong on the desktop */
|
||||
DeskShowButtons();
|
||||
break;
|
||||
|
||||
case ESIGNAL_IDLE:
|
||||
DesksStackingCheck();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -206,19 +206,19 @@ EdgeWindowsShow(void)
|
|||
if (cx == 0 && !Conf.desks.areas_wraparound)
|
||||
EobjUnmap(w1);
|
||||
else
|
||||
EobjMap(w1, 1);
|
||||
EobjMap(w1, 0);
|
||||
if (cx == (ax - 1) && !Conf.desks.areas_wraparound)
|
||||
EobjUnmap(w2);
|
||||
else
|
||||
EobjMap(w2, 1);
|
||||
EobjMap(w2, 0);
|
||||
if (cy == 0 && !Conf.desks.areas_wraparound)
|
||||
EobjUnmap(w3);
|
||||
else
|
||||
EobjMap(w3, 1);
|
||||
EobjMap(w3, 0);
|
||||
if (cy == (ay - 1) && !Conf.desks.areas_wraparound)
|
||||
EobjUnmap(w4);
|
||||
else
|
||||
EobjMap(w4, 1);
|
||||
EobjMap(w4, 0);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
24
src/eobj.c
24
src/eobj.c
|
@ -23,14 +23,17 @@
|
|||
#include "E.h"
|
||||
#include "ecompmgr.h"
|
||||
|
||||
int
|
||||
void
|
||||
EobjSetDesk(EObj * eo, int desk)
|
||||
{
|
||||
int pdesk = eo->desk;
|
||||
|
||||
switch (eo->type)
|
||||
{
|
||||
default:
|
||||
eo->desk = desk;
|
||||
break;
|
||||
|
||||
case EOBJ_TYPE_EWIN:
|
||||
if (eo->floating)
|
||||
eo->desk = 0;
|
||||
|
@ -39,17 +42,17 @@ EobjSetDesk(EObj * eo, int desk)
|
|||
else
|
||||
eo->desk = desk % Conf.desks.num;
|
||||
break;
|
||||
case EOBJ_TYPE_BUTTON:
|
||||
eo->desk = desk;
|
||||
break;
|
||||
}
|
||||
|
||||
return eo->desk;
|
||||
if (eo->desk != pdesk && eo->stacked > 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
}
|
||||
|
||||
void
|
||||
EobjSetLayer(EObj * eo, int layer)
|
||||
{
|
||||
int ilayer = eo->ilayer;
|
||||
|
||||
eo->layer = layer;
|
||||
/*
|
||||
* For usual EWin's the internal layer is the "old" E-layer * 10.
|
||||
|
@ -101,6 +104,9 @@ EobjSetLayer(EObj * eo, int layer)
|
|||
eo->ilayer |= 512;
|
||||
else
|
||||
eo->ilayer &= ~512;
|
||||
|
||||
if (eo->ilayer != ilayer)
|
||||
EobjListStackRaise(eo);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -254,7 +260,6 @@ EobjRegister(Window win, int type)
|
|||
{
|
||||
EobjSetFloating(eo, 1);
|
||||
EobjSetLayer(eo, 4);
|
||||
EobjListStackRaise(eo);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -283,6 +288,13 @@ EobjMap(EObj * eo, int raise)
|
|||
if (raise)
|
||||
EobjListStackRaise(eo);
|
||||
|
||||
if (eo->stacked <= 0)
|
||||
{
|
||||
if (eo->stacked < 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
StackDesktop(eo->desk);
|
||||
}
|
||||
|
||||
EMapWindow(eo->win);
|
||||
#if USE_COMPOSITE
|
||||
ECompMgrWinMap(eo);
|
||||
|
|
|
@ -216,10 +216,6 @@ HandleEvent(XEvent * ev)
|
|||
else
|
||||
#endif
|
||||
{
|
||||
#if 0 /* FIXME - TBD */
|
||||
if (ev->type == KeyPress)
|
||||
PagerHideAllHi();
|
||||
#endif
|
||||
lst = ListItemType(&num, LIST_TYPE_ACLASS_GLOBAL);
|
||||
if (lst)
|
||||
{
|
||||
|
|
19
src/ewins.c
19
src/ewins.c
|
@ -108,6 +108,7 @@ EwinCreate(Window win, int type)
|
|||
ewin->ewmh.opacity = 0; /* If 0, ignore */
|
||||
|
||||
frame = ECreateWindow(VRoot.win, -10, -10, 1, 1, 1);
|
||||
ewin->o.stacked = -1; /* Not placed on desk yet */
|
||||
EobjInit(&ewin->o, EOBJ_TYPE_EWIN, frame, -10, -10, -1, -1, NULL);
|
||||
EoSetDesk(ewin, DesksGetCurrent());
|
||||
EoSetLayer(ewin, 4);
|
||||
|
@ -798,9 +799,6 @@ AddToFamily(EWin * ewin, Window win)
|
|||
}
|
||||
}
|
||||
|
||||
/* Force reparent if not on desk 0 */
|
||||
EoSetDesk(ewin, 0);
|
||||
|
||||
/* if the window asked to be iconified at the start */
|
||||
if (ewin->client.start_iconified)
|
||||
{
|
||||
|
@ -833,10 +831,8 @@ AddToFamily(EWin * ewin, Window win)
|
|||
ewin->client.already_placed = 1;
|
||||
x = Mode.x + 1;
|
||||
y = Mode.y + 1;
|
||||
MoveEwinToDesktop(ewin, desk);
|
||||
RaiseEwin(ewin);
|
||||
MoveEwinToDesktopAt(ewin, desk, x, y);
|
||||
MoveEwin(ewin, x, y);
|
||||
RaiseEwin(ewin);
|
||||
ShowEwin(ewin);
|
||||
GrabPointerSet(VRoot.win, ECSR_GRAB, 0);
|
||||
Mode.have_place_grab = 1;
|
||||
|
@ -848,7 +844,6 @@ AddToFamily(EWin * ewin, Window win)
|
|||
}
|
||||
else if ((doslide) && (!Mode.doingslide))
|
||||
{
|
||||
MoveEwin(ewin, VRoot.w, VRoot.h);
|
||||
k = rand() % 4;
|
||||
if (k == 0)
|
||||
{
|
||||
|
@ -870,9 +865,7 @@ AddToFamily(EWin * ewin, Window win)
|
|||
fx = VRoot.w;
|
||||
fy = (rand() % (VRoot.h)) - EoGetH(ewin);
|
||||
}
|
||||
MoveEwinToDesktop(ewin, desk);
|
||||
RaiseEwin(ewin);
|
||||
MoveEwin(ewin, fx, fy);
|
||||
MoveEwinToDesktopAt(ewin, desk, fx, fy);
|
||||
ShowEwin(ewin);
|
||||
SlideEwinTo(ewin, fx, fy, x, y, Conf.slidespeedmap);
|
||||
MoveEwinToDesktopAt(ewin, desk, x, y);
|
||||
|
@ -880,7 +873,6 @@ AddToFamily(EWin * ewin, Window win)
|
|||
else
|
||||
{
|
||||
MoveEwinToDesktopAt(ewin, desk, x, y);
|
||||
RaiseEwin(ewin);
|
||||
ShowEwin(ewin);
|
||||
}
|
||||
|
||||
|
@ -985,11 +977,6 @@ EwinConformToDesktop(EWin * ewin)
|
|||
MoveEwin(ewin, EoGetX(ewin), EoGetY(ewin));
|
||||
}
|
||||
|
||||
/* FIXME - This should not be necessary. It is when a new window is added as
|
||||
* the only one in the lowest layer (e.g. desktop type).
|
||||
* In stead EobjListStackAdd() should mark the object stack dirty. */
|
||||
StackDesktop(EoGetDesk(ewin));
|
||||
|
||||
EwinDetermineArea(ewin);
|
||||
HintsSetWindowDesktop(ewin);
|
||||
}
|
||||
|
|
17
src/menus.c
17
src/menus.c
|
@ -988,15 +988,10 @@ MenuDrawItem(Menu * m, MenuItem * mi, char shape)
|
|||
}
|
||||
|
||||
static void
|
||||
MenuShowMasker(Menu * m)
|
||||
MenuShowMasker(Menu * m __UNUSED__)
|
||||
{
|
||||
EWin *ewin;
|
||||
EObj *eo = Mode_menus.cover_win;
|
||||
|
||||
ewin = FindEwinByMenu(m);
|
||||
if (!ewin)
|
||||
return;
|
||||
|
||||
if (!eo)
|
||||
{
|
||||
eo = EobjWindowCreate(EOBJ_TYPE_EVENT, 0, 0, VRoot.w, VRoot.h, 0,
|
||||
|
@ -1010,13 +1005,11 @@ MenuShowMasker(Menu * m)
|
|||
ESelectInput(eo->win, ButtonPressMask | ButtonReleaseMask |
|
||||
EnterWindowMask | LeaveWindowMask);
|
||||
EventCallbackRegister(eo->win, 0, MenuMaskerHandleEvents, NULL);
|
||||
#if 1 /* FIXME - Too expensive */
|
||||
StackDesktop(EoGetDesk(ewin));
|
||||
#endif
|
||||
|
||||
Mode_menus.cover_win = eo;
|
||||
}
|
||||
|
||||
EobjMap(eo, 1);
|
||||
EobjMap(eo, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1769,10 +1762,6 @@ MenuItemEventMouseIn(MenuItem * mi, XEvent * ev)
|
|||
|
||||
m = mi->menu;
|
||||
|
||||
#if 0 /* FIXME - TBD */
|
||||
PagerHideAllHi();
|
||||
#endif
|
||||
|
||||
if ((win == mi->icon_win) && (ev->xcrossing.detail == NotifyAncestor))
|
||||
goto done;
|
||||
if ((win == mi->win) && (ev->xcrossing.detail == NotifyInferior))
|
||||
|
|
|
@ -145,7 +145,6 @@ ActionMoveEnd(EWin * ewin)
|
|||
EoChangeOpacity(ewin, ewin->ewmh.opacity);
|
||||
RaiseEwin(gwins[i]);
|
||||
}
|
||||
StackDesktop(EoGetDesk(ewin)); /* Restack to "un-float" */
|
||||
|
||||
ecore_x_sync();
|
||||
if (Conf.movres.mode_move > 0)
|
||||
|
|
|
@ -1046,10 +1046,10 @@ PagerHiwinCreate(void)
|
|||
return NULL;
|
||||
|
||||
win = ECreateWindow(VRoot.win, 0, 0, 3, 3, 1);
|
||||
EobjInit(&phi->o, EOBJ_TYPE_MISC, win, 0, 0, 3, 3, "HiWin");
|
||||
EoSetShadow(phi, 0);
|
||||
EoSetFloating(phi, 1);
|
||||
EoSetLayer(phi, 19);
|
||||
EobjInit(&phi->o, EOBJ_TYPE_MISC, win, 0, 0, 3, 3, "HiWin");
|
||||
EventCallbackRegister(EoGetWin(phi), 0, PagerHiwinEvent, phi);
|
||||
ESelectInput(EoGetWin(phi),
|
||||
ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
|
||||
|
@ -1273,7 +1273,7 @@ PagerHiwinZoom(Pager * p, EWin * ewin, int x, int y, int w, int h)
|
|||
Mode_pagers.zoom = 2;
|
||||
|
||||
EoMoveResize(phi, x, y, w, h);
|
||||
EoMap(phi, 1);
|
||||
EoMap(phi, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -188,9 +188,9 @@ ProgressbarShow(Progressbar * p)
|
|||
ImageclassApply(p->ipc, p->p_win->win, w, p->h, 1, 0, STATE_NORMAL, 0,
|
||||
ST_UNKNWN);
|
||||
|
||||
EobjMap(p->win, 1);
|
||||
EobjMap(p->n_win, 1);
|
||||
EobjMap(p->p_win, 1);
|
||||
EobjMap(p->win, 0);
|
||||
EobjMap(p->n_win, 0);
|
||||
EobjMap(p->p_win, 0);
|
||||
ecore_x_sync();
|
||||
TextclassApply(p->ic, p->win->win, p->w - (p->h * 5), p->h, 0, 0,
|
||||
STATE_NORMAL, 0, p->tc, p->win->name);
|
||||
|
|
|
@ -107,8 +107,8 @@ EobjListAdd(EobjList * ewl, EObj * eo, int ontop)
|
|||
ewl->nwins++;
|
||||
EobjListLower(ewl, eo);
|
||||
}
|
||||
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
if (eo->stacked == 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -180,14 +180,14 @@ EobjListLower(EobjList * ewl, EObj * eo)
|
|||
{
|
||||
memmove(ewl->list + i, ewl->list + i + 1, n * sizeof(EObj *));
|
||||
ewl->list[j] = eo;
|
||||
if (ewl->layered)
|
||||
if (ewl->layered && eo->stacked > 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
}
|
||||
else if (n < 0)
|
||||
{
|
||||
memmove(ewl->list + j + 1, ewl->list + j, -n * sizeof(EObj *));
|
||||
ewl->list[j] = eo;
|
||||
if (ewl->layered)
|
||||
if (ewl->layered && eo->stacked > 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
}
|
||||
|
||||
|
@ -221,14 +221,14 @@ EobjListRaise(EobjList * ewl, EObj * eo)
|
|||
{
|
||||
memmove(ewl->list + i, ewl->list + i + 1, n * sizeof(EObj *));
|
||||
ewl->list[j] = eo;
|
||||
if (ewl->layered)
|
||||
if (ewl->layered && eo->stacked > 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
}
|
||||
else if (n < 0)
|
||||
{
|
||||
memmove(ewl->list + j + 1, ewl->list + j, -n * sizeof(EObj *));
|
||||
ewl->list[j] = eo;
|
||||
if (ewl->layered)
|
||||
if (ewl->layered && eo->stacked > 0)
|
||||
DeskSetDirtyStack(eo->desk);
|
||||
}
|
||||
|
||||
|
|
|
@ -557,7 +557,7 @@ TooltipShow(ToolTip * tt, const char *text, ActionClass * ac, int x, int y)
|
|||
|
||||
for (i = 0; i < 5; i++)
|
||||
if (tt->win[i])
|
||||
EobjMap(tt->win[i], 1);
|
||||
EobjMap(tt->win[i], 0);
|
||||
|
||||
ecore_x_sync();
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ WarpFocusShow(EWin * ewin)
|
|||
}
|
||||
|
||||
PropagateShapes(warpFocusWindow->win);
|
||||
EobjMap(warpFocusWindow, 1);
|
||||
EobjMap(warpFocusWindow, 0);
|
||||
|
||||
/*
|
||||
* Grab the keyboard. The grab is automatically released when
|
||||
|
|
Loading…
Reference in New Issue