Enlightenment CVS committal
Author : kwo
Project : e16
Module : e
Dir : e16/e/src
Modified Files:
Tag: branch-exp
E.h Makefile.am borders.c ewins.c
Added Files:
Tag: branch-exp
ewin-ops.c
Log Message:
Separation of basic window management and window operations.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.314.2.18
retrieving revision 1.314.2.19
diff -u -3 -r1.314.2.18 -r1.314.2.19
--- E.h 15 Aug 2004 15:49:03 -0000 1.314.2.18
+++ E.h 15 Aug 2004 16:25:32 -0000 1.314.2.19
@@ -1434,71 +1434,7 @@
int apply);
void BorderWinpartChange(EWin * ewin, int i, int force);
int BorderWinpartIndex(EWin * ewin, Window win);
-
-/* ewins.c */
-#define EWIN_CHANGE_NAME (1<<0)
-#define EWIN_CHANGE_ICON_NAME (1<<1)
-#define EWIN_CHANGE_ICON_PMAP (1<<2)
-#define EWIN_CHANGE_DESKTOP (1<<3)
-#define EWIN_CHANGE_LAYER (1<<4)
-
-/* borders-ewins.c */
-void EwinGetPosition(const EWin * ewin, int *px, int *py);
-void EwinRefresh(EWin * ewin);
-void EwinUpdateAfterMoveResize(EWin * ewin, int resize);
-void EwinFixPosition(EWin * ewin);
-void ResizeEwin(EWin * ewin, int w, int h);
-void MoveEwin(EWin * ewin, int x, int y);
-void MoveResizeEwin(EWin * ewin, int x, int y, int w, int h);
-void FloatEwin(EWin * ewin);
-void FloatEwinAt(EWin * ewin, int x, int y);
-void RaiseEwin(EWin * ewin);
-void LowerEwin(EWin * ewin);
-void ShowEwin(EWin * ewin);
-void HideEwin(EWin * ewin);
-void EwinIconify(EWin * ewin);
-void EwinDeIconify(EWin * ewin);
-void EwinStick(EWin * ewin);
-void EwinUnStick(EWin * ewin);
-void EwinInstantShade(EWin * ewin, int force);
-void EwinInstantUnShade(EWin * ewin);
-void EwinShade(EWin * ewin);
-void EwinUnShade(EWin * ewin);
-void EwinSetFullscreen(EWin * ewin, int on);
-void DetermineEwinFloat(EWin * ewin, int dx, int dy);
-EWin *GetEwinPointerInClient(void);
-EWin *GetEwinByCurrentPointer(void);
-EWin *GetFocusEwin(void);
-EWin *GetContextEwin(void);
-void SlideEwinTo(EWin * ewin, int fx, int fy, int tx, int ty,
- int speed);
-void SlideEwinsTo(EWin ** ewin, int *fx, int *fy, int *tx,
- int *ty, int num_wins, int speed);
-void EwinDetermineArea(EWin * ewin);
-void AddToFamily(Window win);
-EWin *AddInternalToFamily(Window win, const char *bname, int type,
- void *ptr,
- void (*init) (EWin * ewin, void *ptr));
void HonorIclass(char *s, int id);
-void EwinWithdraw(EWin * ewin);
-void EwinReparent(EWin * ewin, Window parent);
-void SyncBorderToEwin(EWin * ewin);
-void EwinEventDestroy(EWin * ewin);
-void EwinEventMap(EWin * ewin);
-void EwinEventVisibility(EWin * ewin, int on);
-void EwinEventUnmap(EWin * ewin);
-void MoveEwinToArea(EWin * ewin, int ax, int ay);
-int EwinGetDesk(const EWin * ewin);
-const char *EwinGetTitle(const EWin * ewin);
-const char *EwinGetIconName(const EWin * ewin);
-int EwinIsOnScreen(EWin * ewin);
-
-void EwinChange(EWin * ewin, unsigned int flag);
-void EwinChangesStart(EWin * ewin);
-void EwinChangesProcess(EWin * ewin);
-
-void EwinsEventsConfigure(int mode);
-void EwinsSetFree(void);
/* buttons.c */
Button *ButtonCreate(const char *name, int id, ImageClass * iclass,
@@ -1804,6 +1740,71 @@
void HandleChildShapeChange(XEvent * ev);
void HandleScreenChange(XEvent * ev);
+/* ewins.c */
+#define EWIN_CHANGE_NAME (1<<0)
+#define EWIN_CHANGE_ICON_NAME (1<<1)
+#define EWIN_CHANGE_ICON_PMAP (1<<2)
+#define EWIN_CHANGE_DESKTOP (1<<3)
+#define EWIN_CHANGE_LAYER (1<<4)
+
+void EwinGetPosition(const EWin * ewin, int *px, int *py);
+void EwinRefresh(EWin * ewin);
+void EwinUpdateAfterMoveResize(EWin * ewin, int resize);
+void FloatEwin(EWin * ewin);
+void FloatEwinAt(EWin * ewin, int x, int y);
+void RaiseEwin(EWin * ewin);
+void LowerEwin(EWin * ewin);
+void ShowEwin(EWin * ewin);
+void HideEwin(EWin * ewin);
+void DetermineEwinFloat(EWin * ewin, int dx, int dy);
+EWin *GetEwinPointerInClient(void);
+EWin *GetEwinByCurrentPointer(void);
+EWin *GetFocusEwin(void);
+EWin *GetContextEwin(void);
+void EwinDetermineArea(EWin * ewin);
+void AddToFamily(Window win);
+EWin *AddInternalToFamily(Window win, const char *bname, int type,
+ void *ptr,
+ void (*init) (EWin * ewin, void *ptr));
+void EwinWithdraw(EWin * ewin);
+void EwinReparent(EWin * ewin, Window parent);
+void SyncBorderToEwin(EWin * ewin);
+void EwinEventDestroy(EWin * ewin);
+void EwinEventMap(EWin * ewin);
+void EwinEventVisibility(EWin * ewin, int on);
+void EwinEventUnmap(EWin * ewin);
+int EwinGetDesk(const EWin * ewin);
+const char *EwinGetTitle(const EWin * ewin);
+const char *EwinGetIconName(const EWin * ewin);
+int EwinIsOnScreen(EWin * ewin);
+
+void EwinChange(EWin * ewin, unsigned int flag);
+void EwinChangesStart(EWin * ewin);
+void EwinChangesProcess(EWin * ewin);
+
+void EwinsEventsConfigure(int mode);
+void EwinsSetFree(void);
+
+/* ewin-ops.c */
+void SlideEwinTo(EWin * ewin, int fx, int fy, int tx, int ty,
+ int speed);
+void SlideEwinsTo(EWin ** ewin, int *fx, int *fy, int *tx,
+ int *ty, int num_wins, int speed);
+void EwinFixPosition(EWin * ewin);
+void MoveEwin(EWin * ewin, int x, int y);
+void ResizeEwin(EWin * ewin, int w, int h);
+void MoveResizeEwin(EWin * ewin, int x, int y, int w, int h);
+void EwinIconify(EWin * ewin);
+void EwinDeIconify(EWin * ewin);
+void EwinStick(EWin * ewin);
+void EwinUnStick(EWin * ewin);
+void EwinInstantShade(EWin * ewin, int force);
+void EwinInstantUnShade(EWin * ewin);
+void EwinShade(EWin * ewin);
+void EwinUnShade(EWin * ewin);
+void EwinSetFullscreen(EWin * ewin, int on);
+void MoveEwinToArea(EWin * ewin, int ax, int ay);
+
#if ENABLE_EWMH
/* ewmh.c */
void EWMH_Init(Window win_wm_check);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Makefile.am,v
retrieving revision 1.43.2.7
retrieving revision 1.43.2.8
diff -u -3 -r1.43.2.7 -r1.43.2.8
--- Makefile.am 15 Aug 2004 15:00:36 -0000 1.43.2.7
+++ Makefile.am 15 Aug 2004 16:25:32 -0000 1.43.2.8
@@ -42,6 +42,7 @@
events.c \
evhandlers.c \
ewins.c \
+ ewin-ops.c \
file.c \
finders.c \
focus.c \
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v
retrieving revision 1.221.2.7
retrieving revision 1.221.2.8
diff -u -3 -r1.221.2.7 -r1.221.2.8
--- borders.c 15 Aug 2004 15:49:03 -0000 1.221.2.7
+++ borders.c 15 Aug 2004 16:25:32 -0000 1.221.2.8
@@ -1104,14 +1104,6 @@
{
EWinBit *wbit = (EWinBit *) prm;
-#if 0
- EWin *ewin;
- int part;
-
- ewin = bit->ewin;
- part = bit - ewin->bits;
-#endif
-
switch (ev->type)
{
#if 0
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/ewins.c,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -3 -r1.1.2.2 -r1.1.2.3
--- ewins.c 15 Aug 2004 15:49:04 -0000 1.1.2.2
+++ ewins.c 15 Aug 2004 16:25:32 -0000 1.1.2.3
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2000-2004 Carsten Haitzler, Geoff Harrison and various contributors
+ * Copyright (C) 2004 Kim Woelders
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
@@ -333,147 +334,6 @@
}
void
-SlideEwinTo(EWin * ewin, int fx, int fy, int tx, int ty, int speed)
-{
- int k, spd, x, y, min, tmpx, tmpy, tmpw, tmph;
- struct timeval timev1, timev2;
- int dsec, dusec;
- double tm;
- char firstlast;
-
- EDBUG(3, "SlideEwinTo");
- spd = 16;
- min = 2;
- firstlast = 0;
- Mode.doingslide = 1;
- SoundPlay("SOUND_WINDOW_SLIDE");
-
- if (Conf.slidemode > 0)
- GrabX();
-
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- x = ((fx * (1024 - k)) + (tx * k)) >> 10;
- y = ((fy * (1024 - k)) + (ty * k)) >> 10;
- tmpx = x;
- tmpy = y;
- tmpw = ewin->client.w;
- tmph = ewin->client.h;
- if (Conf.slidemode == 0)
- EMoveWindow(disp, ewin->win, tmpx, tmpy);
- else
- DrawEwinShape(ewin, Conf.slidemode, tmpx, tmpy, tmpw, tmph,
- firstlast);
- if (firstlast == 0)
- firstlast = 1;
- XSync(disp, False);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- DrawEwinShape(ewin, Conf.slidemode, x, y, ewin->client.w, ewin->client.h, 2);
- MoveEwin(ewin, tx, ty);
- Mode.doingslide = 0;
- if (Conf.slidemode > 0)
- UngrabX();
- SoundPlay("SOUND_WINDOW_SLIDE_END");
- EDBUG_RETURN_;
-}
-
-void
-SlideEwinsTo(EWin ** ewin, int *fx, int *fy, int *tx, int *ty, int num_wins,
- int speed)
-{
- int k, spd, *x = NULL, *y =
- NULL, min, tmpx, tmpy, tmpw, tmph, i;
- struct timeval timev1, timev2;
- int dsec, dusec;
- double tm;
- char firstlast;
-
- EDBUG(3, "SlideEwinsTo");
-
- if (num_wins)
- {
- x = Emalloc(sizeof(int) * num_wins);
- y = Emalloc(sizeof(int) * num_wins);
- }
- spd = 16;
- min = 2;
- firstlast = 0;
- Mode.doingslide = 1;
- SoundPlay("SOUND_WINDOW_SLIDE");
- if (Conf.slidemode > 0)
- GrabX();
- for (k = 0; k <= 1024; k += spd)
- {
- for (i = 0; i < num_wins; i++)
- {
- if (ewin[i])
- {
- gettimeofday(&timev1, NULL);
- x[i] = ((fx[i] * (1024 - k)) + (tx[i] * k)) >> 10;
- y[i] = ((fy[i] * (1024 - k)) + (ty[i] * k)) >> 10;
- tmpx = x[i];
- tmpy = y[i];
- tmpw = ewin[i]->client.w;
- tmph = ewin[i]->client.h;
- if (ewin[i]->menu)
- EMoveWindow(disp, ewin[i]->win, tmpx, tmpy);
- else
- DrawEwinShape(ewin[i], 0, tmpx, tmpy, tmpw, tmph,
- firstlast);
- if (firstlast == 0)
- firstlast = 1;
- XSync(disp, False);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- }
- }
-
- for (i = 0; i < num_wins; i++)
- {
- if (ewin[i])
- {
- DrawEwinShape(ewin[i], 0, x[i], y[i], ewin[i]->client.w,
- ewin[i]->client.h, 2);
- MoveEwin(ewin[i], tx[i], ty[i]);
- }
- }
-
- Mode.doingslide = 0;
- if (Conf.slidemode > 0)
- UngrabX();
- SoundPlay("SOUND_WINDOW_SLIDE_END");
- if (x)
- Efree(x);
- if (y)
- Efree(y);
- EDBUG_RETURN_;
-}
-
-void
EwinDetermineArea(EWin * ewin)
{
int ax, ay;
@@ -1211,174 +1071,6 @@
ForceUpdatePagersForDesktop(ewin->desktop);
}
-void
-EwinFixPosition(EWin * ewin)
-{
- int x, y;
-
- if (!EwinIsMapped(ewin))
- return;
-
- x = ewin->x;
- y = ewin->y;
- if ((ewin->x + ewin->border->border.left + 1) > VRoot.w)
- x = VRoot.w - ewin->border->border.left - 1;
- else if ((ewin->x + ewin->w - ewin->border->border.right - 1) < 0)
- x = 0 - ewin->w + ewin->border->border.right + 1;
- if ((ewin->y + ewin->border->border.top + 1) > VRoot.h)
- y = VRoot.h - ewin->border->border.top - 1;
- else if ((ewin->y + ewin->h - ewin->border->border.bottom - 1) < 0)
- y = 0 - ewin->h + ewin->border->border.bottom + 1;
-
- if (x != ewin->x || y != ewin->y)
- MoveEwin(ewin, x, y);
-}
-
-#define MR_FLAGS_MOVE 1
-#define MR_FLAGS_RESIZE 2
-
-static void
-doMoveResizeEwin(EWin * ewin, int x, int y, int w, int h, int flags)
-{
- static int call_depth = 0;
- int dx = 0, dy = 0, sw, sh, x0, y0;
- char move = 0, resize = 0;
- EWin **lst;
- int i, num;
-
- EDBUG(3, "doMoveResizeEwin");
- if (call_depth > 256)
- EDBUG_RETURN_;
- call_depth++;
-
- if (EventDebug(EDBUG_TYPE_MOVERESIZE))
- Eprintf("doMoveResizeEwin(%d) %#lx %d+%d %d*%d %d %s\n", call_depth,
- ewin->client.win, x, y, w, h, flags, EwinGetTitle(ewin));
-
- if (Mode.mode == MODE_NONE && Mode.move.check)
- {
- /* Don't throw windows offscreen */
- sw = VRoot.w;
- sh = VRoot.h;
- if (ewin->sticky)
- {
- x0 = y0 = 0;
- }
- else
- {
- int ax, ay;
-
- ax = desks.desk[ewin->desktop].current_area_x;
- ay = desks.desk[ewin->desktop].current_area_y;
- x0 = -ax * sw;
- y0 = -ay * sh;
- sw *= Conf.areas.nx;
- sh *= Conf.areas.ny;
- }
- dx = ewin->w / 4;
- if (dx > 8)
- dx = 8;
- dy = ewin->h / 4;
- if (dy > 8)
- dy = 8;
-
- if (x < x0 - ewin->w + dx)
- x = x0 - ewin->w + dx;
- else if (x > x0 + sw - dx)
- x = x0 + sw - dx;
- if (y < y0 - ewin->h + dy)
- y = y0 - ewin->h + dy;
- else if (y > y0 + sh - dy)
- y = y0 + sh - dy;
- }
-
- if (flags & MR_FLAGS_MOVE)
- {
- dx = x - ewin->x;
- dy = y - ewin->y;
- if ((dx != 0) || (dy != 0))
- move = 1;
- ewin->x = x;
- ewin->y = y;
- ewin->client.x = x + ewin->border->border.left;
- ewin->client.y = y + ewin->border->border.top;
- }
-
- if (flags & MR_FLAGS_RESIZE)
- {
- if ((w != ewin->client.w) || (h != ewin->client.h))
- resize = 2;
- ewin->client.w = w;
- ewin->client.h = h;
- ICCCM_MatchSize(ewin);
-
- if (!ewin->shaded)
- {
- ewin->w = ewin->client.w + ewin->border->border.left +
- ewin->border->border.right;
- ewin->h = ewin->client.h + ewin->border->border.top +
- ewin->border->border.bottom;
- }
- }
-
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
-
- if ((Mode.mode != MODE_MOVE_PENDING && Mode.mode != MODE_MOVE)
- || (Mode.have_place_grab))
- ICCCM_Configure(ewin);
-
- EwinBorderCalcSizes(ewin);
-
- if (move)
- {
-
- lst = EwinListTransients(ewin, &num, 0);
- for (i = 0; i < num; i++)
- {
-#if 0 /* Why? */
- if (!((Mode.flipp) && (lst[i]->floating))
- && (lst[i]->client.mwm_decor_border
- || lst[i]->client.mwm_decor_resizeh
- || lst[i]->client.mwm_decor_title
- || lst[i]->client.mwm_decor_menu
- || lst[i]->client.mwm_decor_minimize
- || lst[i]->client.mwm_decor_maximize))
-#endif
- MoveEwin(lst[i], lst[i]->x + dx, lst[i]->y + dy);
- }
- if (lst)
- Efree(lst);
- }
-
- if ((Mode.mode == MODE_NONE) /* && (move || resize) */ )
- {
- ewin->shape_x = x;
- ewin->shape_y = y;
- EwinUpdateAfterMoveResize(ewin, resize);
- }
-
- call_depth--;
- EDBUG_RETURN_;
-}
-
-void
-MoveEwin(EWin * ewin, int x, int y)
-{
- doMoveResizeEwin(ewin, x, y, 0, 0, MR_FLAGS_MOVE);
-}
-
-void
-ResizeEwin(EWin * ewin, int w, int h)
-{
- doMoveResizeEwin(ewin, 0, 0, w, h, MR_FLAGS_RESIZE);
-}
-
-void
-MoveResizeEwin(EWin * ewin, int x, int y, int w, int h)
-{
- doMoveResizeEwin(ewin, x, y, w, h, MR_FLAGS_MOVE | MR_FLAGS_RESIZE);
-}
-
#if 0 /* Unused */
void
FloatEwin(EWin * ewin)
@@ -1631,954 +1323,6 @@
EDBUG_RETURN_;
}
-void
-EwinIconify(EWin * ewin)
-{
- static int call_depth = 0;
- EWin **lst, *e;
- int i, num;
- char was_shaded;
-
- EDBUG(6, "IconboxIconifyEwin");
-
- if (!ewin)
- EDBUG_RETURN_;
-
- if (GetZoomEWin() == ewin)
- Zoom(NULL);
-
- if (ewin->ibox)
- EDBUG_RETURN_;
-
- if (ewin->state == EWIN_STATE_ICONIC)
- EDBUG_RETURN_;
-
- if (call_depth > 256)
- EDBUG_RETURN_;
- call_depth++;
-
- was_shaded = ewin->shaded;
-
- IconboxesEwinIconify(ewin);
-
- HideEwin(ewin);
-
- /* Save position at which the window was iconified in req_x/y */
- ewin->req_x = ewin->x;
- ewin->req_y = ewin->y;
-
- if (was_shaded != ewin->shaded)
- EwinInstantShade(ewin, 0);
-
- ewin->iconified = 3;
- ICCCM_Iconify(ewin);
-
- lst = EwinListTransients(ewin, &num, 0);
- for (i = 0; i < num; i++)
- {
- e = lst[i];
- if (e->iconified)
- continue;
-
- HideEwin(e);
- e->iconified = 4;
- e->req_x = e->x;
- e->req_y = e->y;
- }
- if (lst)
- Efree(lst);
-#if ENABLE_GNOME
- if (lst)
- GNOME_SetClientList();
-#endif
-
- HintsSetWindowState(ewin);
-
- call_depth--;
- EDBUG_RETURN_;
-}
-
-void
-EwinDeIconify(EWin * ewin)
-{
- static int call_depth = 0;
- EWin **lst, *e;
- int i, num;
- int x, y, dx, dy;
-
- EDBUG(6, "EwinDeIconify");
-
- if (call_depth > 256)
- EDBUG_RETURN_;
- call_depth++;
-
- if (ewin->state != EWIN_STATE_ICONIC)
- EDBUG_RETURN_;
-
- RemoveMiniIcon(ewin);
-
- x = ewin->req_x;
- y = ewin->req_y;
-
- /* If we iconified an offscreen window, get it back on screen */
- if (x + ewin->w <= 4 || x > VRoot.w - 4 ||
- y + ewin->h <= 4 || y > VRoot.h - 4)
- {
- dx = ewin->w / 2;
- dy = ewin->h / 2;
- x = (ewin->x + dx) % VRoot.w;
- if (x < 0)
- x += VRoot.w;
- x -= dx;
- y = (ewin->y + dy) % VRoot.h;
- if (y < 0)
- y += VRoot.h;
- y -= dy;
- }
-
- dx = x - ewin->req_x;
- dy = y - ewin->req_y;
-
- if (ewin->sticky)
- MoveEwin(ewin, x, y);
- else
- MoveEwinToDesktopAt(ewin, desks.current, x, y);
-
- ewin->iconified = 0;
-
- IconboxesEwinDeIconify(ewin);
-
- RaiseEwin(ewin);
- ShowEwin(ewin);
- ICCCM_DeIconify(ewin);
-
- lst = EwinListTransients(ewin, &num, 0);
- for (i = 0; i < num; i++)
- {
- e = lst[i];
- if (e->iconified != 4)
- continue;
-
- if (e->sticky)
- MoveEwin(e, e->req_x + dx, e->req_y + dy);
- else
- MoveEwinToDesktopAt(e, desks.current, e->req_x + dx, e->req_y + dy);
-
- RaiseEwin(e);
- ShowEwin(e);
- e->iconified = 0;
- }
- if (lst)
- Efree(lst);
-#if ENABLE_GNOME
- if (lst)
- GNOME_SetClientList();
-#endif
-
- HintsSetWindowState(ewin);
-
- call_depth--;
- EDBUG_RETURN_;
-}
-
-void
-EwinUnStick(EWin * ewin)
-{
-
- EDBUG(4, "EwinUnStick");
- if (!ewin)
- EDBUG_RETURN_;
-
- ewin->sticky = 0;
- MoveEwinToDesktopAt(ewin, desks.current, ewin->x, ewin->y);
- EwinBorderUpdateState(ewin);
- HintsSetWindowState(ewin);
-
- EDBUG_RETURN_;
-}
-
-void
-EwinStick(EWin * ewin)
-{
- int x, y, dx, dy;
-
- EDBUG(4, "EwinStick");
- if (!ewin)
- EDBUG_RETURN_;
-
- /* Avoid "losing" windows made sticky while not in the current viewport */
- dx = ewin->w / 2;
- dy = ewin->h / 2;
- x = (ewin->x + dx) % VRoot.w;
- if (x < 0)
- x += VRoot.w;
- x -= dx;
- y = (ewin->y + dy) % VRoot.h;
- if (y < 0)
- y += VRoot.h;
- y -= dy;
-
- MoveEwinToDesktopAt(ewin, desks.current, x, y);
- ewin->sticky = 1;
- EwinBorderUpdateState(ewin);
- HintsSetWindowState(ewin);
-
- EDBUG_RETURN_;
-}
-
-void
-EwinInstantShade(EWin * ewin, int force)
-{
- XSetWindowAttributes att;
- int b, d;
- char pq;
-
- EDBUG(4, "EwinInstantShade");
-
- if ((ewin->border->border.left == 0) && (ewin->border->border.right == 0)
- && (ewin->border->border.top == 0) && (ewin->border->border.bottom == 0))
- EDBUG_RETURN_;
- if (GetZoomEWin() == ewin)
- EDBUG_RETURN_;
- if (ewin->shaded && !force)
- EDBUG_RETURN_;
-
- pq = Mode.queue_up;
- Mode.queue_up = 0;
- switch (ewin->border->shadedir)
- {
- case 0:
- att.win_gravity = EastGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- ewin->shaded = 2;
- ewin->w = b;
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- case 1:
- att.win_gravity = WestGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- d = ewin->x + ewin->w - b;
- ewin->shaded = 2;
- ewin->w = b;
- ewin->x = d;
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- case 2:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- b = d;
- ewin->shaded = 2;
- ewin->h = b;
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- case 3:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- b = d;
- d = ewin->y + ewin->h - b;
- ewin->shaded = 2;
- ewin->h = b;
- ewin->y = d;
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- default:
- break;
- }
- PropagateShapes(ewin->win);
- Mode.queue_up = pq;
- HintsSetWindowState(ewin);
- if (Mode.mode == MODE_NONE)
- {
- PagerEwinOutsideAreaUpdate(ewin);
- ForceUpdatePagersForDesktop(ewin->desktop);
- }
- EDBUG_RETURN_;
-}
-
-void
-EwinInstantUnShade(EWin * ewin)
-{
- XSetWindowAttributes att;
- int b, d;
- char pq;
-
- EDBUG(4, "EwinInstantUnShade");
- if (GetZoomEWin() == ewin)
- EDBUG_RETURN_;
- if (!ewin->shaded)
- EDBUG_RETURN_;
- pq = Mode.queue_up;
- Mode.queue_up = 0;
- switch (ewin->border->shadedir)
- {
- case 0:
- att.win_gravity = EastGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- b = ewin->client.w + ewin->border->border.left +
- ewin->border->border.right;
- ewin->shaded = 0;
- ewin->w = b;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- case 1:
- att.win_gravity = WestGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- b = ewin->client.w + ewin->border->border.left +
- ewin->border->border.right;
- d = ewin->x + ewin->w - (ewin->border->border.right + ewin->client.w +
- ewin->border->border.left);
- ewin->shaded = 0;
- ewin->w = b;
- ewin->x = d;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- case 2:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- b = ewin->client.h + ewin->border->border.top +
- ewin->border->border.bottom;
- ewin->shaded = 0;
- ewin->h = b;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- case 3:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- b = ewin->client.h + ewin->border->border.top +
- ewin->border->border.bottom;
- d = ewin->y + ewin->h - (ewin->border->border.bottom +
- ewin->client.h + ewin->border->border.top);
- ewin->shaded = 0;
- ewin->h = b;
- ewin->y = d;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- default:
- break;
- }
- PropagateShapes(ewin->win);
- Mode.queue_up = pq;
- HintsSetWindowState(ewin);
- if (Mode.mode == MODE_NONE)
- {
- PagerEwinOutsideAreaUpdate(ewin);
- ForceUpdatePagersForDesktop(ewin->desktop);
- }
- EDBUG_RETURN_;
-}
-
-void
-EwinShade(EWin * ewin)
-{
- XSetWindowAttributes att;
- int i, j, speed, a, b, c, d, ww, hh;
- int k, spd, min;
- struct timeval timev1, timev2;
- int dsec, dusec;
- double tm;
- char pq;
-
- EDBUG(4, "EwinShade");
-
- if ((ewin->border->border.left == 0) && (ewin->border->border.right == 0)
- && (ewin->border->border.top == 0) && (ewin->border->border.bottom == 0))
- EDBUG_RETURN_;
- if (GetZoomEWin() == ewin)
- EDBUG_RETURN_;
- if (ewin->shaded)
- EDBUG_RETURN_;
- if ((ewin->border) && (!strcmp(ewin->border->name, "BORDERLESS")))
- EDBUG_RETURN_;
-
- pq = Mode.queue_up;
- Mode.queue_up = 0;
-
- speed = Conf.shadespeed;
- spd = 32;
- min = 2;
-
- GrabX();
-
- switch (ewin->border->shadedir)
- {
- case 0:
- att.win_gravity = EastGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- a = ewin->w;
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- ewin->w = i;
- if (ewin->w < 1)
- ewin->w = 1;
- ww = ewin->w - ewin->border->border.left -
- ewin->border->border.right;
- if (ww < 1)
- ww = 1;
- hh = ewin->client.h;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top, ww, hh);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, -(ewin->client.w - ww),
- 0, ewin->client.win, ShapeBounding,
- ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->shaded = 2;
- ewin->w = b;
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- case 1:
- att.win_gravity = WestGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- a = ewin->w;
- c = ewin->x;
- d = ewin->x + ewin->w - b;
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- j = ((c * (1024 - k)) + (d * k)) >> 10;
- ewin->w = i;
- ewin->x = j;
- if (ewin->w < 1)
- ewin->w = 1;
- ww = ewin->w - ewin->border->border.left -
- ewin->border->border.right;
- if (ww < 1)
- ww = 1;
- hh = ewin->client.h;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top, ww, hh);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, 0, 0, ewin->client.win,
- ShapeBounding, ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->shaded = 2;
- ewin->w = b;
- ewin->x = d;
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- case 2:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- a = ewin->h;
- EwinBorderMinShadeSize(ewin, &b, &d);
- b = d;
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- ewin->h = i;
- if (ewin->h < 1)
- ewin->h = 1;
- hh = ewin->h - ewin->border->border.top -
- ewin->border->border.bottom;
- if (hh < 1)
- hh = 1;
- ww = ewin->client.w;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top, ww, hh);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, 0,
- -(ewin->client.h - hh),
- ewin->client.win, ShapeBounding,
- ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->shaded = 2;
- ewin->h = b;
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- case 3:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- EwinBorderMinShadeSize(ewin, &b, &d);
- a = ewin->h;
- b = d;
- c = ewin->y;
- d = ewin->y + ewin->h - b;
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- j = ((c * (1024 - k)) + (d * k)) >> 10;
- ewin->h = i;
- ewin->y = j;
- if (ewin->h < 1)
- ewin->h = 1;
- hh = ewin->h - ewin->border->border.top -
- ewin->border->border.bottom;
- if (hh < 1)
- hh = 1;
- ww = ewin->client.w;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top, ww, hh);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, 0, 0, ewin->client.win,
- ShapeBounding, ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->shaded = 2;
- ewin->h = b;
- ewin->y = d;
- EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w, ewin->h);
- EwinBorderCalcSizes(ewin);
- XSync(disp, False);
- break;
- default:
- break;
- }
-
- UngrabX();
-
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container, ShapeBounding, 0, 0,
- ewin->client.win, ShapeBounding, ShapeSet);
- PropagateShapes(ewin->win);
-
- Mode.queue_up = pq;
-
- HintsSetWindowState(ewin);
-
- if (Mode.mode == MODE_NONE)
- {
- PagerEwinOutsideAreaUpdate(ewin);
- ForceUpdatePagersForDesktop(ewin->desktop);
- }
-
- EDBUG_RETURN_;
-}
-
-void
-EwinUnShade(EWin * ewin)
-{
- XSetWindowAttributes att;
- int i, j, speed, a, b, c, d;
- int k, spd, min;
- struct timeval timev1, timev2;
- int dsec, dusec;
- double tm;
- char pq;
-
- EDBUG(4, "EwinUnShade");
- if (GetZoomEWin() == ewin)
- EDBUG_RETURN_;
- if (!ewin->shaded || ewin->iconified)
- EDBUG_RETURN_;
-
- pq = Mode.queue_up;
- Mode.queue_up = 0;
-
- speed = Conf.shadespeed;
- spd = 32;
- min = 2;
-
- GrabX();
-
- switch (ewin->border->shadedir)
- {
- case 0:
- att.win_gravity = EastGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- a = ewin->border->border.left;
- b = ewin->client.w + ewin->border->border.left +
- ewin->border->border.right;
- ewin->shaded = 0;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left, ewin->border->border.top,
- 1, ewin->client.h);
- EMoveResizeWindow(disp, ewin->client.win, -ewin->client.w, 0,
- ewin->client.w, ewin->client.h);
- EMapWindow(disp, ewin->client.win);
- EMapWindow(disp, ewin->win_container);
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- ewin->w = i;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top,
- ewin->w - ewin->border->border.left -
- ewin->border->border.right, ewin->client.h);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding,
- -(ewin->client.w -
- (ewin->w - ewin->border->border.left -
- ewin->border->border.right)), 0,
- ewin->client.win, ShapeBounding,
- ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->w = b;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- case 1:
- att.win_gravity = WestGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- a = ewin->border->border.right;
- b = ewin->client.w + ewin->border->border.left +
- ewin->border->border.right;
- c = ewin->x;
- d = ewin->x + ewin->w - (ewin->border->border.right + ewin->client.w +
- ewin->border->border.left);
- ewin->shaded = 0;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left, ewin->border->border.top,
- 1, ewin->client.h);
- EMoveResizeWindow(disp, ewin->client.win, 0, 0, ewin->client.w,
- ewin->client.h);
- EMapWindow(disp, ewin->client.win);
- EMapWindow(disp, ewin->win_container);
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- j = ((c * (1024 - k)) + (d * k)) >> 10;
- ewin->w = i;
- ewin->x = j;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top,
- ewin->w - ewin->border->border.left -
- ewin->border->border.right, ewin->client.h);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, 0, 0, ewin->client.win,
- ShapeBounding, ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->w = b;
- ewin->x = d;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- case 2:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- a = ewin->border->border.top;
- b = ewin->client.h + ewin->border->border.top +
- ewin->border->border.bottom;
- ewin->shaded = 0;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left, ewin->border->border.top,
- ewin->client.w, 1);
- EMoveResizeWindow(disp, ewin->client.win, 0, -ewin->client.h,
- ewin->client.w, ewin->client.h);
- EMapWindow(disp, ewin->client.win);
- EMapWindow(disp, ewin->win_container);
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- ewin->h = i;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top, ewin->client.w,
- ewin->h - ewin->border->border.top -
- ewin->border->border.bottom);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, 0,
- -(ewin->client.h -
- (ewin->h - ewin->border->border.top -
- ewin->border->border.bottom)),
- ewin->client.win, ShapeBounding,
- ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->h = b;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- case 3:
- att.win_gravity = SouthGravity;
- XChangeWindowAttributes(disp, ewin->client.win, CWWinGravity, &att);
- a = ewin->border->border.bottom;
- b = ewin->client.h + ewin->border->border.top +
- ewin->border->border.bottom;
- c = ewin->y;
- d = ewin->y + ewin->h - (ewin->border->border.bottom +
- ewin->client.h + ewin->border->border.top);
- ewin->shaded = 0;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left, ewin->border->border.top,
- ewin->client.w, 1);
- EMoveResizeWindow(disp, ewin->client.win, 0, 0, ewin->client.w,
- ewin->client.h);
- EMapWindow(disp, ewin->client.win);
- EMapWindow(disp, ewin->win_container);
- if ((Conf.animate_shading) || (ewin->menu))
- for (k = 0; k <= 1024; k += spd)
- {
- gettimeofday(&timev1, NULL);
- i = ((a * (1024 - k)) + (b * k)) >> 10;
- j = ((c * (1024 - k)) + (d * k)) >> 10;
- ewin->h = i;
- ewin->y = j;
- EMoveResizeWindow(disp, ewin->win_container,
- ewin->border->border.left,
- ewin->border->border.top, ewin->client.w,
- ewin->h - ewin->border->border.top -
- ewin->border->border.bottom);
- EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
- ewin->h);
- EwinBorderCalcSizes(ewin);
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container,
- ShapeBounding, 0, 0, ewin->client.win,
- ShapeBounding, ShapeSet);
- PropagateShapes(ewin->win);
- gettimeofday(&timev2, NULL);
- dsec = timev2.tv_sec - timev1.tv_sec;
- dusec = timev2.tv_usec - timev1.tv_usec;
- if (dusec < 0)
- {
- dsec--;
- dusec += 1000000;
- }
- tm = (double)dsec + (((double)dusec) / 1000000);
- spd = (int)((double)speed * tm);
- if (spd < min)
- spd = min;
- }
- ewin->h = b;
- ewin->y = d;
- MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
- XSync(disp, False);
- break;
- default:
- break;
- }
-
- UngrabX();
-
- if (ewin->client.shaped)
- EShapeCombineShape(disp, ewin->win_container, ShapeBounding, 0, 0,
- ewin->client.win, ShapeBounding, ShapeSet);
- PropagateShapes(ewin->win);
-
- Mode.queue_up = pq;
-
- HintsSetWindowState(ewin);
-
- if (Mode.mode == MODE_NONE)
- {
- PagerEwinOutsideAreaUpdate(ewin);
- ForceUpdatePagersForDesktop(ewin->desktop);
- }
-
- EDBUG_RETURN_;
-}
-
-void
-EwinSetFullscreen(EWin * ewin, int on)
-{
- int x, y, w, h;
- const Border *b;
-
- if (ewin->st.fullscreen == on)
- return;
-
- if (on)
- {
- ewin->lx = ewin->x;
- ewin->ly = ewin->y;
- ewin->lw = ewin->client.w;
- ewin->lh = ewin->client.h;
- ewin->ll = ewin->layer;
- ScreenGetAvailableArea(ewin->x, ewin->y, &x, &y, &w, &h);
-#if 0
- ewin->layer = 10;
-#endif
- ewin->fixedpos = 1;
- b = (Border *) FindItem("BORDERLESS", 0, LIST_FINDBY_NAME,
- LIST_TYPE_BORDER);
- }
- else
- {
- x = ewin->lx;
- y = ewin->ly;
- w = ewin->lw;
- h = ewin->lh;
- ewin->layer = ewin->ll;
- ewin->fixedpos = 0; /* Yeah - well */
- b = ewin->normal_border;
- }
- ewin->st.fullscreen = on;
- RaiseEwin(ewin);
- MoveResizeEwin(ewin, x, y, w, h);
- HintsSetWindowState(ewin);
- EwinSetBorder(ewin, b, 1);
-}
-
-void
-MoveEwinToArea(EWin * ewin, int ax, int ay)
-{
- EDBUG(4, "MoveEwinToArea");
- AreaFix(&ax, &ay);
- MoveEwin(ewin, ewin->x + (VRoot.w * (ax - ewin->area_x)),
- ewin->y + (VRoot.h * (ay - ewin->area_y)));
- EDBUG_RETURN_;
-}
-
int
EwinGetDesk(const EWin * ewin)
{
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs