Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h backgrounds.c dialog.c draw.c e16-ecore_hints.c ecompmgr.c 
        ecompmgr.h edbus.c hints.c hiwin.c icccm.c iconify.c ipc.c 
        magwin.c main.c pager.c piximg.c screen.c session.c setup.c 
        systray.c text_pango.c text_xft.c x.c xwin.h zoom.c 


Log Message:
Eliminate RRoot and VRoot.

===================================================================
RCS file: /cvs/e/e16/e/src/E.h,v
retrieving revision 1.613
retrieving revision 1.614
diff -u -3 -r1.613 -r1.614
--- E.h 29 Mar 2008 10:48:45 -0000      1.613
+++ E.h 29 Mar 2008 17:18:57 -0000      1.614
@@ -209,20 +209,6 @@
  */
 #include "etypes.h"
 
-typedef struct {
-   Win                 win;
-} RealRoot;
-
-#define RROOT RRoot.win
-
-typedef struct {
-   Win                 win;
-   int                 scr;
-   Pixmap              pmap;   /* Compositing buffer */
-} VirtRoot;
-
-#define VROOT VRoot.win
-
 /* Configuration parameters */
 typedef struct {
    struct {
@@ -407,8 +393,7 @@
       char               *cache_dir;
    } conf;
    struct {
-      char               *name;
-      int                 screens;
+      char                dummy;       /* Prevent empty struct */
 #ifdef HAVE_XINERAMA
       char                xinerama_active;
 #endif
@@ -426,7 +411,6 @@
       Window              last_bpress2;
       unsigned int        last_button;
       unsigned int        last_keycode;
-      unsigned char       last_error_code;
       char                double_click;
       char                on_screen;
 #if USE_COMPOSITE
@@ -434,7 +418,6 @@
 #endif
    } events;
    struct {
-      int                 server_grabbed;
       char                pointer_grab_active;
       Window              pointer_grab_window;
    } grabs;
@@ -614,7 +597,5 @@
 extern const char   e_wm_name[];
 extern const char   e_wm_version[];
 extern const char   e_wm_date[];
-extern RealRoot     RRoot;
-__EXPORT__ extern VirtRoot VRoot;
 __EXPORT__ extern EConf Conf;
 __EXPORT__ extern EMode Mode;
===================================================================
RCS file: /cvs/e/e16/e/src/backgrounds.c,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -3 -r1.108 -r1.109
--- backgrounds.c       26 Mar 2008 23:19:42 -0000      1.108
+++ backgrounds.c       29 Mar 2008 17:18:58 -0000      1.109
@@ -1748,7 +1748,7 @@
 
    ic_button = ImageclassFind("DIALOG_BUTTON", 0);
 
-   XSetForeground(disp, gc, BlackPixel(disp, VRoot.scr));
+   XSetForeground(disp, gc, Dpy.pixel_black);
    XFillRectangle(disp, pmap, gc, 0, 0, w, h);
 
    x = -(num * (64 + 8) - w) * tmp_bg_sel_sliderval / (4 * num);
===================================================================
RCS file: /cvs/e/e16/e/src/dialog.c,v
retrieving revision 1.198
retrieving revision 1.199
diff -u -3 -r1.198 -r1.199
--- dialog.c    24 Mar 2008 11:12:39 -0000      1.198
+++ dialog.c    29 Mar 2008 17:18:58 -0000      1.199
@@ -1576,7 +1576,7 @@
              pad = ImageclassGetPadding(d->iclass);
              gcv.subwindow_mode = IncludeInferiors;
              gc = EXCreateGC(WinGetPmap(d->win), GCSubwindowMode, &gcv);
-             XSetForeground(disp, gc, BlackPixel(disp, VRoot.scr));
+             XSetForeground(disp, gc, Dpy.pixel_black);
              XDrawRectangle(disp, WinGetPmap(d->win), gc,
                             pad->left + di->x, pad->top + di->y, di->w, di->h);
              EXFreeGC(gc);
===================================================================
RCS file: /cvs/e/e16/e/src/draw.c,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -3 -r1.118 -r1.119
--- draw.c      24 Mar 2008 11:12:39 -0000      1.118
+++ draw.c      29 Mar 2008 17:18:58 -0000      1.119
@@ -376,9 +376,9 @@
        XGCValues           gcv;
 
        gcv.function = GXxor;
-       gcv.foreground = WhitePixel(disp, VRoot.scr);
+       gcv.foreground = Dpy.pixel_white;
        if (gcv.foreground == 0)
-          gcv.foreground = BlackPixel(disp, VRoot.scr);
+          gcv.foreground = Dpy.pixel_black;
        gcv.subwindow_mode = IncludeInferiors;
        gc = EXCreateGC(root,
                        GCFunction | GCForeground | GCSubwindowMode, &gcv);
===================================================================
RCS file: /cvs/e/e16/e/src/e16-ecore_hints.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- e16-ecore_hints.c   23 Feb 2008 11:57:41 -0000      1.12
+++ e16-ecore_hints.c   29 Mar 2008 17:18:58 -0000      1.13
@@ -38,12 +38,10 @@
 #define ECORE_X_PROP_LIST_ADD       1
 #define ECORE_X_PROP_LIST_TOGGLE    2
 
-extern Display     *disp;
-
-#define _ecore_x_disp disp
-
 #ifdef USE_ECORE_X
 
+extern Display     *_ecore_x_disp;
+
 void
 ecore_x_icccm_state_set_iconic(Ecore_X_Window win)
 {
@@ -69,6 +67,9 @@
 #include <assert.h>
 #endif
 #include "hints.h"
+#include "xwin.h"
+
+#define _ecore_x_disp disp
 
 #define N_ITEMS(x) (sizeof(x)/sizeof(x[0]))
 
===================================================================
RCS file: /cvs/e/e16/e/src/ecompmgr.c,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -3 -r1.174 -r1.175
--- ecompmgr.c  29 Mar 2008 08:22:36 -0000      1.174
+++ ecompmgr.c  29 Mar 2008 17:18:58 -0000      1.175
@@ -184,6 +184,7 @@
 #if USE_COMPOSITE_OVERLAY_WINDOW
    Window              cow;
 #endif
+   Pixmap              pmap;   /* Compositing buffer */
    char                active;
    char                use_pixmap;
    char                reorder;
@@ -2304,7 +2305,7 @@
 ECompMgrRootBufferCreate(unsigned int w, unsigned int h)
 {
    /* Root buffer picture and pixmap */
-   rootBuffer = EPictureCreateBuffer(VROOT, w, h, &VRoot.pmap);
+   rootBuffer = EPictureCreateBuffer(VROOT, w, h, &Mode_compmgr.pmap);
 
    /* Screen region */
    Mode_compmgr.rgn_screen = ERegionCreateRect(0, 0, w, h);
@@ -2317,10 +2318,16 @@
 ECompMgrRootBufferDestroy(void)
 {
    PICTURE_DESTROY(rootBuffer);
-   PIXMAP_DESTROY(VRoot.pmap);
+   PIXMAP_DESTROY(Mode_compmgr.pmap);
 
    REGION_DESTROY(Mode_compmgr.rgn_screen);
    REGION_DESTROY(Mode_compmgr.rgn_clip);
+}
+
+Pixmap
+ECompMgrGetRootBuffer(void)
+{
+   return Mode_compmgr.pmap;
 }
 
 static void
===================================================================
RCS file: /cvs/e/e16/e/src/ecompmgr.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- ecompmgr.h  23 Mar 2008 11:54:23 -0000      1.35
+++ ecompmgr.h  29 Mar 2008 17:18:58 -0000      1.36
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2007 Kim Woelders
+ * Copyright (C) 2004-2008 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
@@ -42,6 +42,8 @@
 
 int                 ECompMgrDeskConfigure(Desk * dsk);
 
+Pixmap              ECompMgrGetRootBuffer(void);
+
 void                ECompMgrWinNew(EObj * eo);
 void                ECompMgrWinDel(EObj * eo);
 void                ECompMgrWinMap(EObj * eo);
@@ -70,6 +72,8 @@
 #define ECompMgrIsActive()          0
 
 #define ECompMgrDeskConfigure(dsk)  0
+
+#define ECompMgrGetRootBuffer()     None
 
 #endif
 
===================================================================
RCS file: /cvs/e/e16/e/src/edbus.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- edbus.c     24 Mar 2008 11:12:40 -0000      1.3
+++ edbus.c     29 Mar 2008 17:18:58 -0000      1.4
@@ -24,6 +24,7 @@
 #include "edbus.h"
 #include "events.h"
 #include "ipc.h"
+#include "xwin.h"
 #include <dbus/dbus.h>
 
 #define ENABLE_INTROSPECTION 1
@@ -246,16 +247,16 @@
 
    if (Mode.wm.window)
      {
-       sprintf(buf, "org.e16.wm.w%#x", (unsigned int)WinGetXwin(VROOT));
+       sprintf(buf, "org.e16.wm.p%u", (unsigned int)Mode.wm.pid);
      }
    else
      {
        const char         *s;
 
-       s = strchr(Mode.display.name, ':');
+       s = strchr(Dpy.name, ':');
        if (!s)
           return;
-       sprintf(buf, "org.e16.wm.d%ds%d", atoi(s + 1), VRoot.scr);
+       sprintf(buf, "org.e16.wm.d%ds%d", atoi(s + 1), Dpy.screen);
      }
    dbus_data.name = Estrdup(buf);
    Esetenv("ENL_DBUS_NAME", dbus_data.name);
===================================================================
RCS file: /cvs/e/e16/e/src/hints.c,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -3 -r1.88 -r1.89
--- hints.c     24 Mar 2008 11:12:40 -0000      1.88
+++ hints.c     29 Mar 2008 17:18:58 -0000      1.89
@@ -586,7 +586,7 @@
    if (!sel)
       return sel;
 
-   Esnprintf(buf, sizeof(buf), "%s%d", name, VRoot.scr);
+   Esnprintf(buf, sizeof(buf), "%s%d", name, Dpy.screen);
 
    sel->atom = XInternAtom(disp, buf, False);
    sel->time = EGetTimestamp();
===================================================================
RCS file: /cvs/e/e16/e/src/hiwin.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- hiwin.c     24 Mar 2008 11:12:40 -0000      1.31
+++ hiwin.c     29 Mar 2008 17:18:58 -0000      1.32
@@ -179,9 +179,9 @@
 static void
 HiwinRenderPixmapDrawX(Hiwin * phi, Drawable draw)
 {
-   XSetForeground(disp, phi->gc, BlackPixel(disp, VRoot.scr));
+   XSetForeground(disp, phi->gc, Dpy.pixel_black);
    XFillRectangle(disp, draw, phi->gc, 0, 0, EoGetW(phi), EoGetH(phi));
-   XSetForeground(disp, phi->gc, WhitePixel(disp, VRoot.scr));
+   XSetForeground(disp, phi->gc, Dpy.pixel_white);
    XFillRectangle(disp, draw, phi->gc, 1, 1, EoGetW(phi) - 2, EoGetH(phi) - 2);
 }
 
===================================================================
RCS file: /cvs/e/e16/e/src/icccm.c,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -3 -r1.144 -r1.145
--- icccm.c     24 Mar 2008 11:12:40 -0000      1.144
+++ icccm.c     29 Mar 2008 17:18:58 -0000      1.145
@@ -347,7 +347,7 @@
               {
                  if (XGetWindowAttributes(disp, wlist[i], &xwa))
                    {
-                      if (xwa.colormap != DefaultColormap(disp, VRoot.scr))
+                      if (xwa.colormap != WinGetCmap(VROOT))
                         {
                            XInstallColormap(disp, xwa.colormap);
                            Mode.current_cmap = xwa.colormap;
===================================================================
RCS file: /cvs/e/e16/e/src/iconify.c,v
retrieving revision 1.230
retrieving revision 1.231
diff -u -3 -r1.230 -r1.231
--- iconify.c   24 Mar 2008 11:12:40 -0000      1.230
+++ iconify.c   29 Mar 2008 17:18:58 -0000      1.231
@@ -101,9 +101,9 @@
    gcv.subwindow_mode = IncludeInferiors;
    gcv.function = GXxor;
    gcv.line_width = 2;
-   gcv.foreground = WhitePixel(disp, VRoot.scr);
+   gcv.foreground = Dpy.pixel_white;
    if (gcv.foreground == 0)
-      gcv.foreground = BlackPixel(disp, VRoot.scr);
+      gcv.foreground = Dpy.pixel_black;
    gc = EXCreateGC(root,
                   GCFunction | GCForeground | GCSubwindowMode | GCLineWidth,
                   &gcv);
@@ -191,9 +191,9 @@
    gcv.subwindow_mode = IncludeInferiors;
    gcv.function = GXxor;
    gcv.fill_style = FillOpaqueStippled;
-   gcv.foreground = WhitePixel(disp, VRoot.scr);
+   gcv.foreground = Dpy.pixel_white;
    if (gcv.foreground == 0)
-      gcv.foreground = BlackPixel(disp, VRoot.scr);
+      gcv.foreground = Dpy.pixel_black;
    gc = EXCreateGC(root,
                   GCFunction | GCForeground | GCSubwindowMode | GCFillStyle,
                   &gcv);
===================================================================
RCS file: /cvs/e/e16/e/src/ipc.c,v
retrieving revision 1.310
retrieving revision 1.311
diff -u -3 -r1.310 -r1.311
--- ipc.c       24 Mar 2008 11:12:40 -0000      1.310
+++ ipc.c       29 Mar 2008 17:18:58 -0000      1.311
@@ -144,7 +144,7 @@
      }
    else if (!strncmp(param, "size", 2))
      {
-       IpcPrintf("Screen %d  size %dx%d\n", VRoot.scr,
+       IpcPrintf("Screen %d  size %dx%d\n", Dpy.screen,
                  WinGetW(VROOT), WinGetH(VROOT));
      }
    else if (!strcmp(param, "split"))
@@ -1223,7 +1223,7 @@
      }
    else if (!strncmp(params, "scr", 3))
      {
-       x = (VRoot.scr + 1) % ScreenCount(disp);
+       x = (Dpy.screen + 1) % ScreenCount(disp);
        sscanf(params, "%*s %i", &x);
        if (x >= 0 && x < ScreenCount(disp))
           EXWarpPointer(RootWindow(disp, x), DisplayWidth(disp, x) / 2,
===================================================================
RCS file: /cvs/e/e16/e/src/magwin.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- magwin.c    24 Mar 2008 11:12:40 -0000      1.10
+++ magwin.c    29 Mar 2008 17:18:58 -0000      1.11
@@ -143,7 +143,9 @@
 
        dw = (int)(sw * scale + .5);
        dh = (int)(sh * scale + .5);
-       draw = (VRoot.pmap != None) ? VRoot.pmap : WinGetXwin(VROOT);
+       draw = ECompMgrGetRootBuffer();
+       if (draw == None)
+          draw = WinGetXwin(VROOT);
        ScaleRect(VROOT, draw, EwinGetClientWin(mw->ewin),
                  EwinGetClientXwin(mw->ewin), sx, sy, sw, sh,
                  0, 0, dw, dh, (mw->filter) ? EIMAGE_ANTI_ALIAS : 0);
===================================================================
RCS file: /cvs/e/e16/e/src/main.c,v
retrieving revision 1.170
retrieving revision 1.171
diff -u -3 -r1.170 -r1.171
--- main.c      29 Mar 2008 10:48:45 -0000      1.170
+++ main.c      29 Mar 2008 17:18:58 -0000      1.171
@@ -47,8 +47,6 @@
 const char          e_wm_version[] = VERSION;
 const char          e_wm_date[] = E_CHECKOUT_DATE;
 
-RealRoot            RRoot;
-VirtRoot            VRoot;
 EConf               Conf;
 EMode               Mode;
 
@@ -108,12 +106,12 @@
    Mode.wm.exec_name = argv[0];
    Mode.wm.startup = 1;
 
-   memset(&VRoot, 0, sizeof(VRoot));
-   VRoot.scr = -1;
-
    Mode.mode = MODE_NONE;
    Mode.move.check = 1;
 
+   EXInit();
+   Dpy.screen = -1;
+
    str = getenv("EDEBUG");
    if (str)
       EDebugInit(str);
@@ -185,7 +183,7 @@
             break;
          case 's':
             Mode.wm.single = 1;
-            VRoot.scr = strtoul(eoptarg, NULL, 10);
+            Dpy.screen = strtoul(eoptarg, NULL, 10);
             break;
          case 'S':
             SetSMID(eoptarg);
@@ -648,13 +646,13 @@
 
    if (Mode.conf.name)
       Esnprintf(buf, sizeof(buf), "%s/%s-%d", EDirUser(), EConfName(),
-               VRoot.scr);
+               Dpy.screen);
    else if (Mode.wm.window)
       Esnprintf(buf, sizeof(buf), "%s/%s-window", EDirUser(),
                EConfNameDefault());
    else
       Esnprintf(buf, sizeof(buf), "%s/%s-%s", EDirUser(), EConfNameDefault(),
-               Mode.display.name);
+               Dpy.name);
    def_prefix = Estrdup(buf);
 
    for (s = def_prefix; (s = strchr(s, ':')) != NULL; *s = '-')
===================================================================
RCS file: /cvs/e/e16/e/src/pager.c,v
retrieving revision 1.264
retrieving revision 1.265
diff -u -3 -r1.264 -r1.265
--- pager.c     24 Mar 2008 11:12:40 -0000      1.264
+++ pager.c     29 Mar 2008 17:18:58 -0000      1.265
@@ -452,9 +452,9 @@
          }
        else
          {
-            XSetForeground(disp, gc, BlackPixel(disp, VRoot.scr));
+            XSetForeground(disp, gc, Dpy.pixel_black);
             XDrawRectangle(disp, pmap, gc, wx - 1, wy - 1, ww + 1, wh + 1);
-            XSetForeground(disp, gc, WhitePixel(disp, VRoot.scr));
+            XSetForeground(disp, gc, Dpy.pixel_white);
             XFillRectangle(disp, pmap, gc, wx, wy, ww, wh);
          }
      }
@@ -611,9 +611,9 @@
    if (gc == None)
       return;
 
-   XSetForeground(disp, gc, BlackPixel(disp, VRoot.scr));
+   XSetForeground(disp, gc, Dpy.pixel_black);
    XDrawRectangle(disp, pmap, gc, 0, 0, p->dw, p->dh);
-   XSetForeground(disp, gc, WhitePixel(disp, VRoot.scr));
+   XSetForeground(disp, gc, Dpy.pixel_white);
    XFillRectangle(disp, pmap, gc, 1, 1, p->dw - 2, p->dh - 2);
 
    EXFreeGC(gc);
===================================================================
RCS file: /cvs/e/e16/e/src/piximg.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- piximg.c    24 Mar 2008 11:12:40 -0000      1.6
+++ piximg.c    29 Mar 2008 17:18:58 -0000      1.7
@@ -79,10 +79,10 @@
                  if (pi->shminfo->shmaddr != (void *)-1)
                    {
                       pi->shminfo->readOnly = False;
-                      Mode.events.last_error_code = 0;
+                      Dpy.last_error_code = 0;
                       XShmAttach(disp, pi->shminfo);
                       ESync(0);
-                      if (Mode.events.last_error_code == 0)
+                      if (Dpy.last_error_code == 0)
                         {
                            pi->pmap =
                               XShmCreatePixmap(disp, win, pi->shminfo->shmaddr,
@@ -279,7 +279,7 @@
          }
        break;
      case 16:
-       if (DefaultDepth(disp, VRoot.scr) != 15)
+       if (WinGetDepth(VROOT) != 15)
          {
             for (j = 0; j < h; j++)
               {
===================================================================
RCS file: /cvs/e/e16/e/src/screen.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- screen.c    24 Mar 2008 11:12:40 -0000      1.31
+++ screen.c    29 Mar 2008 17:18:58 -0000      1.32
@@ -97,7 +97,7 @@
 
    for (i = 0; i < nx; i++)
       for (j = 0; j < ny; j++)
-        ScreenAdd(1, VRoot.scr,
+        ScreenAdd(1, Dpy.screen,
                   i * WinGetW(VROOT) / nx, j * WinGetH(VROOT) / ny,
                   WinGetW(VROOT) / nx, WinGetH(VROOT) / ny);
 }
@@ -145,7 +145,7 @@
    else
      {
        IpcPrintf(" %2d     %2d       %5d     %5d     %5d     %5d\n",
-                 0, VRoot.scr, 0, 0, WinGetW(VROOT), WinGetH(VROOT));
+                 0, Dpy.screen, 0, 0, WinGetW(VROOT), WinGetH(VROOT));
      }
 }
 
===================================================================
RCS file: /cvs/e/e16/e/src/session.c,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -3 -r1.152 -r1.153
--- session.c   24 Mar 2008 11:12:40 -0000      1.152
+++ session.c   29 Mar 2008 17:18:58 -0000      1.153
@@ -548,7 +548,7 @@
        l = 0;
        l += Esnprintf(s + l, sizeof(s) - l, "exec %s -f", Mode.wm.exec_name);
        if (Mode.wm.single)
-          l += Esnprintf(s + l, sizeof(s) - l, " -s %d", VRoot.scr);
+          l += Esnprintf(s + l, sizeof(s) - l, " -s %d", Dpy.screen);
        else if (!Mode.wm.master)
           l +=
              Esnprintf(s + l, sizeof(s) - l, " -m %d", Mode.wm.master_screen);
===================================================================
RCS file: /cvs/e/e16/e/src/setup.c,v
retrieving revision 1.192
retrieving revision 1.193
diff -u -3 -r1.192 -r1.193
--- setup.c     29 Mar 2008 10:48:45 -0000      1.192
+++ setup.c     29 Mar 2008 17:18:58 -0000      1.193
@@ -52,7 +52,7 @@
       dstr = ":0";
 
    /* Open a connection to the diplay nominated by the DISPLAY variable */
-   err = EDisplayOpen(dstr, VRoot.scr);
+   err = EDisplayOpen(dstr, Dpy.screen);
    if (err)
      {
        Alert(_("Enlightenment cannot connect to the display nominated by\n"
@@ -71,24 +71,23 @@
    if (getenv("ESYNCHRONIZE"))
       XSynchronize(disp, True);
 
-   VRoot.scr = DefaultScreen(disp);
-   Mode.display.screens = ScreenCount(disp);
+   Dpy.screens = ScreenCount(disp);
+   Dpy.screen = DefaultScreen(disp);
 
    if (Mode.wm.master ||
-       Mode.wm.master_screen < 0 ||
-       Mode.wm.master_screen >= Mode.display.screens)
-      Mode.wm.master_screen = VRoot.scr;
+       Mode.wm.master_screen < 0 || Mode.wm.master_screen >= Dpy.screens)
+      Mode.wm.master_screen = Dpy.screen;
 
    /* Start up on multiple heads, if appropriate */
-   if (Mode.display.screens > 1 && !Mode.wm.single && !Mode.wm.restart)
+   if (Dpy.screens > 1 && !Mode.wm.single && !Mode.wm.restart)
      {
        int                 i;
 
-       for (i = 0; i < Mode.display.screens; i++)
+       for (i = 0; i < Dpy.screens; i++)
          {
             pid_t               pid;
 
-            if (i == VRoot.scr)
+            if (i == Dpy.screen)
                continue;
 
             pid = fork();
@@ -106,7 +105,7 @@
                  EDisplayDisconnect();
                  Mode.wm.master = 0;
                  Mode.wm.pid = getpid();
-                 VRoot.scr = i;
+                 Dpy.screen = i;
                  ExtInitWinSet(None);
 #ifdef SIGSTOP
                  kill(getpid(), SIGSTOP);
@@ -118,8 +117,11 @@
          }
      }
 
-   Mode.display.name = Estrdup(DisplayString(disp));
-   Esetenv("DISPLAY", Mode.display.name);
+   Dpy.name = Estrdup(DisplayString(disp));
+   Esetenv("DISPLAY", Dpy.name);
+
+   Dpy.pixel_black = BlackPixel(disp, Dpy.screen);
+   Dpy.pixel_white = WhitePixel(disp, Dpy.screen);
 
    EDisplaySetErrorHandlers(HandleXIOError);
 
@@ -144,12 +146,12 @@
    EventsInit();
 
    /* select all the root window events to start managing */
-   Mode.events.last_error_code = 0;
+   Dpy.last_error_code = 0;
    mask =
       StructureNotifyMask | SubstructureNotifyMask | SubstructureRedirectMask;
    ESelectInput(VROOT, mask);
    ESync(0);
-   if (Mode.events.last_error_code)
+   if (Dpy.last_error_code)
      {
        AlertX(_("Another Window Manager is already running"),
               _("OK"), NULL, NULL,
===================================================================
RCS file: /cvs/e/e16/e/src/systray.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- systray.c   24 Mar 2008 11:12:40 -0000      1.10
+++ systray.c   29 Mar 2008 17:18:58 -0000      1.11
@@ -421,7 +421,7 @@
    char                buf[32];
    Win                 win;
 
-   Esnprintf(buf, sizeof(buf), "_NET_SYSTEM_TRAY_S%d", VRoot.scr);
+   Esnprintf(buf, sizeof(buf), "_NET_SYSTEM_TRAY_S%d", Dpy.screen);
 
    E_XA__XEMBED = XInternAtom(disp, "_XEMBED", False);
    E_XA__XEMBED_INFO = XInternAtom(disp, "_XEMBED_INFO", False);
===================================================================
RCS file: /cvs/e/e16/e/src/text_pango.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- text_pango.c        23 Mar 2008 11:54:24 -0000      1.3
+++ text_pango.c        29 Mar 2008 17:18:58 -0000      1.4
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007 Kim Woelders
+ * Copyright (C) 2007-2008 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
@@ -53,7 +53,7 @@
    PangoFontMask       flags;
 
    if (!_pango_ctx)
-      _pango_ctx = pango_xft_get_context(disp, VRoot.scr);
+      _pango_ctx = pango_xft_get_context(disp, Dpy.screen);
    if (!_pango_ctx)
       return -1;
 
===================================================================
RCS file: /cvs/e/e16/e/src/text_xft.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- text_xft.c  23 Mar 2008 11:54:24 -0000      1.4
+++ text_xft.c  29 Mar 2008 17:18:58 -0000      1.5
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2007 Kim Woelders
+ * Copyright (C) 2006-2008 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
@@ -48,9 +48,9 @@
    FontCtxXft         *fdc;
 
    if (name[0] == '-')
-      font = XftFontOpenXlfd(disp, VRoot.scr, name);
+      font = XftFontOpenXlfd(disp, Dpy.screen, name);
    else
-      font = XftFontOpenName(disp, VRoot.scr, name);
+      font = XftFontOpenName(disp, Dpy.screen, name);
 
    if (!font)
       return -1;
===================================================================
RCS file: /cvs/e/e16/e/src/x.c,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -3 -r1.172 -r1.173
--- x.c 29 Mar 2008 10:48:45 -0000      1.172
+++ x.c 29 Mar 2008 17:18:58 -0000      1.173
@@ -40,7 +40,7 @@
 #define DEBUG_XWIN   0
 #define DEBUG_PIXMAP 0
 
-Display            *disp = NULL;
+EDisplay            Dpy;
 
 #if USE_COMPOSITE
 static Visual      *argb_visual = NULL;
@@ -110,6 +110,12 @@
 }
 #endif
 
+void
+EXInit(void)
+{
+   memset(&Dpy, 0, sizeof(Dpy));
+}
+
 static              Win
 EXidCreate(void)
 {
@@ -1753,7 +1759,7 @@
                ev->request_code, ev->minor_code, buf);
      }
 
-   Mode.events.last_error_code = ev->error_code;
+   Dpy.last_error_code = ev->error_code;
 
    return 0;
 }
@@ -1789,34 +1795,34 @@
 void
 EGrabServer(void)
 {
-   if (Mode.grabs.server_grabbed <= 0)
+   if (Dpy.server_grabbed <= 0)
      {
        if (EDebug(EDBUG_TYPE_GRABS))
           Eprintf("EGrabServer\n");
        XGrabServer(disp);
      }
-   Mode.grabs.server_grabbed++;
+   Dpy.server_grabbed++;
 }
 
 void
 EUngrabServer(void)
 {
-   if (Mode.grabs.server_grabbed == 1)
+   if (Dpy.server_grabbed == 1)
      {
        XUngrabServer(disp);
        XFlush(disp);
        if (EDebug(EDBUG_TYPE_GRABS))
           Eprintf("EUngrabServer\n");
      }
-   Mode.grabs.server_grabbed--;
-   if (Mode.grabs.server_grabbed < 0)
-      Mode.grabs.server_grabbed = 0;
+   Dpy.server_grabbed--;
+   if (Dpy.server_grabbed < 0)
+      Dpy.server_grabbed = 0;
 }
 
 int
 EServerIsGrabbed(void)
 {
-   return Mode.grabs.server_grabbed;
+   return Dpy.server_grabbed;
 }
 
 void
@@ -1846,7 +1852,7 @@
    int                 i, num;
    Visual             *vis;
 
-   xvit.screen = VRoot.scr;
+   xvit.screen = Dpy.screen;
    xvit.depth = 32;
 #if __cplusplus
    xvit.c_class = TrueColor;
===================================================================
RCS file: /cvs/e/e16/e/src/xwin.h,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- xwin.h      29 Mar 2008 10:48:45 -0000      1.41
+++ xwin.h      29 Mar 2008 17:18:58 -0000      1.42
@@ -28,7 +28,31 @@
 #include <X11/extensions/shape.h>
 #include "util.h"
 
-__EXPORT__ extern Display *disp;
+typedef struct _xwin *Win;
+
+typedef struct {
+   Display            *disp;
+   char               *name;
+   int                 screens;
+   int                 screen;
+   unsigned int        pixel_black;
+   unsigned int        pixel_white;
+
+   Win                 rroot;  /* Real root window */
+   Win                 vroot;  /* Virtual root window */
+
+   int                 server_grabbed;
+
+   unsigned char       last_error_code;
+} EDisplay;
+
+__EXPORT__ extern EDisplay Dpy;
+
+#define disp  Dpy.disp
+#define RROOT Dpy.rroot
+#define VROOT Dpy.vroot
+
+void                EXInit(void);
 
 int                 EDisplayOpen(const char *dstr, int scr);
 void                EDisplayClose(void);
@@ -58,7 +82,6 @@
 
 Time                EGetTimestamp(void);
 
-typedef struct _xwin *Win;
 typedef void        (EventCallbackFunc) (Win win, XEvent * ev, void *prm);
 
 #define NoWin ((Win)0)
===================================================================
RCS file: /cvs/e/e16/e/src/zoom.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -3 -r1.44 -r1.45
--- zoom.c      24 Mar 2008 11:12:40 -0000      1.44
+++ zoom.c      29 Mar 2008 17:18:58 -0000      1.45
@@ -44,8 +44,8 @@
 static void
 FillStdVidModes(void)
 {
-   XF86VidModeGetAllModeLines(disp, VRoot.scr, &std_vid_modes_num,
-                             &std_vid_modes);
+   XF86VidModeGetAllModeLines(disp, Dpy.screen,
+                             &std_vid_modes_num, &std_vid_modes);
 }
 
 static XF86VidModeModeInfo *
@@ -93,34 +93,37 @@
 {
    static int          vp_x, vp_y;
    XF86VidModeModeInfo *mode = NULL;
+   int                 scr;
+
+   scr = Dpy.screen;
 
    if (inout)
      {
        XF86VidModeModeLine curmode;
        int                 dotclock;
 
-       if (!XF86VidModeGetModeLine(disp, VRoot.scr, &dotclock, &curmode))
+       if (!XF86VidModeGetModeLine(disp, scr, &dotclock, &curmode))
           return mode;
-       XF86VidModeGetViewPort(disp, VRoot.scr, &vp_x, &vp_y);
+       XF86VidModeGetViewPort(disp, scr, &vp_x, &vp_y);
 
        mode = FindMode(w, h);
        if (mode)
          {
-            XF86VidModeLockModeSwitch(disp, VRoot.scr, 0);
+            XF86VidModeLockModeSwitch(disp, scr, 0);
             std_vid_mode_cur = GetModeIndex(dotclock, &curmode);
-            XF86VidModeSwitchToMode(disp, VRoot.scr, mode);
-            XF86VidModeSetViewPort(disp, VRoot.scr, x, y);
-            XF86VidModeLockModeSwitch(disp, VRoot.scr, 1);
+            XF86VidModeSwitchToMode(disp, scr, mode);
+            XF86VidModeSetViewPort(disp, scr, x, y);
+            XF86VidModeLockModeSwitch(disp, scr, 1);
          }
      }
    else
      {
        mode = std_vid_modes[std_vid_mode_cur];
-       XF86VidModeLockModeSwitch(disp, VRoot.scr, 0);
-       XF86VidModeSwitchToMode(disp, VRoot.scr, mode);
-       XF86VidModeSetViewPort(disp, VRoot.scr, vp_x, vp_y);
+       XF86VidModeLockModeSwitch(disp, scr, 0);
+       XF86VidModeSwitchToMode(disp, scr, mode);
+       XF86VidModeSetViewPort(disp, scr, vp_x, vp_y);
 #if 0                          /* No, don't lock or we can't switch resolution 
*/
-       XF86VidModeLockModeSwitch(disp, VRoot.scr, 1);
+       XF86VidModeLockModeSwitch(disp, scr, 1);
 #endif
      }
    return mode;
@@ -187,7 +190,7 @@
       return 0;
 
    win = ECreateWindow(VROOT, x, y, w, h, 0);
-   ESetWindowBackground(win, BlackPixel(disp, VRoot.scr));
+   ESetWindowBackground(win, Dpy.pixel_black);
    ERaiseWindow(win);
    EMapWindow(win);
 



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to