Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
      Tag: branch-exp
        E.h Makefile.am events.c ewins.c 
Removed Files:
      Tag: branch-exp
        evhandlers.c 


Log Message:
Eliminate evhandlers.c.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.314.2.25
retrieving revision 1.314.2.26
diff -u -3 -r1.314.2.25 -r1.314.2.26
--- E.h 23 Aug 2004 21:14:42 -0000      1.314.2.25
+++ E.h 24 Aug 2004 18:15:10 -0000      1.314.2.26
@@ -1713,11 +1713,12 @@
 /* edge.c */
 void                EdgeWindowsShow(void);
 void                EdgeWindowsHide(void);
-void                EdgeHandleEnter(XEvent * ev);
-void                EdgeHandleLeave(XEvent * ev);
-void                EdgeHandleMotion(XEvent * ev);
 
 /* events.c */
+/* Re-mapped X-events */
+#define EX_EVENT_SHAPE_NOTIFY            64
+#define EX_EVENT_SCREEN_CHANGE_NOTIFY    65
+
 #define ENABLE_DEBUG_EVENTS 1
 #if ENABLE_DEBUG_EVENTS
 #define EDBUG_TYPE_EWINS       128
@@ -1743,19 +1744,6 @@
 void                EventDebugInit(const char *s);
 void                EventShow(const XEvent * ev);
 
-/* evhandlers.c */
-void                HandleMouseDown(XEvent * ev);
-void                HandleMouseUp(XEvent * ev);
-void                HandleMotion(XEvent * ev);
-void                HandleConfigureNotify(XEvent * ev);
-void                HandleConfigureRequest(XEvent * ev);
-void                HandleResizeRequest(XEvent * ev);
-void                HandleCirculateRequest(XEvent * ev);
-void                HandleProperty(XEvent * ev);
-void                HandleClientMessage(XEvent * ev);
-void                HandleChildShapeChange(XEvent * ev);
-void                HandleScreenChange(XEvent * ev);
-
 /* ewins.c */
 #define EWIN_CHANGE_NAME        (1<<0)
 #define EWIN_CHANGE_ICON_NAME   (1<<1)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Makefile.am,v
retrieving revision 1.43.2.8
retrieving revision 1.43.2.9
diff -u -3 -r1.43.2.8 -r1.43.2.9
--- Makefile.am 15 Aug 2004 16:25:32 -0000      1.43.2.8
+++ Makefile.am 24 Aug 2004 18:15:11 -0000      1.43.2.9
@@ -40,7 +40,6 @@
        edge.c                  \
        emodule.c               \
        events.c                \
-       evhandlers.c            \
        ewins.c                 \
        ewin-ops.c              \
        file.c                  \
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/events.c,v
retrieving revision 1.69.2.7
retrieving revision 1.69.2.8
diff -u -3 -r1.69.2.7 -r1.69.2.8
--- events.c    22 Aug 2004 01:30:08 -0000      1.69.2.7
+++ events.c    24 Aug 2004 18:15:11 -0000      1.69.2.8
@@ -85,6 +85,23 @@
 }
 
 static void
+ModeGetXY(Window rwin, int rx, int ry)
+{
+   Window              child;
+
+   if (Mode.wm.window)
+     {
+       XTranslateCoordinates(disp, rwin, VRoot.win,
+                             rx, ry, &Mode.x, &Mode.y, &child);
+     }
+   else
+     {
+       Mode.x = rx;
+       Mode.y = ry;
+     }
+}
+
+static void
 HandleEvent(XEvent * ev)
 {
    void              **lst;
@@ -134,6 +151,11 @@
 
    switch (ev->type)
      {
+       Slideout           *pslideout;
+
+     case KeyPress:            /*  2 */
+     case KeyRelease:          /*  3 */
+       break;
      case ButtonPress:         /*  4 */
        SoundPlay("SOUND_BUTTON_CLICK");
 
@@ -147,44 +169,87 @@
 
        if (Mode.double_click)
           ev->xbutton.time = 0;
-       HandleMouseDown(ev);
+       ModeGetXY(ev->xbutton.root, ev->xbutton.x_root, ev->xbutton.y_root);
        break;
      case ButtonRelease:       /*  5 */
        SoundPlay("SOUND_BUTTON_RAISE");
-       HandleMouseUp(ev);
+       /* DON'T handle clicks whilst moving/resizing things */
+       if ((Mode.mode != MODE_NONE) &&
+           (!((Mode.place) &&
+              (Mode.mode == MODE_MOVE_PENDING || Mode.mode == MODE_MOVE))))
+         {
+            if ((int)Mode.last_button != (int)ev->xbutton.button)
+               EDBUG_RETURN_;
+         }
+
+       ModeGetXY(ev->xbutton.root, ev->xbutton.x_root, ev->xbutton.y_root);
+
+       pslideout = Mode.slideout;
+
+       ActionsEnd(NULL);
+
+       if ((Mode.slideout) && (pslideout))
+          SlideoutHide(Mode.slideout);
+
+       Mode.action_inhibit = 0;
        break;
      case MotionNotify:        /*  6 */
        TooltipsHandleEvent();  /* TBD */
-       HandleMotion(ev);
+
+       Mode.px = Mode.x;
+       Mode.py = Mode.y;
+       ModeGetXY(ev->xmotion.root, ev->xmotion.x_root, ev->xmotion.y_root);
+
+       desks.current = DesktopAt(Mode.x, Mode.y);
+
+       if ((!(ev->xmotion.state
+              & (Button1Mask | Button2Mask | Button3Mask | Button4Mask |
+                 Button5Mask)) && (!Mode.place)))
+         {
+            if (ActionsEnd(NULL))
+               EDBUG_RETURN_;
+         }
+
+       ActionsHandleMotion();
        break;
      case EnterNotify:         /*  7 */
        Mode.context_win = ev->xany.window;
      case LeaveNotify:         /*  8 */
        break;
+     case MapRequest:          /* 20 */
+       break;
+     case ReparentNotify:      /* 21 */
+       break;
      case ConfigureNotify:     /* 22 */
-       HandleConfigureNotify(ev);
+       if (ev->xconfigure.window == VRoot.win)
+          DialogOK("Wheee! (ConfigureNotify)",
+                   "Screen size changed to\n%dx%d pixels",
+                   ev->xconfigure.width, ev->xconfigure.height);
        break;
      case ConfigureRequest:    /* 23 */
-       HandleConfigureRequest(ev);
        break;
      case ResizeRequest:       /* 25 */
-       HandleResizeRequest(ev);
        break;
      case CirculateRequest:    /* 27 */
-       HandleCirculateRequest(ev);
        break;
      case PropertyNotify:      /* 28 */
-       HandleProperty(ev);
        break;
      case ClientMessage:       /* 33 */
-       HandleClientMessage(ev);
+       HintsProcessClientMessage(&(ev->xclient));
        break;
      default:
        if (ev->type == event_base_shape + ShapeNotify)
-          HandleChildShapeChange(ev);
+          ev->type = EX_EVENT_SHAPE_NOTIFY;
 #ifdef USE_XRANDR
        else if (ev->type == event_base_randr + RRScreenChangeNotify)
-          HandleScreenChange(ev);
+         {
+            ev->type = EX_EVENT_SCREEN_CHANGE_NOTIFY;
+            XRRScreenChangeNotifyEvent *rrev =
+               (XRRScreenChangeNotifyEvent *) ev;
+            DialogOK("Wheee! (RRScreenChangeNotify)",
+                     "Screen size changed to\n%dx%d pixels (%dx%d millimeters)",
+                     rrev->width, rrev->height, rrev->mwidth, rrev->mheight);
+         }
 #endif
        break;
      }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/ewins.c,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -3 -r1.1.2.5 -r1.1.2.6
--- ewins.c     22 Aug 2004 01:30:08 -0000      1.1.2.5
+++ ewins.c     24 Aug 2004 18:15:11 -0000      1.1.2.6
@@ -1043,6 +1043,192 @@
    EwinWithdraw(ewin);
 }
 
+static void
+EwinEventConfigureRequest(EWin * ewin, XEvent * ev)
+{
+   Window              win, winrel;
+   EWin               *ewin2;
+   int                 x = 0, y = 0, w = 0, h = 0;
+   XWindowChanges      xwc;
+
+   win = ev->xconfigurerequest.window;
+
+   if (ewin)
+     {
+       x = ewin->x;
+       y = ewin->y;
+       w = ewin->client.w;
+       h = ewin->client.h;
+       winrel = 0;
+       if (ev->xconfigurerequest.value_mask & CWX)
+          x = ev->xconfigurerequest.x;
+       if (ev->xconfigurerequest.value_mask & CWY)
+          y = ev->xconfigurerequest.y;
+       if (ev->xconfigurerequest.value_mask & CWWidth)
+          w = ev->xconfigurerequest.width;
+       if (ev->xconfigurerequest.value_mask & CWHeight)
+          h = ev->xconfigurerequest.height;
+       if (ev->xconfigurerequest.value_mask & CWSibling)
+          winrel = ev->xconfigurerequest.above;
+       if (ev->xconfigurerequest.value_mask & CWStackMode)
+         {
+            ewin2 = FindItem(NULL, winrel, LIST_FINDBY_ID, LIST_TYPE_EWIN);
+            if (ewin2)
+               winrel = ewin2->win;
+            xwc.sibling = winrel;
+            xwc.stack_mode = ev->xconfigurerequest.detail;
+            if (Mode.mode == MODE_NONE)
+              {
+                 if (xwc.stack_mode == Above)
+                    RaiseEwin(ewin);
+                 else if (xwc.stack_mode == Below)
+                    LowerEwin(ewin);
+              }
+            /*        else
+             * XConfigureWindow(disp, ewin->win,
+             * ev->xconfigurerequest.value_mask &
+             * (CWSibling | CWStackMode), &xwc); */
+         }
+#if 0                          /* Let's try disabling this */
+       /* this ugly workaround here is because x11amp is very brain-dead */
+       /* and sets its minunum and maximm sizes the same - fair enough */
+       /* to ensure it doesnt get resized - BUT hwne it shades itself */
+       /* it resizes down to a smaller size - of course keeping the */
+       /* minimum and maximim size same - E unconditionally disallows any */
+       /* client window to be resized outside of its constraints */
+       /* (any client could do this resize - not just x11amp thus E is */
+       /* imposing the hints x11amp set up - this works around by */
+       /* modifying the constraints to fit what the app requested */
+       if (w < ewin->client.width.min)
+          ewin->client.width.min = w;
+       if (w > ewin->client.width.max)
+          ewin->client.width.max = w;
+       if (h < ewin->client.height.min)
+          ewin->client.height.min = h;
+       if (h > ewin->client.height.max)
+          ewin->client.height.max = h;
+#endif
+
+       if (ev->xconfigurerequest.value_mask & (CWX | CWY))
+         {
+            /* Correct position taking gravity into account */
+            ewin->client.x = x;
+            ewin->client.y = y;
+            EwinGetPosition(ewin, &x, &y);
+         }
+
+       Mode.move.check = 0;    /* Don't restrict client requests */
+       MoveResizeEwin(ewin, x, y, w, h);
+       Mode.move.check = 1;
+       if (Mode.mode == MODE_MOVE_PENDING || Mode.mode == MODE_MOVE)
+          ICCCM_Configure(ewin);
+       {
+          char                pshaped;
+
+          pshaped = ewin->client.shaped;
+          ICCCM_GetShapeInfo(ewin);
+          if (pshaped != ewin->client.shaped)
+            {
+               SyncBorderToEwin(ewin);
+               PropagateShapes(ewin->win);
+            }
+       }
+       ReZoom(ewin);
+     }
+   else
+     {
+       xwc.x = ev->xconfigurerequest.x;
+       xwc.y = ev->xconfigurerequest.y;
+       xwc.width = ev->xconfigurerequest.width;
+       xwc.height = ev->xconfigurerequest.height;
+       xwc.border_width = ev->xconfigurerequest.border_width;
+       xwc.sibling = ev->xconfigurerequest.above;
+       xwc.stack_mode = ev->xconfigurerequest.detail;
+       XConfigureWindow(disp, win, ev->xconfigurerequest.value_mask, &xwc);
+     }
+}
+
+static void
+EwinEventResizeRequest(EWin * ewin, XEvent * ev)
+{
+   Window              win;
+   int                 w, h;
+
+   win = ev->xresizerequest.window;
+
+   if (ewin)
+     {
+       w = ev->xresizerequest.width;
+       h = ev->xresizerequest.height;
+       ResizeEwin(ewin, w, h);
+       {
+          char                pshaped;
+
+          pshaped = ewin->client.shaped;
+          ICCCM_GetShapeInfo(ewin);
+          if (pshaped != ewin->client.shaped)
+            {
+               SyncBorderToEwin(ewin);
+               PropagateShapes(ewin->win);
+            }
+       }
+       ReZoom(ewin);
+     }
+   else
+     {
+       EResizeWindow(disp, win, ev->xresizerequest.width,
+                     ev->xresizerequest.height);
+     }
+}
+
+static void
+EwinEventCirculateRequest(EWin * ewin, XEvent * ev)
+{
+   Window              win;
+
+   win = ev->xcirculaterequest.window;
+
+   if (ewin)
+     {
+       if (ev->xcirculaterequest.place == PlaceOnTop)
+          RaiseEwin(ewin);
+       else
+          LowerEwin(ewin);
+     }
+   else
+     {
+       if (ev->xcirculaterequest.place == PlaceOnTop)
+          XRaiseWindow(disp, win);
+       else
+          XLowerWindow(disp, win);
+     }
+}
+
+static void
+EwinEventPropertyNotify(EWin * ewin, XEvent * ev)
+{
+   GrabX();
+   EwinChangesStart(ewin);
+
+   HintsProcessPropertyChange(ewin, ev->xproperty.atom);
+   SessionGetInfo(ewin, ev->xproperty.atom);
+   SyncBorderToEwin(ewin);
+
+   EwinChangesProcess(ewin);
+   UngrabX();
+}
+
+static void
+EwinEventShapeChange(EWin * ewin)
+{
+   const Border       *b;
+
+   b = ewin->border;
+   SyncBorderToEwin(ewin);
+   if (ewin->border == b)
+      PropagateShapes(ewin->win);
+}
+
 #if 0
 static void
 EwinEventVisibility(EWin * ewin __UNUSED__, int state __UNUSED__)
@@ -1558,6 +1744,18 @@
      case ButtonPress:
        FocusHandleClick(ewin, ev->xany.window);
        break;
+     case MapRequest:
+       EwinDeIconify(ewin);
+       break;
+     case ConfigureRequest:
+       EwinEventConfigureRequest(ewin, ev);
+       break;
+     case ResizeRequest:
+       EwinEventResizeRequest(ewin, ev);
+       break;
+     case CirculateRequest:
+       EwinEventCirculateRequest(ewin, ev);
+       break;
      default:
        Eprintf("EwinHandleEventsContainer: type=%2d win=%#lx: %s\n",
                ev->type, ewin->client.win, EwinGetTitle(ewin));
@@ -1581,7 +1779,6 @@
      case FocusOut:
      case ConfigureNotify:
      case GravityNotify:
-     case PropertyNotify:
        break;
      case DestroyNotify:
        EwinEventDestroy(ewin);
@@ -1592,6 +1789,20 @@
      case MapNotify:
        EwinEventMap(ewin);
        break;
+     case ConfigureRequest:
+       EwinEventConfigureRequest(ewin, ev);
+       break;
+     case ResizeRequest:
+       EwinEventResizeRequest(ewin, ev);
+       break;
+     case CirculateRequest:
+       EwinEventCirculateRequest(ewin, ev);
+       break;
+     case PropertyNotify:
+       EwinEventPropertyNotify(ewin, ev);
+       break;
+     case EX_EVENT_SHAPE_NOTIFY:
+       EwinEventShapeChange(ewin);
      default:
 #if DEBUG_EWIN_EVENTS
        Eprintf("EwinHandleEventsClient: type=%2d win=%#lx: %s\n",
@@ -1612,6 +1823,27 @@
      case MapRequest:
        AddToFamily(ev->xmaprequest.window);
        break;
+     case ConfigureRequest:
+#if 0
+       Eprintf("EwinHandleEventsRoot ConfigureRequest %#lx\n",
+               ev->xconfigurerequest.window);
+#endif
+       EwinEventConfigureRequest(NULL, ev);
+       break;
+     case ResizeRequest:
+#if 0
+       Eprintf("EwinHandleEventsRoot ResizeRequest %#lx\n",
+               ev->xresizerequest.window);
+#endif
+       EwinEventResizeRequest(NULL, ev);
+       break;
+     case CirculateRequest:
+#if 0
+       Eprintf("EwinHandleEventsRoot CirculateRequest %#lx\n",
+               ev->xcirculaterequest.window);
+#endif
+       EwinEventCirculateRequest(NULL, ev);
+       break;
      default:
 #if 0
        Eprintf("EwinHandleEventsRoot: type=%2d win=%#lx\n",




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