Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
      Tag: branch-exp
        E.h buttons.c dialog.c econfig.c evhandlers.c finders.c x.c 


Log Message:
Buttons and Dialogs now use new event dispatching.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.314.2.9
retrieving revision 1.314.2.10
diff -u -3 -r1.314.2.9 -r1.314.2.10
--- E.h 8 Aug 2004 22:49:04 -0000       1.314.2.9
+++ E.h 9 Aug 2004 22:35:19 -0000       1.314.2.10
@@ -1576,11 +1576,6 @@
                                      Window WindowToEmbed);
 void                ButtonFindEmptySpotFor(Button * bt, const char *listname,
                                           char dirtomove);
-int                 ButtonsEventExpose(XEvent * ev);
-int                 ButtonsEventMouseDown(XEvent * ev);
-int                 ButtonsEventMouseUp(XEvent * ev);
-int                 ButtonsEventMouseIn(XEvent * ev);
-int                 ButtonsEventMouseOut(XEvent * ev);
 int                 ButtonsConfigLoad(FILE * fs);
 int                 ButtonsConfigSave(FILE * fs);
 
@@ -1771,13 +1766,8 @@
 void                DialogAlert(const char *fmt, ...);
 void                DialogAlertOK(const char *fmt, ...);
 
-int                 DialogEventKeyPress(XEvent * ev);
-int                 DialogEventMotion(XEvent * ev);
-int                 DialogEventExpose(XEvent * ev);
-int                 DialogEventMouseDown(XEvent * ev);
-int                 DialogEventMouseUp(XEvent * ev);
-int                 DialogEventMouseIn(XEvent * ev);
-int                 DialogEventMouseOut(XEvent * ev);
+EWin               *FindEwinByDialog(Dialog * d);
+int                 FindADialog(void);
 
 /* dock.c */
 void                DockIt(EWin * ewin);
@@ -1945,11 +1935,6 @@
 EWin              **EwinListTransients(EWin * ewin, int *num, int group);
 EWin              **EwinListTransientFor(EWin * ewin, int *num);
 EWin              **ListGroupMembers(Window win, int *num);
-EWin               *FindEwinByDialog(Dialog * d);
-Dialog             *FindDialogButton(Window win, int *bnum);
-Dialog             *FindDialog(Window win);
-int                 FindADialog(void);
-DItem              *FindDialogItem(Window win, Dialog ** dret);
 
 /* focus.c */
 #define FOCUS_SET         0
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/buttons.c,v
retrieving revision 1.36.2.1
retrieving revision 1.36.2.2
diff -u -3 -r1.36.2.1 -r1.36.2.2
--- buttons.c   8 Aug 2004 22:31:40 -0000       1.36.2.1
+++ buttons.c   9 Aug 2004 22:35:19 -0000       1.36.2.2
@@ -63,6 +63,8 @@
    unsigned int        ref_count;
 };
 
+static void         ButtonHandleEvents(XEvent * ev, void *btn);
+
 Button             *
 ButtonCreate(const char *name, int id, ImageClass * iclass,
             ActionClass * aclass, TextClass * tclass, char *label, char ontop,
@@ -74,6 +76,9 @@
 
    EDBUG(5, "ButtonCreate");
 
+   if (desk < 0 || desk >= ENLIGHTENMENT_CONF_NUM_DESKTOPS)
+      return NULL;
+
    b = Emalloc(sizeof(Button));
 
    b->name = Estrdup(name);
@@ -129,13 +134,12 @@
    b->default_show = 1;
    b->used = 0;
    b->left = 0;
-   b->win =
-      ECreateWindow(desks.desk[desk % ENLIGHTENMENT_CONF_NUM_DESKTOPS].win,
-                   -100, -100, 50, 50, 0);
+   b->win = ECreateWindow(desks.desk[desk].win, -100, -100, 50, 50, 0);
    XSelectInput(disp, b->win,
-               ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask
-               | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask |
+               ExposureMask | KeyPressMask | KeyReleaseMask | ButtonPressMask |
+               ButtonReleaseMask | EnterWindowMask | LeaveWindowMask |
                PointerMotionMask);
+   EventCallbackRegister(b->win, 0, ButtonHandleEvents, b);
    b->x = -1;
    b->y = -1;
    b->w = -1;
@@ -554,26 +558,25 @@
 }
 
 int
-ButtonEmbedWindow(Button * ButtonToUse, Window WindowToEmbed)
+ButtonEmbedWindow(Button * b, Window WindowToEmbed)
 {
 
    unsigned int        w, h;
 
    EDBUG(4, "ButtonEmbedWindow");
-   EReparentWindow(disp, WindowToEmbed, ButtonToUse->win, 0, 0);
-   ButtonToUse->inside_win = WindowToEmbed;
+   EReparentWindow(disp, WindowToEmbed, b->win, 0, 0);
+   b->inside_win = WindowToEmbed;
    GetWinWH(WindowToEmbed, &w, &h);
-   EMoveWindow(disp, ButtonToUse->inside_win, (ButtonToUse->w - w) >> 1,
-              (ButtonToUse->h - h) >> 1);
-   ButtonToUse->event_win = ECreateEventWindow(ButtonToUse->win, 0, 0, w, h);
+   EMoveWindow(disp, b->inside_win, (b->w - w) >> 1, (b->h - h) >> 1);
+   b->event_win = ECreateEventWindow(b->win, 0, 0, w, h);
+   EventCallbackRegister(b->event_win, 0, ButtonHandleEvents, b);
 
-   XSelectInput(disp, ButtonToUse->event_win,
+   XSelectInput(disp, b->event_win,
                ButtonPressMask | ButtonReleaseMask | EnterWindowMask |
                LeaveWindowMask | ButtonMotionMask);
 
-   EMoveWindow(disp, ButtonToUse->event_win, (ButtonToUse->w - w) >> 1,
-              (ButtonToUse->h - h) >> 1);
-   EMapRaised(disp, ButtonToUse->event_win);
+   EMoveWindow(disp, b->event_win, (b->w - w) >> 1, (b->h - h) >> 1);
+   EMapRaised(disp, b->event_win);
 
    EDBUG_RETURN(0);
 }
@@ -658,189 +661,115 @@
  * Button event handlers
  */
 
-int
-ButtonsEventExpose(XEvent * ev)
+static void
+ButtonEventExpose(Button * b, XEvent * ev __UNUSED__)
 {
-   int                 used = 0;
-   int                 i, num;
-   Button            **buttons;
-   Window              win = ev->xexpose.window;
-
-   buttons = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
-   if (buttons == NULL)
-      return 0;
-
-   for (i = 0; i < num; i++)
-     {
-       if (win != buttons[i]->win)
-          continue;
-
-       ButtonDraw(buttons[i]);
-       used = 1;
-       break;
-     }
-   Efree(buttons);
-
-   return used;
+   ButtonDraw(b);
 }
 
-int
-ButtonsEventMouseDown(XEvent * ev)
+static void
+ButtonEventMouseDown(Button * b, XEvent * ev)
 {
-   int                 used = 0;
-   int                 i, num;
-   Button            **buttons;
    Window              win = ev->xbutton.window;
    ActionClass        *ac;
 
-   buttons = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
-   if (buttons == NULL)
-      return 0;
+   GrabThePointer(win, ECSR_GRAB);
 
-   for (i = 0; i < num; i++)
+   if (b->inside_win)
      {
-       if ((win != buttons[i]->win) && (win != buttons[i]->event_win))
-          continue;
-
-       GrabThePointer(win, ECSR_GRAB);
-       if (buttons[i]->inside_win)
-         {
-            Window              id = ev->xany.window;  /* ??? */
-
-            ev->xany.window = buttons[i]->inside_win;
-            XSendEvent(disp, buttons[i]->inside_win, False,
-                       ButtonPressMask, ev);
-            ev->xany.window = id;
-         }
-
-       Mode.button = buttons[i];
-       buttons[i]->state = STATE_CLICKED;
-       ButtonDraw(buttons[i]);
-       ac = FindItem("ACTION_BUTTON_DRAG", 0, LIST_FINDBY_NAME,
-                     LIST_TYPE_ACLASS);
-       if (ac)
-          EventAclass(ev, NULL, ac);
-       if (buttons[i]->aclass)
-          EventAclass(ev, NULL, buttons[i]->aclass);
-       used = 1;
-       break;
+       ev->xbutton.window = b->inside_win;
+       XSendEvent(disp, b->inside_win, False, ButtonPressMask, ev);
+       ev->xbutton.window = win;
      }
-   Efree(buttons);
 
-   return used;
+   Mode.button = b;
+   b->state = STATE_CLICKED;
+   ButtonDraw(b);
+
+   ac = FindItem("ACTION_BUTTON_DRAG", 0, LIST_FINDBY_NAME, LIST_TYPE_ACLASS);
+   if (ac)
+      EventAclass(ev, NULL, ac);
+   if (b->aclass)
+      EventAclass(ev, NULL, b->aclass);
 }
 
-int
-ButtonsEventMouseUp(XEvent * ev)
+static void
+ButtonEventMouseUp(Button * b, XEvent * ev)
 {
-   int                 used = 0;
-   int                 i, num;
-   Button            **buttons;
    Window              win = ev->xbutton.window;
 
-   buttons = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
-   if (buttons == NULL)
-      return 0;
-
-   for (i = 0; i < num; i++)
+   if (b->inside_win && !Mode.action_inhibit)
      {
-       if ((win != buttons[i]->win) && (win != buttons[i]->event_win))
-          continue;
-
-       if (buttons[i]->inside_win && !Mode.action_inhibit)
-         {
-            Window              id = ev->xany.window;  /* ??? */
-
-            ev->xany.window = buttons[i]->inside_win;
-            XSendEvent(disp, buttons[i]->inside_win, False,
-                       ButtonReleaseMask, ev);
-            ev->xany.window = id;
-         }
-       Mode.button = buttons[i];
-       if ((buttons[i]->state == STATE_CLICKED) && (!buttons[i]->left))
-          buttons[i]->state = STATE_HILITED;
-       else
-          buttons[i]->state = STATE_NORMAL;
-       buttons[i]->left = 0;
-       ButtonDraw(buttons[i]);
-       if (buttons[i]->aclass)
-          EventAclass(ev, NULL, buttons[i]->aclass);
-       used = 1;
-       break;
+       ev->xbutton.window = b->inside_win;
+       XSendEvent(disp, b->inside_win, False, ButtonReleaseMask, ev);
+       ev->xbutton.window = win;
      }
-   Efree(buttons);
 
-   return used;
+   Mode.button = b;
+   if ((b->state == STATE_CLICKED) && (!b->left))
+      b->state = STATE_HILITED;
+   else
+      b->state = STATE_NORMAL;
+   b->left = 0;
+   ButtonDraw(b);
+
+   if (b->aclass)
+      EventAclass(ev, NULL, b->aclass);
 }
 
-int
-ButtonsEventMouseIn(XEvent * ev)
+static void
+ButtonEventMouseIn(Button * b, XEvent * ev)
 {
-   int                 used = 0;
-   int                 i, num;
-   Button            **buttons;
-   Window              win = ev->xcrossing.window;
-
-   buttons = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
-   if (buttons == NULL)
-      return 0;
-
-   for (i = 0; i < num; i++)
+   Mode.button = b;
+   if (b->state == STATE_CLICKED)
+      b->left = 0;
+   else
      {
-       if ((win != buttons[i]->win) && (win != buttons[i]->event_win))
-          continue;
-
-       Mode.button = buttons[i];
-       if (buttons[i]->state == STATE_CLICKED)
-          buttons[i]->left = 0;
-       else
-         {
-            buttons[i]->state = STATE_HILITED;
-            ButtonDraw(buttons[i]);
-            if (buttons[i]->aclass)
-               EventAclass(ev, NULL, buttons[i]->aclass);
-         }
-       used = 1;
-       break;
+       b->state = STATE_HILITED;
+       ButtonDraw(b);
+       if (b->aclass)
+          EventAclass(ev, NULL, b->aclass);
      }
-   Efree(buttons);
-
-   return used;
 }
 
-int
-ButtonsEventMouseOut(XEvent * ev)
+static void
+ButtonEventMouseOut(Button * b, XEvent * ev)
 {
-   int                 used = 0;
-   int                 i, num;
-   Button            **buttons;
-   Window              win = ev->xcrossing.window;
+   Mode.button = NULL;
+   if (b->state == STATE_CLICKED)
+      b->left = 1;
+   else
+     {
+       b->state = STATE_NORMAL;
+       ButtonDraw(b);
+       if (b->aclass)
+          EventAclass(ev, NULL, b->aclass);
+     }
+}
 
-   buttons = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
-   if (buttons == NULL)
-      return 0;
+static void
+ButtonHandleEvents(XEvent * ev, void *prm)
+{
+   Button             *b = (Button *) prm;
 
-   for (i = 0; i < num; i++)
+   switch (ev->type)
      {
-       if ((win != buttons[i]->win) && (win != buttons[i]->event_win))
-          continue;
-
-       Mode.button = NULL;
-       if (buttons[i]->state == STATE_CLICKED)
-          buttons[i]->left = 1;
-       else
-         {
-            buttons[i]->state = STATE_NORMAL;
-            ButtonDraw(buttons[i]);
-            if (buttons[i]->aclass)
-               EventAclass(ev, NULL, buttons[i]->aclass);
-         }
-       used = 1;
+     case ButtonPress:
+       ButtonEventMouseDown(b, ev);
+       break;
+     case ButtonRelease:
+       ButtonEventMouseUp(b, ev);
+       break;
+     case EnterNotify:
+       ButtonEventMouseIn(b, ev);
+       break;
+     case LeaveNotify:
+       ButtonEventMouseOut(b, ev);
+       break;
+     case Expose:
+       ButtonEventExpose(b, ev);
        break;
      }
-   Efree(buttons);
-
-   return used;
 }
 
 /*
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/dialog.c,v
retrieving revision 1.91.2.3
retrieving revision 1.91.2.4
diff -u -3 -r1.91.2.3 -r1.91.2.4
--- dialog.c    7 Aug 2004 15:34:26 -0000       1.91.2.3
+++ dialog.c    9 Aug 2004 22:35:19 -0000       1.91.2.4
@@ -153,8 +153,9 @@
    item;
 };
 
-typedef struct _dbutton
+typedef struct
 {
+   Dialog             *parent;
    char               *text;
    void                (*func) (int val, void *data);
    Window              win;
@@ -164,17 +165,15 @@
    char                close;
    TextClass          *tclass;
    ImageClass         *iclass;
-}
-DButton;
+} DButton;
 
-typedef struct _Dkeybind
+typedef struct
 {
    KeyCode             key;
    int                 val;
    void               *data;
    void                (*func) (int val, void *data);
-}
-DKeyBind;
+} DKeyBind;
 
 struct _dialog
 {
@@ -195,6 +194,11 @@
    DKeyBind           *keybindings;
 };
 
+static Dialog      *FindDialog(Window win);
+
+static void         DialogHandleEvents(XEvent * ev, void *prm);
+static void         DButtonHandleEvents(XEvent * ev, void *prm);
+
 static void         MoveTableBy(Dialog * d, DItem * di, int dx, int dy);
 static void         DialogItemsRealize(Dialog * d);
 
@@ -311,6 +315,7 @@
    d->win = 0;
    d->button = NULL;
    d->win = ECreateWindow(VRoot.win, -20, -20, 2, 2, 0);
+   EventCallbackRegister(d->win, 0, DialogHandleEvents, d);
 
    d->item = NULL;
    d->exit_func = NULL;
@@ -419,12 +424,16 @@
    int                 w, h;
 
    db = Emalloc(sizeof(DButton));
+
    d->num_buttons++;
    d->button = Erealloc(d->button, d->num_buttons * (sizeof(DButton *)));
    d->button[d->num_buttons - 1] = db;
+
+   db->parent = d;
    db->text = Estrdup(text);
    db->func = func;
    db->win = ECreateWindow(d->win, -20, -20, 2, 2, 0);
+   EventCallbackRegister(db->win, 0, DButtonHandleEvents, db);
    EMapWindow(disp, db->win);
    db->x = -1;
    db->y = -1;
@@ -463,57 +472,27 @@
 }
 
 static void
-DialogDrawButton(Dialog * d, int bnum)
+DialogDrawButton(Dialog * d __UNUSED__, DButton * db)
 {
    int                 state;
 
    state = STATE_NORMAL;
-   if ((d->button[bnum]->hilited) && (d->button[bnum]->clicked))
+   if ((db->hilited) && (db->clicked))
      {
        state = STATE_CLICKED;
      }
-   else if ((d->button[bnum]->hilited) && (!d->button[bnum]->clicked))
+   else if ((db->hilited) && (!db->clicked))
      {
        state = STATE_HILITED;
      }
-   else if (!(d->button[bnum]->hilited) && (d->button[bnum]->clicked))
+   else if (!(db->hilited) && (db->clicked))
      {
        state = STATE_CLICKED;
      }
-   IclassApply(d->button[bnum]->iclass, d->button[bnum]->win,
-              d->button[bnum]->w, d->button[bnum]->h, 0, 0, state, 0,
-              ST_WIDGET);
-   TclassApply(d->button[bnum]->iclass, d->button[bnum]->win,
-              d->button[bnum]->w, d->button[bnum]->h, 0, 0, state, 1,
-              d->button[bnum]->tclass, d->button[bnum]->text);
-}
 
-static void
-DialogActivateButton(Window win, int inclick)
-{
-   Dialog             *d;
-   int                 bnum;
-   char                doact = 0;
-
-   d = FindDialogButton(win, &bnum);
-   if (!d)
-      return;
-   if ((d->button[bnum]->hilited) && (d->button[bnum]->clicked)
-       && (inclick == 3))
-      doact = 1;
-   if (inclick == 0)
-      d->button[bnum]->hilited = 1;
-   if (inclick == 1)
-      d->button[bnum]->hilited = 0;
-   if (inclick == 2)
-      d->button[bnum]->clicked = 1;
-   if (inclick == 3)
-      d->button[bnum]->clicked = 0;
-   DialogDrawButton(d, bnum);
-   if ((doact) && (d->button[bnum]->func))
-      (d->button[bnum]->func) (bnum, d);
-   if ((doact) && (d->button[bnum]->close))
-      DialogClose(d);
+   IclassApply(db->iclass, db->win, db->w, db->h, 0, 0, state, 0, ST_WIDGET);
+   TclassApply(db->iclass, db->win, db->w, db->h, 0, 0, state, 1,
+              db->tclass, db->text);
 }
 
 static void
@@ -561,7 +540,7 @@
    IclassApply(d->iclass, d->win, d->w, d->h, 0, 0, STATE_NORMAL, 0, ST_DIALOG);
 
    for (i = 0; i < d->num_buttons; i++)
-      DialogDrawButton(d, i);
+      DialogDrawButton(d, d->button[i]);
 
    DialogDraw(d);
 }
@@ -971,6 +950,7 @@
 {
    const char         *def = NULL;
    int                 iw = 0, ih = 0;
+   int                 register_win_callback;
 
    if (di->type == DITEM_BUTTON)
      {
@@ -1035,6 +1015,8 @@
        for (i = 0; i < di->item.table.num_items; i++)
           DialogRealizeItem(d, di->item.table.items[i]);
      }
+
+   register_win_callback = 1;
    switch (di->type)
      {
      case DITEM_SLIDER:
@@ -1053,8 +1035,12 @@
        XSelectInput(disp, di->item.slider.base_win,
                     EnterWindowMask | LeaveWindowMask | ButtonPressMask |
                     ButtonReleaseMask);
+       EventCallbackRegister(di->item.slider.base_win, 0, DialogHandleEvents,
+                             d);
        XSelectInput(disp, di->item.slider.knob_win,
                     ButtonPressMask | ButtonReleaseMask | PointerMotionMask);
+       EventCallbackRegister(di->item.slider.knob_win, 0, DialogHandleEvents,
+                             d);
        if (!di->item.slider.ic_base)
          {
             if (di->item.slider.horizontal)
@@ -1206,6 +1192,7 @@
        XSelectInput(disp, di->item.area.area_win,
                     EnterWindowMask | LeaveWindowMask | ButtonPressMask |
                     ButtonReleaseMask | ExposureMask | PointerMotionMask);
+       EventCallbackRegister(di->item.area.area_win, 0, DialogHandleEvents, d);
        di->w = iw;
        di->h = ih;
        break;
@@ -1259,6 +1246,7 @@
                ih = imlib_image_get_height();
                di->win = ECreateWindow(d->win, 0, 0, iw, ih, 0);
                EMapWindow(disp, di->win);
+               register_win_callback = 0;
                imlib_render_pixmaps_for_whole_image(&pmap, &mask);
                ESetWindowBackgroundPixmap(disp, di->win, pmap);
                EShapeCombineMask(disp, di->win, ShapeBounding, 0,
@@ -1275,6 +1263,7 @@
        ih = di->iclass->padding.top + di->iclass->padding.bottom;
        di->win = ECreateWindow(d->win, -20, -20, 2, 2, 0);
        EMapWindow(disp, di->win);
+       register_win_callback = 0;
        di->w = iw;
        di->h = ih;
        break;
@@ -1544,6 +1533,9 @@
        di->h = 0;
        break;
      }
+
+   if (di->win && register_win_callback)
+      EventCallbackRegister(di->win, 0, DialogHandleEvents, d);
 }
 
 static void
@@ -1627,6 +1619,7 @@
        AddItem(dq, "DRAW", 0, LIST_TYPE_DRAW);
        EDBUG_RETURN_;
      }
+
    if (di->type == DITEM_TABLE)
      {
        int                 i;
@@ -1638,6 +1631,7 @@
          }
        return;
      }
+
    if (INTERSECTS(x, y, w, h, di->x, di->y, di->w, di->h))
      {
        switch (di->type)
@@ -2182,47 +2176,46 @@
  * Dialog event handlers
  */
 
-int
-DialogEventKeyPress(XEvent * ev)
+static void
+DialogEventKeyPress(Dialog * d, XEvent * ev)
 {
-   Dialog             *d;
    int                 i;
 
-   d = FindDialog(ev->xkey.window);
-   if (d == NULL)
-      return 0;
-
    for (i = 0; i < d->num_bindings; i++)
      {
        if (ev->xkey.keycode == d->keybindings[i].key)
           (d->keybindings[i].func) (d->keybindings[i].val,
                                     d->keybindings[i].data);
      }
+}
 
-   return 1;
+static DItem       *
+DialogFindDItem(Dialog * d, Window win)
+{
+   return (d->item) ? DialogItemFindWindow(d->item, win) : NULL;
 }
 
-int
-DialogEventMotion(XEvent * ev)
+static void
+DialogEventMotion(Dialog * d, XEvent * ev)
 {
-   Dialog             *d;
+   Window              win = ev->xmotion.window;
    DItem              *di;
    int                 dx, dy;
 
-   di = FindDialogItem(ev->xmotion.window, &d);
-   if (d == NULL)
-      return 0;
-
-   if (di == NULL)
-      goto done;
+   di = DialogFindDItem(d, win);
+   if (!di)
+      return;
 
-   if (di->type == DITEM_AREA)
+   switch (di->type)
      {
+     case DITEM_AREA:
        if (di->item.area.event_func)
-          (di->item.area.event_func) (0, ev);
-     }
-   else if ((di->type == DITEM_SLIDER) && (di->item.slider.in_drag))
-     {
+          di->item.area.event_func(0, ev);
+       break;
+
+     case DITEM_SLIDER:
+       if (!di->item.slider.in_drag)
+          break;
        if (ev->xmotion.window == di->item.slider.knob_win)
          {
             dx = Mode.x - Mode.px;
@@ -2262,87 +2255,52 @@
             if (di->func)
                (di->func) (di->val, di->data);
          }
+
        DialogDrawItems(d, di, 0, 0, 99999, 99999);
+       break;
      }
-
- done:
-   return 1;
 }
 
-int
-DialogEventExpose(XEvent * ev)
+static void
+DialogEventExpose(Dialog * d, XEvent * ev)
 {
    Window              win = ev->xexpose.window;
-   Dialog             *d;
-   int                 bnum;
    DItem              *di;
-   int                 x, y, w, h;
 
-   d = FindDialog(win);
-   if (d)
-     {
-       DialogDrawArea(d, ev->xexpose.x, ev->xexpose.y,
+   DialogDrawArea(d, ev->xexpose.x, ev->xexpose.y,
                       ev->xexpose.width, ev->xexpose.height);
-       goto done;
-     }
 
-   d = FindDialogButton(win, &bnum);
-   if (d)
-     {
-       DialogDrawButton(d, bnum);
-       goto done;
-     }
-
-   di = FindDialogItem(win, &d);
-   if (d == NULL)
-      return 0;
-
-   GetWinXY(win, &x, &y);
-   GetWinWH(win, (unsigned int *)&w, (unsigned int *)&h);
-   DialogDrawArea(d, x, y, w, h);
-
-   if (di == NULL)
-      goto done;
+   di = DialogFindDItem(d, win);
+   if (!di)
+      return;
 
-   if (di->type == DITEM_AREA)
+   switch (di->type)
      {
+     case DITEM_AREA:
        if (di->func)
-          (di->func) (di->val, di->data);
+          di->func(di->val, di->data);
+       break;
      }
-
- done:
-   return 1;
 }
 
-int
-DialogEventMouseDown(XEvent * ev)
+static void
+DialogEventMouseDown(Dialog * d, XEvent * ev)
 {
    Window              win = ev->xbutton.window;
-   Dialog             *d;
-   int                 bnum;
    DItem              *di;
 
-   d = FindDialogButton(win, &bnum);
-   if (d)
-     {
-       DialogActivateButton(win, 2);
-       goto done;
-     }
-
-   di = FindDialogItem(win, &d);
-   if (d == NULL)
-      return 0;
-
-   if (di == NULL)
-      goto done;
+   di = DialogFindDItem(d, win);
+   if (!di)
+      return;
 
-   if (di->type == DITEM_AREA)
+   switch (di->type)
      {
+     case DITEM_AREA:
        if (di->item.area.event_func)
-          (di->item.area.event_func) (0, ev);
-     }
-   else if (di->type == DITEM_SLIDER)
-     {
+          di->item.area.event_func(0, ev);
+       break;
+
+     case DITEM_SLIDER:
        if (win == di->item.slider.base_win)
          {
             if (di->item.slider.horizontal)
@@ -2378,240 +2336,285 @@
             else
                di->item.slider.wanted_val = di->item.slider.knob_y;
          }
+       break;
      }
+
    di->clicked = 1;
-   DialogDrawItems(d, di, 0, 0, 99999, 99999);
 
- done:
-   return 1;
+   DialogDrawItems(d, di, 0, 0, 99999, 99999);
 }
 
-int
-DialogEventMouseUp(XEvent * ev)
+static void
+DialogEventMouseUp(Dialog * d, XEvent * ev)
 {
    Window              win = Mode.context_win;
-   Dialog             *d;
-   int                 bnum;
-   DItem              *di;
-
-   d = FindDialogButton(win, &bnum);
-   if (d)
-     {
-       DialogActivateButton(win, 3);
-       goto done;
-     }
-
-   di = FindDialogItem(win, &d);
-   if (d == NULL)
-      return 0;
+   DItem              *di, *dii;
 
-   if (di == NULL)
-      goto done;
+   di = DialogFindDItem(d, win);
+   if (!di)
+      return;
 
    di->clicked = 0;
-   if (win)
+
+   switch (di->type)
      {
-       if (di->type == DITEM_AREA)
-         {
-            if (di->item.area.event_func)
-               (di->item.area.event_func) (0, ev);
-         }
-       else if (di->type == DITEM_CHECKBUTTON)
-         {
-            if (di->item.check_button.onoff)
-               di->item.check_button.onoff = 0;
-            else
-               di->item.check_button.onoff = 1;
-            if (di->item.check_button.onoff_ptr)
-               *di->item.check_button.onoff_ptr = di->item.check_button.onoff;
-         }
-       else if (di->type == DITEM_RADIOBUTTON)
-         {
-            DItem              *dii;
+     case DITEM_AREA:
+       if (di->item.area.event_func)
+          di->item.area.event_func(0, ev);
+       break;
 
-            dii = di->item.radio_button.first;
-            while (dii)
+     case DITEM_CHECKBUTTON:
+       if (di->item.check_button.onoff)
+          di->item.check_button.onoff = 0;
+       else
+          di->item.check_button.onoff = 1;
+       if (di->item.check_button.onoff_ptr)
+          *di->item.check_button.onoff_ptr = di->item.check_button.onoff;
+       break;
+
+     case DITEM_RADIOBUTTON:
+       dii = di->item.radio_button.first;
+       while (dii)
+         {
+            if (dii->item.radio_button.onoff)
               {
-                 if (dii->item.radio_button.onoff)
-                   {
-                      dii->item.radio_button.onoff = 0;
-                      DialogDrawItems(d, dii, 0, 0, 99999, 99999);
-                   }
-                 dii = dii->item.radio_button.next;
+                 dii->item.radio_button.onoff = 0;
+                 DialogDrawItems(d, dii, 0, 0, 99999, 99999);
               }
-            di->item.radio_button.onoff = 1;
-            if (di->item.radio_button.val_ptr)
-               *di->item.radio_button.val_ptr = di->item.radio_button.val;
-         }
-       else if (di->type == DITEM_SLIDER)
-         {
-            if (win == di->item.slider.knob_win)
-               di->item.slider.in_drag = 0;
+            dii = dii->item.radio_button.next;
          }
+       di->item.radio_button.onoff = 1;
+       if (di->item.radio_button.val_ptr)
+          *di->item.radio_button.val_ptr = di->item.radio_button.val;
+       break;
+     case DITEM_SLIDER:
+       if (win == di->item.slider.knob_win)
+          di->item.slider.in_drag = 0;
+       break;
      }
+
    DialogDrawItems(d, di, 0, 0, 99999, 99999);
-   if (win)
-     {
-       if (di->func)
-          (di->func) (di->val, di->data);
-     }
 
- done:
-   return 1;
+   if (di->func)
+      di->func(di->val, di->data);
 }
 
-int
-DialogEventMouseIn(XEvent * ev)
+static void
+DialogEventMouseIn(Dialog * d, XEvent * ev)
 {
    Window              win = ev->xcrossing.window;
-   Dialog             *d;
-   int                 bnum;
    DItem              *di;
 
-   d = FindDialogButton(win, &bnum);
-   if (d)
+   di = DialogFindDItem(d, win);
+   if (!di)
+      return;
+
+   switch (di->type)
      {
-       DialogActivateButton(win, 0);
-       goto done;
+     case DITEM_AREA:
+       if (di->item.area.event_func)
+          di->item.area.event_func(0, ev);
+       break;
+
+     case DITEM_RADIOBUTTON:
+       if (di->item.radio_button.event_func)
+          di->item.radio_button.event_func(di->item.radio_button.val, ev);
+       break;
      }
 
-   di = FindDialogItem(win, &d);
-   if (d == NULL)
-      return 0;
+   di->hilited = 1;
+
+   DialogDrawItems(d, di, 0, 0, 99999, 99999);
+}
+
+static void
+DialogEventMouseOut(Dialog * d, XEvent * ev)
+{
+   Window              win = ev->xcrossing.window;
+   DItem              *di;
 
-   if (di == NULL)
-      goto done;
+   di = DialogFindDItem(d, win);
+   if (!di)
+      return;
 
-   if (di->type == DITEM_AREA)
+   switch (di->type)
      {
+     case DITEM_AREA:
        if (di->item.area.event_func)
-          (di->item.area.event_func) (0, ev);
-     }
-   else if (di->type == DITEM_RADIOBUTTON)
-     {
+          di->item.area.event_func(0, ev);
+       break;
+
+     case DITEM_RADIOBUTTON:
        if (di->item.radio_button.event_func)
-          (di->item.radio_button.event_func) (di->item.radio_button.val, ev);
+          di->item.radio_button.event_func(di->item.radio_button.val, NULL);
+       break;
      }
-   di->hilited = 1;
+
+   di->hilited = 0;
+
    DialogDrawItems(d, di, 0, 0, 99999, 99999);
+}
 
- done:
-   return 1;
+static void
+DialogHandleEvents(XEvent * ev, void *prm)
+{
+   Dialog             *d = (Dialog *) prm;
+
+   switch (ev->type)
+     {
+     case KeyPress:
+       DialogEventKeyPress(d, ev);
+       break;
+     case ButtonPress:
+       DialogEventMouseDown(d, ev);
+       break;
+     case ButtonRelease:
+       DialogEventMouseUp(d, ev);
+       break;
+     case MotionNotify:
+       DialogEventMotion(d, ev);
+       break;
+     case EnterNotify:
+       DialogEventMouseIn(d, ev);
+       break;
+     case LeaveNotify:
+       DialogEventMouseOut(d, ev);
+       break;
+     case Expose:
+       DialogEventExpose(d, ev);
+       break;
+     }
 }
 
-int
-DialogEventMouseOut(XEvent * ev)
+#if 0                          /* TBD */
+static void
+DItemHandleEvents(XEvent * ev, void *prm)
 {
-   Window              win = ev->xcrossing.window;
-   Dialog             *d;
-   int                 bnum;
-   DItem              *di;
+   DItem              *di = (Dialog *) prm;
+   Window              win = ev->xany.window;
 
-   d = FindDialogButton(win, &bnum);
-   if (d)
+   switch (ev->type)
      {
-       DialogActivateButton(win, 1);
-       goto done;
+     case ButtonPress:
+       break;
+     case ButtonRelease:
+       break;
+     case EnterNotify:
+       break;
+     case LeaveNotify:
+       break;
+     case Expose:
+       break;
      }
+}
+#endif
 
-   di = FindDialogItem(win, &d);
-   if (d == NULL)
-      return 0;
+static void
+DButtonHandleEvents(XEvent * ev, void *prm)
+{
+   DButton            *db = (DButton *) prm;
+   Dialog             *d;
+   int                 doact = 0;
 
-   if (di == NULL)
-      goto done;
+   d = db->parent;
 
-   if (di->type == DITEM_AREA)
+   switch (ev->type)
      {
-       if (di->item.area.event_func)
-          (di->item.area.event_func) (0, ev);
+     case ButtonPress:
+       db->clicked = 1;
+       break;
+     case ButtonRelease:
+       if (db->hilited && db->clicked)
+          doact = 1;
+       db->clicked = 0;
+       break;
+     case EnterNotify:
+       db->hilited = 1;
+       break;
+     case LeaveNotify:
+       db->hilited = 0;
+       break;
+     case Expose:
+       break;
+     default:
+       return;
      }
-   else if (di->type == DITEM_RADIOBUTTON)
+
+   DialogDrawButton(d, db);
+
+   if (doact)
      {
-       if (di->item.radio_button.event_func)
-          (di->item.radio_button.event_func) (di->item.radio_button.val, NULL);
-     }
-   di->hilited = 0;
-   DialogDrawItems(d, di, 0, 0, 99999, 99999);
+       if (db->func)
+         {
+            int                 i;
+
+            for (i = 0; i < d->num_buttons; i++)
+               if (d->button[i] == db)
+                  break;
+            db->func(i, d);
+         }
 
- done:
-   return 1;
+       if (db->close)
+          DialogClose(d);
+     }
 }
 
 /*
  * Finders
  */
 
-Dialog             *
-FindDialogButton(Window win, int *bnum)
+static Dialog      *
+FindDialog(Window win)
 {
    Dialog            **ds, *d = NULL;
-   int                 i, j, num, b = 0;
-
-   EDBUG(6, "FindDialogButton");
+   int                 i, num;
 
+   EDBUG(6, "FindDialog");
    ds = (Dialog **) ListItemType(&num, LIST_TYPE_DIALOG);
    for (i = 0; i < num; i++)
      {
-       for (j = 0; j < ds[i]->num_buttons; j++)
-         {
-            if (win != ds[i]->button[j]->win)
-               continue;
-            d = ds[i];
-            b = j;
-            goto done;
-         }
+       if (ds[i]->win != win)
+          continue;
+       d = ds[i];
+       break;
      }
- done:
    if (ds)
       Efree(ds);
-   *bnum = b;
    EDBUG_RETURN(d);
 }
 
-DItem              *
-FindDialogItem(Window win, Dialog ** dret)
+EWin               *
+FindEwinByDialog(Dialog * d)
 {
-   Dialog            **ds, *d = NULL;
-   DItem              *di = NULL;
+   EWin               *const *ewins;
    int                 i, num;
 
-   EDBUG(6, "FindDialogButton");
+   EDBUG(6, "FindEwinByDialog");
 
-   ds = (Dialog **) ListItemType(&num, LIST_TYPE_DIALOG);
+   ewins = EwinListGetAll(&num);
    for (i = 0; i < num; i++)
      {
-       if (!ds[i]->item)
-          continue;
-
-       di = DialogItemFindWindow(ds[i]->item, win);
-       if (di == NULL)
-          continue;
-       d = ds[i];
-       break;
+       if (ewins[i]->dialog == d)
+          return ewins[i];
      }
-   if (ds)
-      Efree(ds);
-   *dret = d;
-   EDBUG_RETURN(di);
+
+   EDBUG_RETURN(NULL);
 }
 
-Dialog             *
-FindDialog(Window win)
+int
+FindADialog(void)
 {
-   Dialog            **ds, *d = NULL;
-   int                 i, num;
+   EWin               *const *ewins;
+   int                 i, num, n;
 
-   EDBUG(6, "FindDialog");
-   ds = (Dialog **) ListItemType(&num, LIST_TYPE_DIALOG);
-   for (i = 0; i < num; i++)
+   EDBUG(6, "FindADialog");
+
+   ewins = EwinListGetAll(&num);
+   for (i = n = 0; i < num; i++)
      {
-       if (ds[i]->win != win)
-          continue;
-       d = ds[i];
-       break;
+       if (ewins[i]->dialog)
+          n++;
      }
-   if (ds)
-      Efree(ds);
-   EDBUG_RETURN(d);
+
+   EDBUG_RETURN(n);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/econfig.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- econfig.c   7 Aug 2004 15:34:26 -0000       1.1.2.3
+++ econfig.c   9 Aug 2004 22:35:19 -0000       1.1.2.4
@@ -27,6 +27,16 @@
 
 #include <Edb.h>
 
+/* Work around missing const in API */
+#define eX_db_int_get(edf, name, ptr) e_db_int_get(edf, (char*)name, ptr)
+#define eX_db_float_get(edf, name, ptr) e_db_float_get(edf, (char*)name, ptr)
+#define eX_db_str_get(edf, name) e_db_str_get(edf, (char*)name)
+#define eX_db_int_set(edf, name, val) e_db_int_set(edf, (char*)name, val)
+#define eX_db_float_set(edf, name, val) e_db_float_set(edf, (char*)name, val)
+#define eX_db_str_set(edf, name, val) e_db_str_set(edf, (char*)name, val)
+#define eX_db_open_read(file) e_db_open_read((char*)file)
+#define eX_db_open(file) e_db_open((char*)file)
+
 static void
 CfgItemLoad(E_DB_File * edf, const char *prefix, const CfgItem * ci)
 {
@@ -46,22 +56,22 @@
    switch (ci->type)
      {
      case ITEM_TYPE_BOOL:
-       if (!e_db_int_get(edf, name, &my_int))
+       if (!eX_db_int_get(edf, name, &my_int))
           my_int = (ci->dflt) ? 1 : 0;
        *((char *)ci->ptr) = my_int;
        break;
      case ITEM_TYPE_INT:
-       if (!e_db_int_get(edf, name, &my_int))
+       if (!eX_db_int_get(edf, name, &my_int))
           my_int = ci->dflt;
        *((int *)ci->ptr) = my_int;
        break;
      case ITEM_TYPE_FLOAT:
-       if (!e_db_float_get(edf, name, &my_float))
+       if (!eX_db_float_get(edf, name, &my_float))
           my_float = ci->dflt;
        *((float *)ci->ptr) = my_float;
        break;
      case ITEM_TYPE_STRING:
-       *((char **)ci->ptr) = e_db_str_get(edf, name);
+       *((char **)ci->ptr) = eX_db_str_get(edf, name);
        break;
      }
 }
@@ -83,16 +93,16 @@
    switch (ci->type)
      {
      case ITEM_TYPE_BOOL:
-       e_db_int_set(edf, name, *((char *)ci->ptr));
+       eX_db_int_set(edf, name, *((char *)ci->ptr));
        break;
      case ITEM_TYPE_INT:
-       e_db_int_set(edf, name, *((int *)ci->ptr));
+       eX_db_int_set(edf, name, *((int *)ci->ptr));
        break;
      case ITEM_TYPE_FLOAT:
-       e_db_float_set(edf, name, *((float *)ci->ptr));
+       eX_db_float_set(edf, name, *((float *)ci->ptr));
        break;
      case ITEM_TYPE_STRING:
-       e_db_str_set(edf, name, ci->ptr);
+       eX_db_str_set(edf, name, ci->ptr);
        break;
      }
 }
@@ -115,7 +125,7 @@
 
    memset(&Conf, 0, sizeof(EConf));
 
-   edf = e_db_open_read(ConfigurationGetFile(buf, sizeof(buf)));
+   edf = eX_db_open_read(ConfigurationGetFile(buf, sizeof(buf)));
    if (edf == NULL)
       return;
 
@@ -143,7 +153,7 @@
    char                buf[4096];
    E_DB_File          *edf;
 
-   edf = e_db_open(ConfigurationGetFile(buf, sizeof(buf)));
+   edf = eX_db_open(ConfigurationGetFile(buf, sizeof(buf)));
    if (edf == NULL)
       return;
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/evhandlers.c,v
retrieving revision 1.173.2.5
retrieving revision 1.173.2.6
diff -u -3 -r1.173.2.5 -r1.173.2.6
--- evhandlers.c        8 Aug 2004 00:02:18 -0000       1.173.2.5
+++ evhandlers.c        9 Aug 2004 22:35:19 -0000       1.173.2.6
@@ -114,14 +114,9 @@
 }
 
 void
-HandleKeyPress(XEvent * ev)
+HandleKeyPress(XEvent * ev __UNUSED__)
 {
    EDBUG(5, "HandleKeyPress");
-
-   if (DialogEventKeyPress(ev))
-      goto done;
-
- done:
    EDBUG_RETURN_;
 }
 
@@ -219,12 +214,6 @@
    if ( /*!Mode.menus.clicked && */ BordersEventMouseDown(ev))
       goto done;
 
-   if (ButtonsEventMouseDown(ev))
-      goto done;
-
-   if (DialogEventMouseDown(ev))
-      goto done;
-
    ewin = FindEwinByBase(win);
    if (ewin)
      {
@@ -308,12 +297,6 @@
    if (Mode.action_inhibit)
       goto done;
 
-   if (ButtonsEventMouseUp(ev))
-      goto done;
-
-   if (DialogEventMouseUp(ev))
-      goto done;
-
    ewin = FindEwinByBase(win);
    if (ewin)
      {
@@ -521,8 +504,6 @@
          }
      }
 
-   DialogEventMotion(ev);
-
    EDBUG_RETURN_;
 }
 
@@ -546,12 +527,6 @@
    if ( /*!Mode.menus.clicked && */ BordersEventMouseIn(ev))
       goto done;
 
-   if (ButtonsEventMouseIn(ev))
-      goto done;
-
-   if (DialogEventMouseIn(ev))
-      goto done;
-
  done:
    FocusHandleEnter(ev);
 
@@ -575,12 +550,6 @@
    if ( /*!Mode.menus.clicked && */ BordersEventMouseOut(ev))
       goto done;
 
-   if (ButtonsEventMouseOut(ev))
-      goto done;
-
-   if (DialogEventMouseOut(ev))
-      goto done;
-
  done:
    FocusHandleLeave(ev);
 
@@ -590,50 +559,11 @@
 void
 HandleFocusIn(XEvent * ev __UNUSED__)
 {
-#if 0
-   Window              win = ev->xfocus.window;
-   EWin               *ewin;
-
-   EDBUG(5, "HandleFocusIn");
-
-   ewin = FindItem(NULL, win, LIST_FINDBY_ID, LIST_TYPE_EWIN);
-   if (ewin && !ewin->active)
-     {
-       ewin->active = 1;
-       DrawEwin(ewin);
-
-       FocusEwinSetGrabs(ewin);
-     }
-
-   EDBUG_RETURN_;
-#endif
 }
 
 void
 HandleFocusOut(XEvent * ev __UNUSED__)
 {
-#if 0
-   Window              win = ev->xfocus.window;
-   EWin               *ewin;
-
-   EDBUG(5, "HandleFocusOut");
-
-   /* Do nothing if the focus is passed down to child */
-   if (ev->xfocus.detail == NotifyInferior)
-      goto done;
-
-   ewin = FindItem(NULL, win, LIST_FINDBY_ID, LIST_TYPE_EWIN);
-   if (ewin && ewin->active)
-     {
-       ewin->active = 0;
-       DrawEwin(ewin);
-
-       FocusEwinSetGrabs(ewin);
-     }
-
- done:
-   EDBUG_RETURN_;
-#endif
 }
 
 void
@@ -644,12 +574,6 @@
    if (BordersEventExpose(ev))
       goto done;
 
-   if (ButtonsEventExpose(ev))
-      goto done;
-
-   if (DialogEventExpose(ev))
-      goto done;
-
  done:
    EDBUG_RETURN_;
 }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/finders.c,v
retrieving revision 1.31
retrieving revision 1.31.2.1
diff -u -3 -r1.31 -r1.31.2.1
--- finders.c   19 Jun 2004 01:31:21 -0000      1.31
+++ finders.c   9 Aug 2004 22:35:20 -0000       1.31.2.1
@@ -460,39 +460,3 @@
    EDBUG_RETURN(lst);
 }
 #endif
-
-EWin               *
-FindEwinByDialog(Dialog * d)
-{
-   EWin               *const *ewins;
-   int                 i, num;
-
-   EDBUG(6, "FindEwinByDialog");
-
-   ewins = EwinListGetAll(&num);
-   for (i = 0; i < num; i++)
-     {
-       if (ewins[i]->dialog == d)
-          return ewins[i];
-     }
-
-   EDBUG_RETURN(NULL);
-}
-
-int
-FindADialog(void)
-{
-   EWin               *const *ewins;
-   int                 i, num, n;
-
-   EDBUG(6, "FindADialog");
-
-   ewins = EwinListGetAll(&num);
-   for (i = n = 0; i < num; i++)
-     {
-       if (ewins[i]->dialog)
-          n++;
-     }
-
-   EDBUG_RETURN(n);
-}
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/x.c,v
retrieving revision 1.71.2.2
retrieving revision 1.71.2.3
diff -u -3 -r1.71.2.2 -r1.71.2.3
--- x.c 31 Jul 2004 20:25:55 -0000      1.71.2.2
+++ x.c 9 Aug 2004 22:35:20 -0000       1.71.2.3
@@ -43,6 +43,9 @@
    Window              win;
    int                 x, y, w, h;
    char                mapped;
+   char                in_use;
+   char                do_del;
+   char                rsvd;
    int                 num_rect;
    int                 ord;
    XRectangle         *rects;
@@ -200,15 +203,23 @@
    if (xid == NULL)
       return;
 
+   xid->in_use = 1;
    ecl = &xid->cbl;
    eci = ecl->lst;
    for (i = 0; i < ecl->num; i++, eci++)
      {
-       if (EventDebug(200))
+       if (EventDebug(EDBUG_TYPE_DISPATCH))
           Eprintf("EventDispatch: type=%d win=%#lx func=%p prm=%p\n",
                   ev->type, ev->xany.window, eci->func, eci->prm);
        eci->func(ev, eci->prm);
+       if (xid->do_del)
+         {
+            xid->in_use = 0;
+            EDestroyWindow(disp, xid->win);    // Pass disp?
+            return;
+         }
      }
+   xid->in_use = 0;
 }
 
 Pixmap
@@ -319,7 +330,9 @@
 {
    EXID               *xid;
 
+#if 0                          /* FIXME */
    SlideoutsHideIfContextWin(win);
+#endif
 
    xid = FindXID(win);
    if (xid)
@@ -327,6 +340,11 @@
        EXID              **lst;
        int                 i, num;
 
+       if (xid->in_use)
+         {
+            xid->do_del = 1;
+            return;
+         }
        DelXID(win);
        XDestroyWindow(d, win);
        lst = (EXID **) ListItemType(&num, LIST_TYPE_XID);
@@ -345,11 +363,9 @@
 }
 
 void
-EForgetWindow(Display * d, Window win)
+EForgetWindow(Display * d __UNUSED__, Window win)
 {
    DelXID(win);
-   return;
-   d = NULL;
 }
 
 void
@@ -446,16 +462,13 @@
    gcv.tile = pmap;
    gcv.ts_x_origin = 0;
    gcv.ts_y_origin = 0;
-   tm = ECreatePixmap(disp, win, w, h, 1);
-   gc = XCreateGC(disp, tm, GCFillStyle | GCTile |
+   tm = ECreatePixmap(d, win, w, h, 1);
+   gc = XCreateGC(d, tm, GCFillStyle | GCTile |
                  GCTileStipXOrigin | GCTileStipYOrigin, &gcv);
-   XFillRectangle(disp, tm, gc, 0, 0, w, h);
-   XFreeGC(disp, gc);
-   EShapeCombineMask(disp, win, dest, x, y, tm, op);
-   EFreePixmap(disp, tm);
-
-   return;
-   d = NULL;
+   XFillRectangle(d, tm, gc, 0, 0, w, h);
+   XFreeGC(d, gc);
+   EShapeCombineMask(d, win, dest, x, y, tm, op);
+   EFreePixmap(d, tm);
 }
 
 void
@@ -807,7 +820,7 @@
 }
 
 void
-GrabX()
+GrabX(void)
 {
    EDBUG(6, "GrabX");
    if (Mode.server_grabbed <= 0)
@@ -817,7 +830,7 @@
 }
 
 void
-UngrabX()
+UngrabX(void)
 {
    EDBUG(6, "UngrabX");
    if (Mode.server_grabbed == 1)




-------------------------------------------------------
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

Reply via email to