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