Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ecompmgr.c 


Log Message:
Trivial cleanups.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- ecompmgr.c  20 Apr 2005 22:49:15 -0000      1.21
+++ ecompmgr.c  22 Apr 2005 07:10:18 -0000      1.22
@@ -20,41 +20,13 @@
  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
-
-/* >>> Original copyright notice begin <<< */
-/*
- * $Id: xcompmgr.c,v 1.26 2004/08/14 21:39:51 keithp Exp $
- *
- * Copyright © 2003 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
 /*
- * Modified by Matthew Hawn. I don't know what to say here so follow what it 
- * says above. Not that I can really do anything about it
+ * This code was originally derived from xcompmgr.c,  see original copyright
+ * notice at end.
+ * It has been mostly rewritten since, only the shadow code is more or less
+ * intact.
  */
-/* >>> Original copyright notice end <<< */
 
-/*
- * This code is derived from xcompmgr.c, see original copyright notice above.
- * Initially adapted for E16 by Kim Woelders.
- */
 #include "E.h"
 #if USE_COMPOSITE
 #include "ecompmgr.h"
@@ -82,9 +54,6 @@
 
 #define ENABLE_SHADOWS 1
 #if HAS_NAME_WINDOW_PIXMAP
-#define ENABLE_FADING  0
-#else
-#define ENABLE_FADING  0
 #endif
 
 #define ENABLE_DEBUG   1
@@ -301,9 +270,9 @@
 {
    Picture             pict;
    int                 wo, ho;
-   ECmWinInfo         *c = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
-   if (!c || !Conf_compmgr.resize_fix_enable)
+   if (!cw || !Conf_compmgr.resize_fix_enable)
      {
        EMoveResizeWindow(eo->win, x, y, w, h);
        return;
@@ -318,8 +287,8 @@
      }
 
    /* Resizing - grab old contents */
-   pict = EPictureCreateBuffer(eo->win, wo, ho, c->a.depth, c->a.visual);
-   XRenderComposite(disp, PictOpSrc, c->picture, None, pict,
+   pict = EPictureCreateBuffer(eo->win, wo, ho, cw->a.depth, cw->a.visual);
+   XRenderComposite(disp, PictOpSrc, cw->picture, None, pict,
                    0, 0, 0, 0, 0, 0, wo, ho);
 
    /* Resize (+move) */
@@ -330,13 +299,13 @@
       w = wo;
    if (h < ho)
       h = ho;
-   XRenderComposite(disp, PictOpSrc, pict, None, c->picture,
+   XRenderComposite(disp, PictOpSrc, pict, None, cw->picture,
                    0, 0, 0, 0, 0, 0, w, h);
    XRenderFreePicture(disp, pict);
 
 #if 0                          /* FIXME - the screen update seems to be 
delayed? */
-   if (c->extents != None)
-      ECompMgrDamageMerge(eo->desk, c->extents, 0);
+   if (cw->extents != None)
+      ECompMgrDamageMerge(eo->desk, cw->extents, 0);
 #endif
 }
 
@@ -461,166 +430,6 @@
    ECompMgrDamageMerge(0, ERegionCreate(0, 0, VRoot.w, VRoot.h), 1);
 }
 
-#if ENABLE_FADING
-
-typedef struct _fade
-{
-   struct _fade       *next;
-   EObj               *eo;
-   double              cur;
-   double              step;
-   void                (*callback) (Display * dpy, EObj * eo, Bool gone);
-   Display            *dpy;
-   Bool                gone;
-} fade;
-
-static fade        *fades;
-double              fade_step = 0.05;
-int                 fade_delta = 10;
-int                 fade_time = 0;
-
-Bool                fadeWindows;
-
-static int
-get_time_in_milliseconds(void)
-{
-   struct timeval      tv;
-
-   gettimeofday(&tv, NULL);
-   return tv.tv_sec * 1000 + tv.tv_usec / 1000;
-}
-
-static fade        *
-find_fade(EObj * eo)
-{
-   fade               *f;
-
-   for (f = fades; f; f = f->next)
-     {
-       if (f->eo == eo)
-          return f;
-     }
-   return NULL;
-}
-
-static void
-dequeue_fade(Display * dpy, fade * f)
-{
-   fade              **prev;
-
-   for (prev = &fades; *prev; prev = &(*prev)->next)
-      if (*prev == f)
-       {
-          *prev = f->next;
-          if (f->callback)
-             (*f->callback) (dpy, f->eo, f->gone);
-          free(f);
-          break;
-       }
-}
-
-static void
-cleanup_fade(Display * dpy, EObj * eo)
-{
-   fade               *f = find_fade(eo);
-
-   if (f)
-      dequeue_fade(dpy, f);
-}
-
-static void
-enqueue_fade(Display * dpy __UNUSED__, fade * f)
-{
-   if (!fades)
-      fade_time = get_time_in_milliseconds() + fade_delta;
-   f->next = fades;
-   fades = f;
-}
-
-static void
-set_fade(Display * dpy, EObj * eo, Bool in,
-        void (*callback) (Display * dpy, EObj * eo, Bool gone), Bool gone)
-{
-   fade               *f;
-
-   f = find_fade(eo);
-   if (!f)
-     {
-       f = malloc(sizeof(fade));
-       f->next = 0;
-       f->eo = eo;
-       if (in)
-          f->cur = 0;
-       else
-          f->cur = 1;
-       enqueue_fade(dpy, f);
-     }
-   if (in)
-      f->step = fade_step;
-   else
-      f->step = -fade_step;
-   f->callback = callback;
-   f->gone = gone;
-
-   ECompMgrWinChangeOpacity(eo, f->cur * OPAQUE);
-}
-
-static int
-fade_timeout(void)
-{
-   int                 now;
-   int                 delta;
-
-   if (!fades)
-      return -1;
-   now = get_time_in_milliseconds();
-   delta = fade_time - now;
-   if (delta < 0)
-      delta = 0;
-/*    printf ("timeout %d\n", delta); */
-   return delta;
-}
-
-static void
-run_fades(Display * dpy)
-{
-   int                 now = get_time_in_milliseconds();
-   fade               *f, *next;
-   int                 steps;
-
-#if 0
-   printf("run fades\n");
-#endif
-   if (fade_time - now > 0)
-      return;
-   steps = 1 + (now - fade_time) / fade_delta;
-   for (next = fades; (f = next);)
-     {
-       next = f->next;
-       f->cur += f->step * steps;
-       if (f->cur >= 1)
-          f->cur = 1;
-       else if (f->cur < 0)
-          f->cur = 0;
-
-       if (f->step > 0)
-         {
-            if (f->cur >= 1)
-               dequeue_fade(dpy, f);
-         }
-       else
-         {
-            if (f->cur <= 0)
-               dequeue_fade(dpy, f);
-         }
-
-       ECompMgrWinChangeOpacity(f->eo, f->cur * OPAQUE);
-     }
-   fade_time = now + fade_delta;
-}
-
-#endif /* ENABLE_FADING */
-
 #if ENABLE_SHADOWS
 
 #define SHADOW_OPACITY 0.75
@@ -878,59 +687,59 @@
 static              XserverRegion
 win_extents(Display * dpy, EObj * eo)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
    XRectangle          r;
 
 #if HAS_NAME_WINDOW_PIXMAP
-   w->rcx = w->a.x;
-   w->rcy = w->a.y;
-   w->rcw = w->a.width + w->a.border_width * 2;
-   w->rch = w->a.height + w->a.border_width * 2;
+   cw->rcx = cw->a.x;
+   cw->rcy = cw->a.y;
+   cw->rcw = cw->a.width + cw->a.border_width * 2;
+   cw->rch = cw->a.height + cw->a.border_width * 2;
 #else
-   w->rcx = w->a.x + w->a.border_width;
-   w->rcy = w->a.y + w->a.border_width;
-   w->rcw = w->a.width;
-   w->rch = w->a.height;
+   cw->rcx = cw->a.x + cw->a.border_width;
+   cw->rcy = cw->a.y + cw->a.border_width;
+   cw->rcw = cw->a.width;
+   cw->rch = cw->a.height;
 #endif
 
-   r.x = w->rcx;
-   r.y = w->rcy;
-   r.width = w->rcw;
-   r.height = w->rch;
+   r.x = cw->rcx;
+   r.y = cw->rcy;
+   r.width = cw->rcw;
+   r.height = cw->rch;
 
 #if ENABLE_SHADOWS
    if (eo->shadow && Conf_compmgr.shadow != ECM_SHADOWS_OFF &&
-       (Conf_compmgr.shadow == ECM_SHADOWS_SHARP || w->mode != WINDOW_ARGB) &&
+       (Conf_compmgr.shadow == ECM_SHADOWS_SHARP || cw->mode != WINDOW_ARGB) &&
        (Conf_compmgr.shadow != ECM_SHADOWS_BLURRED || !EobjIsShaped(eo)))
      {
        XRectangle          sr;
 
        if (Conf_compmgr.shadow == ECM_SHADOWS_SHARP)
          {
-            w->shadow_dx = 2;
-            w->shadow_dy = 7;
-            w->shadow_width = w->rcw;
-            w->shadow_height = w->rcw;
+            cw->shadow_dx = 2;
+            cw->shadow_dy = 7;
+            cw->shadow_width = cw->rcw;
+            cw->shadow_height = cw->rcw;
          }
        else
          {
-            w->shadow_dx = -Conf_compmgr.shadow_radius * 5 / 4;
-            w->shadow_dy = -Conf_compmgr.shadow_radius * 5 / 4;
-            if (!w->shadow)
+            cw->shadow_dx = -Conf_compmgr.shadow_radius * 5 / 4;
+            cw->shadow_dy = -Conf_compmgr.shadow_radius * 5 / 4;
+            if (!cw->shadow)
               {
                  double              opacity = SHADOW_OPACITY;
 
-                 if (w->mode == WINDOW_TRANS)
-                    opacity *= ((double)w->opacity) / OPAQUE;
-                 w->shadow = shadow_picture(dpy, opacity, w->rcw, w->rch,
-                                            &w->shadow_width,
-                                            &w->shadow_height);
+                 if (cw->mode == WINDOW_TRANS)
+                    opacity *= ((double)cw->opacity) / OPAQUE;
+                 cw->shadow = shadow_picture(dpy, opacity, cw->rcw, cw->rch,
+                                             &cw->shadow_width,
+                                             &cw->shadow_height);
               }
          }
-       sr.x = w->rcx + w->shadow_dx;
-       sr.y = w->rcy + w->shadow_dy;
-       sr.width = w->shadow_width;
-       sr.height = w->shadow_height;
+       sr.x = cw->rcx + cw->shadow_dx;
+       sr.y = cw->rcy + cw->shadow_dy;
+       sr.width = cw->shadow_width;
+       sr.height = cw->shadow_height;
        if (sr.x < r.x)
          {
             r.width = (r.x + r.width) - sr.x;
@@ -957,15 +766,15 @@
 static              XserverRegion
 border_size(EObj * eo)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
    XserverRegion       border;
    int                 x, y;
 
    border = XFixesCreateRegionFromWindow(disp, eo->win, WindowRegionBounding);
 
    /* translate this */
-   x = eo->x + w->a.border_width;
-   y = eo->y + w->a.border_width;
+   x = eo->x + cw->a.border_width;
+   y = eo->y + cw->a.border_width;
    XFixesTranslateRegion(disp, border, x, y);
 
    D2printf("border_size %#lx: %d %d\n", eo->win, x, y);
@@ -977,9 +786,9 @@
 ECompMgrWinGetPixmap(const EObj * eo)
 {
 #if HAS_NAME_WINDOW_PIXMAP
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
-   return (w) ? w->pixmap : None;
+   return (cw) ? cw->pixmap : None;
 #else
    eo = NULL;
    return None;
@@ -989,218 +798,203 @@
 static void
 ECompMgrWinInvalidate(EObj * eo, int what)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
    Display            *dpy = disp;
 
-   if (!w)
+   if (!cw)
       return;
 
 #if HAS_NAME_WINDOW_PIXMAP
-   if ((what & INV_SIZE) && w->pixmap != None)
+   if ((what & INV_SIZE) && cw->pixmap != None)
      {
-       XFreePixmap(dpy, w->pixmap);
-       w->pixmap = None;
-       if (w->picture != None)
+       XFreePixmap(dpy, cw->pixmap);
+       cw->pixmap = None;
+       if (cw->picture != None)
          {
-            XRenderFreePicture(dpy, w->picture);
-            w->picture = None;
+            XRenderFreePicture(dpy, cw->picture);
+            cw->picture = None;
          }
      }
 #endif
 
-   if ((what & INV_GEOM) && w->borderSize != None)
+   if ((what & INV_GEOM) && cw->borderSize != None)
      {
-       XFixesDestroyRegion(dpy, w->borderSize);
-       w->borderSize = None;
+       XFixesDestroyRegion(dpy, cw->borderSize);
+       cw->borderSize = None;
      }
 
-   if ((what & INV_OPACITY) && w->alphaPict != None)
+   if ((what & INV_OPACITY) && cw->alphaPict != None)
      {
-       XRenderFreePicture(dpy, w->alphaPict);
-       w->alphaPict = None;
+       XRenderFreePicture(dpy, cw->alphaPict);
+       cw->alphaPict = None;
      }
 
 #if 0                          /* Recalculating clip every repaint for now. */
-   if ((what & INV_SIZE) && w->clip != None)
+   if ((what & INV_SIZE) && cw->clip != None)
      {
-       XFixesDestroyRegion(dpy, w->clip);
-       w->clip = None;
+       XFixesDestroyRegion(dpy, cw->clip);
+       cw->clip = None;
      }
 #endif
 
 #if ENABLE_SHADOWS
-   if ((what & (INV_SIZE | INV_OPACITY | INV_SHADOW)) && w->shadow != None)
+   if ((what & (INV_SIZE | INV_OPACITY | INV_SHADOW)) && cw->shadow != None)
      {
-       XRenderFreePicture(dpy, w->shadow);
-       w->shadow = None;
+       XRenderFreePicture(dpy, cw->shadow);
+       cw->shadow = None;
        what |= INV_GEOM;
      }
-   if ((what & (INV_SIZE | INV_OPACITY | INV_SHADOW)) && w->shadowPict != None)
+   if ((what & (INV_SIZE | INV_OPACITY | INV_SHADOW)) && cw->shadowPict != 
None)
      {
-       XRenderFreePicture(dpy, w->shadowPict);
-       w->shadowPict = None;
+       XRenderFreePicture(dpy, cw->shadowPict);
+       cw->shadowPict = None;
      }
 #endif
 
-   if ((what & (INV_GEOM | INV_SHADOW)) && w->extents != None)
+   if ((what & (INV_GEOM | INV_SHADOW)) && cw->extents != None)
      {
 #if 0                          /* FIXME - ??? */
-       ECompMgrDamageMerge(w->extents, 1);
+       ECompMgrDamageMerge(cw->extents, 1);
 #else
-       XFixesDestroyRegion(dpy, w->extents);
+       XFixesDestroyRegion(dpy, cw->extents);
 #endif
-       w->extents = None;
+       cw->extents = None;
      }
 }
 
 void
 ECompMgrWinChangeOpacity(EObj * eo, unsigned int opacity)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
    Display            *dpy = disp;
    int                 mode;
    XRenderPictFormat  *pictfmt;
 
-   if (!w || w->opacity == opacity)
+   if (!cw || cw->opacity == opacity)
       return;
 
-   w->opacity = opacity;
+   cw->opacity = opacity;
 
    D1printf("ECompMgrWinChangeOpacity: %#lx opacity=%#x\n", eo->win,
-           w->opacity);
+           cw->opacity);
 
    /* Invalidate stuff changed by opacity */
    ECompMgrWinInvalidate(eo, INV_OPACITY);
 
    if (eo->shown)              /* FIXME - ??? */
       /* Extents may be unchanged, however, we must repaint */
-      if (w->extents != None)
-        ECompMgrDamageMerge(eo->desk, w->extents, 0);
+      if (cw->extents != None)
+        ECompMgrDamageMerge(eo->desk, cw->extents, 0);
 
-   if (w->a.class == InputOnly)
+   if (cw->a.class == InputOnly)
       pictfmt = NULL;
    else
-      pictfmt = XRenderFindVisualFormat(dpy, w->a.visual);
+      pictfmt = XRenderFindVisualFormat(dpy, cw->a.visual);
 
    if (pictfmt && pictfmt->type == PictTypeDirect && pictfmt->direct.alphaMask)
       mode = WINDOW_ARGB;
-   else if (w->opacity != OPAQUE)
+   else if (cw->opacity != OPAQUE)
       mode = WINDOW_TRANS;
    else
       mode = WINDOW_SOLID;
-   w->mode = mode;
+   cw->mode = mode;
 }
 
 void
 ECompMgrWinMap(EObj * eo)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
-   if (!w)
+   if (!cw)
      {
        ECompMgrWinNew(eo);
-       w = eo->cmhook;
-       if (!w)
+       cw = eo->cmhook;
+       if (!cw)
           return;
      }
 
-   w->a.map_state = IsViewable;
-   w->visible = 1;
+   cw->a.map_state = IsViewable;
+   cw->visible = 1;
 
    D1printf("ECompMgrWinMap %#lx\n", eo->win);
 #if CAN_DO_USABLE
-   w->damage_bounds.x = w->damage_bounds.y = 0;
-   w->damage_bounds.width = w->damage_bounds.height = 0;
+   cw->damage_bounds.x = cw->damage_bounds.y = 0;
+   cw->damage_bounds.width = cw->damage_bounds.height = 0;
 #endif
-   ECompMgrDamageMerge(eo->desk, w->extents, 0);
+   ECompMgrDamageMerge(eo->desk, cw->extents, 0);
 }
 
 static void
 finish_unmap_win(EObj * eo)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
-   w->visible = 0;
+   cw->visible = 0;
 
 #if 0
-   w->damaged = 0;
+   cw->damaged = 0;
 
 #if CAN_DO_USABLE
-   w->usable = False;
+   cw->usable = False;
 #endif
 
    ECompMgrWinInvalidate(eo, INV_SIZE);
 
-   if (w->extents != None)
+   if (cw->extents != None)
      {
-       ECompMgrDamageMerge(eo->desk, w->extents, 1);
-       w->extents = None;
+       ECompMgrDamageMerge(eo->desk, cw->extents, 1);
+       cw->extents = None;
      }
 #else
-   if (w->extents != None)
-      ECompMgrDamageMerge(eo->desk, w->extents, 0);
+   if (cw->extents != None)
+      ECompMgrDamageMerge(eo->desk, cw->extents, 0);
 #endif
 }
 
-#if ENABLE_FADING
-static void
-unmap_callback(Display * dpy, ECmWinInfo * w, Bool gone __UNUSED__)
-{
-   finish_unmap_win(dpy, w);
-}
-#endif
-
 void
 ECompMgrWinUnmap(EObj * eo)
 {
    D1printf("ECompMgrWinUnmap %#lx\n", eo->win);
 
-#if ENABLE_FADING
-   ECmWinInfo         *w = eo->cmhook;
-
-   if (w->pixmap && do_fade && fadeWindows)
-      set_fade(dpy, w, False, unmap_callback, False);
-   else
-#endif
-      finish_unmap_win(eo);
+   finish_unmap_win(eo);
 }
 
 static void
 ECompMgrWinSetPicts(EObj * eo)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
-   if (w->a.class == InputOnly)
+   if (cw->a.class == InputOnly)
       return;
 
 #if HAS_NAME_WINDOW_PIXMAP
-   if (w->pixmap != None)
+   if (cw->pixmap != None)
      {
-       XFreePixmap(disp, w->pixmap);
-       w->pixmap = None;
-       if (w->picture != None)
+       XFreePixmap(disp, cw->pixmap);
+       cw->pixmap = None;
+       if (cw->picture != None)
          {
-            XRenderFreePicture(disp, w->picture);
-            w->picture = None;
+            XRenderFreePicture(disp, cw->picture);
+            cw->picture = None;
          }
      }
    if (Mode_compmgr.use_pixmap)
-      w->pixmap = XCompositeNameWindowPixmap(disp, eo->win);
+      cw->pixmap = XCompositeNameWindowPixmap(disp, eo->win);
 #endif
 
 #if 0
-   if (w->picture != None)
+   if (cw->picture != None)
      {
-       XRenderFreePicture(disp, w->picture);
-       w->picture = None;
+       XRenderFreePicture(disp, cw->picture);
+       cw->picture = None;
      }
 #endif
-   if (w->picture == None)
+   if (cw->picture == None)
      {
        if (eo->type == EOBJ_TYPE_DESK)
          {
-            w->picture = DeskBackgroundPictureGet((Desk *) eo);
-            w->damaged = 1;    /* FIXME - ??? */
+            cw->picture = DeskBackgroundPictureGet((Desk *) eo);
+            cw->damaged = 1;   /* FIXME - ??? */
          }
        else
          {
@@ -1209,53 +1003,53 @@
             Drawable            draw = eo->win;
 
 #if HAS_NAME_WINDOW_PIXMAP
-            if (w->pixmap)
-               draw = w->pixmap;
+            if (cw->pixmap)
+               draw = cw->pixmap;
 #endif
-            pictfmt = XRenderFindVisualFormat(disp, w->a.visual);
+            pictfmt = XRenderFindVisualFormat(disp, cw->a.visual);
             pa.subwindow_mode = IncludeInferiors;
-            w->picture = XRenderCreatePicture(disp, draw,
-                                              pictfmt, CPSubwindowMode, &pa);
+            cw->picture = XRenderCreatePicture(disp, draw,
+                                               pictfmt, CPSubwindowMode, &pa);
          }
-       D2printf("New picture %#lx\n", w->picture);
+       D2printf("New picture %#lx\n", cw->picture);
      }
 }
 
 void
 ECompMgrWinNew(EObj * eo)
 {
-   ECmWinInfo         *w;
+   ECmWinInfo         *cw;
    Status              ok;
 
    if (!Conf_compmgr.enable)   /* FIXME - Here? */
       return;
 
-   w = Ecalloc(1, sizeof(ECmWinInfo));
-   if (!w)
+   cw = Ecalloc(1, sizeof(ECmWinInfo));
+   if (!cw)
       return;
 
    D1printf("ECompMgrWinNew %#lx\n", eo->win);
 
-   eo->cmhook = w;
+   eo->cmhook = cw;
 
-   ok = XGetWindowAttributes(disp, eo->win, &w->a);
-   if (!ok || w->a.class == InputOnly)
+   ok = XGetWindowAttributes(disp, eo->win, &cw->a);
+   if (!ok || cw->a.class == InputOnly)
      {
-       free(w);
+       free(cw);
        eo->cmhook = NULL;
        return;
      }
 
-   w->damaged = 0;
+   cw->damaged = 0;
 #if CAN_DO_USABLE
-   w->usable = False;
+   cw->usable = False;
 #endif
 
 #if 0
-   if (w->a.class == InputOnly)
+   if (cw->a.class == InputOnly)
      {
-       w->damage_sequence = 0;
-       w->damage = None;
+       cw->damage_sequence = 0;
+       cw->damage = None;
      }
    else
 #endif
@@ -1264,27 +1058,27 @@
      {
        if (Conf_compmgr.mode == ECM_MODE_WINDOW)
           XCompositeRedirectWindow(disp, eo->win, CompositeRedirectManual);
-       w->damage_sequence = NextRequest(disp);
-       w->damage = XDamageCreate(disp, eo->win, XDamageReportNonEmpty);
+       cw->damage_sequence = NextRequest(disp);
+       cw->damage = XDamageCreate(disp, eo->win, XDamageReportNonEmpty);
      }
 
-   w->picture = None;
+   cw->picture = None;
 #if HAS_NAME_WINDOW_PIXMAP
-   w->pixmap = None;
+   cw->pixmap = None;
 #endif
    ECompMgrWinSetPicts(eo);
 
-   w->alphaPict = None;
-   w->borderSize = None;
-   w->extents = None;
-   w->clip = None;
+   cw->alphaPict = None;
+   cw->borderSize = None;
+   cw->extents = None;
+   cw->clip = None;
 #if ENABLE_SHADOWS
-   w->shadowPict = None;
-   w->shadow = None;
-   w->shadow_dx = 0;
-   w->shadow_dy = 0;
-   w->shadow_width = 0;
-   w->shadow_height = 0;
+   cw->shadowPict = None;
+   cw->shadow = None;
+   cw->shadow_dx = 0;
+   cw->shadow_dy = 0;
+   cw->shadow_width = 0;
+   cw->shadow_height = 0;
 #endif
 
 #if 1
@@ -1292,19 +1086,19 @@
       ESelectInputAdd(eo->win, StructureNotifyMask);
 #endif
 
-   w->opacity = 0xdeadbeef;
+   cw->opacity = 0xdeadbeef;
    ECompMgrWinChangeOpacity(eo, eo->opacity);
 
 #if 1                          /* FIXME - Do we need this? */
    /* Find new window region */
-   w->extents = win_extents(disp, eo);
+   cw->extents = win_extents(disp, eo);
 #endif
 
    EventCallbackRegister(eo->win, 0, ECompMgrHandleWindowEvent, eo);
 
 #if 0
-   if (w->a.map_state == IsViewable)
-      ECompMgrWinMap(eo, w->damage_sequence - 1, False);
+   if (cw->a.map_state == IsViewable)
+      ECompMgrWinMap(eo, cw->damage_sequence - 1, False);
 #endif
 }
 
@@ -1391,56 +1185,38 @@
 static void
 finish_destroy_win(EObj * eo, Bool gone)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
    if (!gone)
       finish_unmap_win(eo);
 
    ECompMgrWinInvalidate(eo, INV_ALL);
 
-   if (w->picture != None)
+   if (cw->picture != None)
      {
-       XRenderFreePicture(disp, w->picture);
-       w->picture = None;
+       XRenderFreePicture(disp, cw->picture);
+       cw->picture = None;
      }
 
-   if (w->damage != None)
+   if (cw->damage != None)
      {
-       XDamageDestroy(disp, w->damage);
-       w->damage = None;
+       XDamageDestroy(disp, cw->damage);
+       cw->damage = None;
      }
 
-#if ENABLE_FADING
-   cleanup_fade(disp, eo);
-#endif
-
    _EFREE(eo->cmhook);
 }
 
-#if ENABLE_FADING
-static void
-destroy_callback(EObj * eo, Bool gone)
-{
-   finish_destroy_win(eo, gone);
-}
-#endif
-
 void
 ECompMgrWinDel(EObj * eo, Bool gone, Bool do_fade)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
 
-   if (!w)
+   if (!cw)
       return;
 
    D1printf("ECompMgrWinDel %#lx\n", eo->win);
-
-#if ENABLE_FADING
-   if (w && w->pixmap && do_fade && fadeWindows)
-      set_fade(disp, w, False, destroy_callback, gone);
-   else
-#endif
-      finish_destroy_win(eo, gone);
+   finish_destroy_win(eo, gone);
    do_fade = False;
 
    if (eo->type != EOBJ_TYPE_DESK)
@@ -1455,84 +1231,77 @@
 static void
 ECompMgrWinDamage(EObj * eo, XEvent * ev __UNUSED__)
 {
-   ECmWinInfo         *w = eo->cmhook;
+   ECmWinInfo         *cw = eo->cmhook;
    Display            *dpy = disp;
    XDamageNotifyEvent *de = (XDamageNotifyEvent *) ev;
    XserverRegion       parts;
 
    D1printf("ECompMgrWinDamage %#lx %#lx damaged=%d %d,%d %dx%d\n",
-           ev->xany.window, eo->win, w->damaged,
+           ev->xany.window, eo->win, cw->damaged,
            de->area.x, de->area.y, de->area.width, de->area.height);
 
 #if CAN_DO_USABLE
-   if (!w->usable)
+   if (!cw->usable)
      {
-       if (w->damage_bounds.width == 0 || w->damage_bounds.height == 0)
+       if (cw->damage_bounds.width == 0 || cw->damage_bounds.height == 0)
          {
-            w->damage_bounds = de->area;
+            cw->damage_bounds = de->area;
          }
        else
          {
-            if (de->area.x < w->damage_bounds.x)
+            if (de->area.x < cw->damage_bounds.x)
               {
-                 w->damage_bounds.width += (w->damage_bounds.x - de->area.x);
-                 w->damage_bounds.x = de->area.x;
+                 cw->damage_bounds.width += (cw->damage_bounds.x - de->area.x);
+                 cw->damage_bounds.x = de->area.x;
               }
-            if (de->area.y < w->damage_bounds.y)
+            if (de->area.y < cw->damage_bounds.y)
               {
-                 w->damage_bounds.height += (w->damage_bounds.y - de->area.y);
-                 w->damage_bounds.y = de->area.y;
+                 cw->damage_bounds.height +=
+                    (cw->damage_bounds.y - de->area.y);
+                 cw->damage_bounds.y = de->area.y;
               }
             if (de->area.x + de->area.width >
-                w->damage_bounds.x + w->damage_bounds.width)
-               w->damage_bounds.width =
-                  de->area.x + de->area.width - w->damage_bounds.x;
+                cw->damage_bounds.x + cw->damage_bounds.width)
+               cw->damage_bounds.width =
+                  de->area.x + de->area.width - cw->damage_bounds.x;
             if (de->area.y + de->area.height >
-                w->damage_bounds.y + w->damage_bounds.height)
-               w->damage_bounds.height =
-                  de->area.y + de->area.height - w->damage_bounds.y;
+                cw->damage_bounds.y + cw->damage_bounds.height)
+               cw->damage_bounds.height =
+                  de->area.y + de->area.height - cw->damage_bounds.y;
          }
 #if 0
        printf("unusable damage %d, %d: %d x %d bounds %d, %d: %d x %d\n",
-              de->area.x,
-              de->area.y,
-              de->area.width,
-              de->area.height,
-              w->damage_bounds.x,
-              w->damage_bounds.y,
-              w->damage_bounds.width, w->damage_bounds.height);
-#endif
-       if (w->damage_bounds.x <= 0 &&
-           w->damage_bounds.y <= 0 &&
-           w->a.width <= w->damage_bounds.x + w->damage_bounds.width &&
-           w->a.height <= w->damage_bounds.y + w->damage_bounds.height)
-         {
-#if ENABLE_FADING
-            if (fadeWindows)
-               set_fade(dpy, w, True, 0, False);
+              de->area.x, de->area.y, de->area.width, de->area.height,
+              cw->damage_bounds.x, cw->damage_bounds.y,
+              cw->damage_bounds.width, cw->damage_bounds.height);
 #endif
-            w->usable = True;
+       if (cw->damage_bounds.x <= 0 &&
+           cw->damage_bounds.y <= 0 &&
+           cw->a.width <= cw->damage_bounds.x + cw->damage_bounds.width &&
+           cw->a.height <= cw->damage_bounds.y + cw->damage_bounds.height)
+         {
+            cw->usable = True;
          }
      }
-   if (!w->usable)
+   if (!cw->usable)
       return;
 #else
    de = NULL;
 #endif
 
-   if (!w->damaged)
+   if (!cw->damaged)
      {
        parts = win_extents(dpy, eo);
-       XDamageSubtract(dpy, w->damage, None, None);
-       w->damaged = 1;
+       XDamageSubtract(dpy, cw->damage, None, None);
+       cw->damaged = 1;
      }
    else
      {
        parts = XFixesCreateRegion(dpy, 0, 0);
-       XDamageSubtract(dpy, w->damage, None, parts);
+       XDamageSubtract(dpy, cw->damage, None, parts);
        XFixesTranslateRegion(dpy, parts,
-                             eo->x + w->a.border_width,
-                             eo->y + w->a.border_width);
+                             eo->x + cw->a.border_width,
+                             eo->y + cw->a.border_width);
 #if ENABLE_SHADOWS
        if (Conf_compmgr.shadow == ECM_SHADOWS_SHARP)
          {
@@ -1540,7 +1309,7 @@
 
             o = XFixesCreateRegion(dpy, 0, 0);
             XFixesCopyRegion(dpy, o, parts);
-            XFixesTranslateRegion(dpy, o, w->shadow_dx, w->shadow_dy);
+            XFixesTranslateRegion(dpy, o, cw->shadow_dx, cw->shadow_dy);
             XFixesUnionRegion(dpy, parts, parts, o);
             XFixesDestroyRegion(dpy, o);
          }
@@ -1551,11 +1320,11 @@
 
 /* Ensure that the blend mask is up to date */
 static void
-ECompMgrCheckAlphaMask(ECmWinInfo * w)
+ECompMgrCheckAlphaMask(ECmWinInfo * cw)
 {
-   if (w->opacity != OPAQUE && !w->alphaPict)
-      w->alphaPict = EPictureCreateSolid(False, (double)w->opacity / OPAQUE,
-                                        0, 0, 0);
+   if (cw->opacity != OPAQUE && !cw->alphaPict)
+      cw->alphaPict = EPictureCreateSolid(False, (double)cw->opacity / OPAQUE,
+                                         0, 0, 0);
 }
 
 static int
@@ -1564,7 +1333,7 @@
 {
    EObj               *eo, *eo_prev, *eo_first;
    int                 i, stop;
-   ECmWinInfo         *w;
+   ECmWinInfo         *cw;
 
    D4printf("ECompMgrRepaintDetermineOrder %d\n", desk);
    if (!lst)
@@ -1607,24 +1376,24 @@
             ECompMgrWinSetPicts(&d->o);
          }
 
-       w = eo->cmhook;
+       cw = eo->cmhook;
 
-       if (!w /* || !eo->shown */ )
+       if (!cw /* || !eo->shown */ )
           continue;
 
        D4printf(" - %#lx desk=%d shown=%d vis=%d dam=%d pict=%#lx\n",
-                eo->win, eo->desk, eo->shown, w->visible, w->damaged,
-                w->picture);
+                eo->win, eo->desk, eo->shown, cw->visible, cw->damaged,
+                cw->picture);
 
-       if (!w->visible)
+       if (!cw->visible)
           continue;
 #if CAN_DO_USABLE
-       if (!w->usable)
+       if (!cw->usable)
           continue;
 #endif
-       if (!w->damaged)
+       if (!cw->damaged)
           continue;
-       if (!w->picture)
+       if (!cw->picture)
           continue;
 
        D4printf
@@ -1633,12 +1402,12 @@
 
        if (!eo_first)
           eo_first = eo;
-       w->prev = eo_prev;
+       cw->prev = eo_prev;
        if (eo_prev)
           ((ECmWinInfo *) (eo_prev->cmhook))->next = eo;
        eo_prev = eo;
 
-       /*  FIXME - We should break when the repaint region (w->clip) becomes 
empty */
+       /*  FIXME - We should break when the repaint region (cw->clip) becomes 
empty */
        if (eo->type == EOBJ_TYPE_DESK && eo->x == 0 && eo->y == 0)
           stop = 1;
        if (stop)
@@ -1657,31 +1426,31 @@
 ECompMgrRepaintObj(Picture pbuf, XserverRegion region, EObj * eo, int mode)
 {
    Display            *dpy = disp;
-   ECmWinInfo         *w;
+   ECmWinInfo         *cw;
    Desk               *d = DeskGet(eo->desk);
    XserverRegion       breg;   /* Border region in screen coordinates */
    int                 x, y;
 
-   w = eo->cmhook;
+   cw = eo->cmhook;
 
 #if 0
    ECompMgrWinSetPicts(eo);
 #endif
 
-   D2printf("ECompMgrRepaintObj %d %#lx %d %#lx\n", mode, eo->win, w->mode,
-           w->picture);
+   D2printf("ECompMgrRepaintObj %d %#lx %d %#lx\n", mode, eo->win, cw->mode,
+           cw->picture);
 
    /* Region of shaped window in screen coordinates */
-   if (!w->borderSize)
-      w->borderSize = border_size(eo);
+   if (!cw->borderSize)
+      cw->borderSize = border_size(eo);
    if (EventDebug(EDBUG_TYPE_COMPMGR3))
-      ERegionShow("Window borderSize", w->borderSize);
+      ERegionShow("Window borderSize", cw->borderSize);
 
    /* Region of window in screen coordinates, including shadows */
-   if (!w->extents)
-      w->extents = win_extents(dpy, eo);
+   if (!cw->extents)
+      cw->extents = win_extents(dpy, eo);
    if (EventDebug(EDBUG_TYPE_COMPMGR3))
-      ERegionShow("Window extents", w->extents);
+      ERegionShow("Window extents", cw->extents);
 
    x = EoGetX(d);
    y = EoGetY(d);
@@ -1690,27 +1459,27 @@
      {
        /* Painting opaque windows top down, updating clip regions. */
 
-       w->clip = XFixesCreateRegion(dpy, 0, 0);
-       XFixesCopyRegion(dpy, w->clip, region);
+       cw->clip = XFixesCreateRegion(dpy, 0, 0);
+       XFixesCopyRegion(dpy, cw->clip, region);
 
-       switch (w->mode)
+       switch (cw->mode)
          {
          case WINDOW_SOLID:
             D2printf("ECompMgrRepaintObj %d %#lx %d %#lx d=%d l=%d: %s\n",
-                     mode, eo->win, w->mode, w->picture, eo->desk, eo->ilayer,
-                     eo->name);
+                     mode, eo->win, cw->mode, cw->picture, eo->desk,
+                     eo->ilayer, eo->name);
             XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, region);
-            XRenderComposite(dpy, PictOpSrc, w->picture, None, pbuf,
-                             0, 0, 0, 0, x + w->rcx, y + w->rcy, w->rcw,
-                             w->rch);
+            XRenderComposite(dpy, PictOpSrc, cw->picture, None, pbuf,
+                             0, 0, 0, 0, x + cw->rcx, y + cw->rcy, cw->rcw,
+                             cw->rch);
             if (x == 0 && y == 0)
               {
-                 breg = w->borderSize;
+                 breg = cw->borderSize;
               }
             else
               {
                  breg = XFixesCreateRegion(dpy, 0, 0);
-                 XFixesCopyRegion(dpy, breg, w->borderSize);
+                 XFixesCopyRegion(dpy, breg, cw->borderSize);
                  XFixesTranslateRegion(disp, breg, x, y);
               }
             XFixesSubtractRegion(dpy, region, region, breg);
@@ -1721,18 +1490,18 @@
      {
        /* Painting trans stuff bottom up. */
 
-       switch (w->mode)
+       switch (cw->mode)
          {
          case WINDOW_TRANS:
          case WINDOW_ARGB:
             D2printf("ECompMgrRepaintObj %d %#lx %d %#lx d=%d l=%d: %s\n",
-                     mode, eo->win, w->mode, w->picture, eo->desk, eo->ilayer,
-                     eo->name);
-            XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, w->clip);
-            ECompMgrCheckAlphaMask(w);
-            XRenderComposite(dpy, PictOpOver, w->picture, w->alphaPict, pbuf,
-                             0, 0, 0, 0, x + w->rcx, y + w->rcy, w->rcw,
-                             w->rch);
+                     mode, eo->win, cw->mode, cw->picture, eo->desk,
+                     eo->ilayer, eo->name);
+            XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, cw->clip);
+            ECompMgrCheckAlphaMask(cw);
+            XRenderComposite(dpy, PictOpOver, cw->picture, cw->alphaPict, pbuf,
+                             0, 0, 0, 0, x + cw->rcx, y + cw->rcy, cw->rcw,
+                             cw->rch);
             break;
          }
 
@@ -1742,34 +1511,36 @@
          case ECM_SHADOWS_OFF:
             break;
          case ECM_SHADOWS_SHARP:
-            if (w->opacity != OPAQUE && !w->shadowPict)
-               w->shadowPict = EPictureCreateSolid(True,
-                                                   (double)w->opacity /
-                                                   OPAQUE * 0.3, 0, 0, 0);
-            XFixesSubtractRegion(dpy, w->clip, w->clip, w->borderSize);
-            XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, w->clip);
+            if (cw->opacity != OPAQUE && !cw->shadowPict)
+               cw->shadowPict = EPictureCreateSolid(True,
+                                                    (double)cw->opacity /
+                                                    OPAQUE * 0.3, 0, 0, 0);
+            XFixesSubtractRegion(dpy, cw->clip, cw->clip, cw->borderSize);
+            XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, cw->clip);
             XRenderComposite(dpy, PictOpOver,
-                             w->shadowPict ? w->shadowPict : transBlackPicture,
-                             w->picture, pbuf, 0, 0, 0, 0,
-                             w->a.x + w->shadow_dx, w->a.y + w->shadow_dy,
-                             w->shadow_width, w->shadow_height);
+                             cw->shadowPict ? cw->
+                             shadowPict : transBlackPicture, cw->picture, pbuf,
+                             0, 0, 0, 0, cw->a.x + cw->shadow_dx,
+                             cw->a.y + cw->shadow_dy, cw->shadow_width,
+                             cw->shadow_height);
             break;
          case ECM_SHADOWS_BLURRED:
-            if (w->shadow)
+            if (cw->shadow)
               {
-                 XFixesSubtractRegion(dpy, w->clip, w->clip, w->borderSize);
-                 XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, w->clip);
-                 XRenderComposite(dpy, PictOpOver, blackPicture, w->shadow,
+                 XFixesSubtractRegion(dpy, cw->clip, cw->clip, cw->borderSize);
+                 XFixesSetPictureClipRegion(dpy, pbuf, 0, 0, cw->clip);
+                 XRenderComposite(dpy, PictOpOver, blackPicture, cw->shadow,
                                   pbuf, 0, 0, 0, 0,
-                                  w->a.x + w->shadow_dx, w->a.y + w->shadow_dy,
-                                  w->shadow_width, w->shadow_height);
+                                  cw->a.x + cw->shadow_dx,
+                                  cw->a.y + cw->shadow_dy, cw->shadow_width,
+                                  cw->shadow_height);
               }
             break;
          }
 #endif
 
-       XFixesDestroyRegion(dpy, w->clip);
-       w->clip = None;
+       XFixesDestroyRegion(dpy, cw->clip);
+       cw->clip = None;
      }
 }
 
@@ -2407,3 +2178,31 @@
 };
 
 #endif /* USE_COMPOSITE */
+
+/*
+ * $Id: xcompmgr.c,v 1.26 2004/08/14 21:39:51 keithp Exp $
+ *
+ * Copyright © 2003 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+/*
+ * Modified by Matthew Hawn. I don't know what to say here so follow what it 
+ * says above. Not that I can really do anything about it
+ */




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to