Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ewins.c ewmh.c gnome.c hints.c hints.h icccm.c 


Log Message:
Split client message processing into client and root message parts.

===================================================================
RCS file: /cvs/e/e16/e/src/ewins.c,v
retrieving revision 1.193
retrieving revision 1.194
diff -u -3 -r1.193 -r1.194
--- ewins.c     6 Apr 2007 21:44:22 -0000       1.193
+++ ewins.c     15 Apr 2007 14:34:45 -0000      1.194
@@ -2268,7 +2268,7 @@
        break;
 
      case ClientMessage:
-       HintsProcessClientMessage(&(ev->xclient));
+       HintsProcessClientClientMessage(ewin, &(ev->xclient));
        break;
 
      case EX_EVENT_SHAPE_NOTIFY:
@@ -2348,7 +2348,7 @@
        break;
 
      case ClientMessage:
-       HintsProcessClientMessage(&(ev->xclient));
+       HintsProcessRootClientMessage(&(ev->xclient));
        break;
 
      default:
===================================================================
RCS file: /cvs/e/e16/e/src/ewmh.c,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -3 -r1.112 -r1.113
--- ewmh.c      6 Mar 2007 03:33:31 -0000       1.112
+++ ewmh.c      15 Apr 2007 14:34:46 -0000      1.113
@@ -810,6 +810,25 @@
 }
 
 /*
+ * Process property change
+ */
+void
+EWMH_ProcessPropertyChange(EWin * ewin, Atom atom_change)
+{
+   if (atom_change == ECORE_X_ATOM_NET_WM_NAME)
+      EWMH_GetWindowName(ewin);
+   else if (atom_change == ECORE_X_ATOM_NET_WM_ICON_NAME)
+      EWMH_GetWindowIconName(ewin);
+   else if (atom_change == ECORE_X_ATOM_NET_WM_STRUT_PARTIAL ||
+           atom_change == ECORE_X_ATOM_NET_WM_STRUT)
+      EWMH_GetWindowStrut(ewin);
+   else if (atom_change == ECORE_X_ATOM_NET_WM_WINDOW_OPACITY)
+      EWMH_GetWindowOpacity(ewin);
+   else if (atom_change == ECORE_X_ATOM_NET_WM_USER_TIME)
+      EWMH_GetWindowUserTime(ewin);
+}
+
+/*
  * Process configuration requests from clients
  */
 static int
@@ -828,15 +847,8 @@
 }
 
 void
-EWMH_ProcessClientMessage(XClientMessageEvent * ev)
+EWMH_ProcessRootClientMessage(XClientMessageEvent * ev)
 {
-   EWin               *ewin;
-   int                 source;
-   Time                ts;
-
-   /*
-    * The ones that don't target an application window
-    */
    if (ev->message_type == ECORE_X_ATOM_NET_CURRENT_DESKTOP)
      {
        DeskGotoNum(ev->data.l[0]);
@@ -852,28 +864,24 @@
        EwinsShowDesktop(ev->data.l[0]);
        goto done;
      }
+#if 0                          /* These messages are sent to dedicated window 
*/
    else if (ev->message_type == ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN)
      {
-#if 0
-       Eprintf
-          ("EWMH_ProcessClientMessage: ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN: 
%lx: %s\n",
-           ev->window, (char *)ev->data.l);
-#endif
+       Eprintf("ECORE_X_ATOM_NET_STARTUP_INFO_BEGIN: %lx: %s\n",
+               ev->window, (char *)ev->data.l);
        goto done;
      }
    else if (ev->message_type == ECORE_X_ATOM_NET_STARTUP_INFO)
      {
-#if 0
-       Eprintf
-          ("EWMH_ProcessClientMessage: ECORE_X_ATOM_NET_STARTUP_INFO      : 
%lx: %s\n",
-           ev->window, (char *)ev->data.l);
-#endif
+       Eprintf("ECORE_X_ATOM_NET_STARTUP_INFO      : %lx: %s\n",
+               ev->window, (char *)ev->data.l);
        goto done;
      }
+#endif
+
+#if 0                          /* Obsolete? */
+   EWin               *ewin;
 
-   /*
-    * The ones that do target an application window
-    */
    ewin = EwinFindByClient(ev->window);
    if (ewin == NULL)
      {
@@ -898,6 +906,17 @@
          }
        goto done;
      }
+#endif
+
+ done:
+   ;
+}
+
+void
+EWMH_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * ev)
+{
+   int                 source;
+   Time                ts;
 
    if (ev->message_type == ECORE_X_ATOM_NET_ACTIVE_WINDOW)
      {
@@ -1084,23 +1103,4 @@
 
  done:
    ;
-}
-
-/*
- * Process received window property change
- */
-void
-EWMH_ProcessPropertyChange(EWin * ewin, Atom atom_change)
-{
-   if (atom_change == ECORE_X_ATOM_NET_WM_NAME)
-      EWMH_GetWindowName(ewin);
-   else if (atom_change == ECORE_X_ATOM_NET_WM_ICON_NAME)
-      EWMH_GetWindowIconName(ewin);
-   else if (atom_change == ECORE_X_ATOM_NET_WM_STRUT_PARTIAL ||
-           atom_change == ECORE_X_ATOM_NET_WM_STRUT)
-      EWMH_GetWindowStrut(ewin);
-   else if (atom_change == ECORE_X_ATOM_NET_WM_WINDOW_OPACITY)
-      EWMH_GetWindowOpacity(ewin);
-   else if (atom_change == ECORE_X_ATOM_NET_WM_USER_TIME)
-      EWMH_GetWindowUserTime(ewin);
 }
===================================================================
RCS file: /cvs/e/e16/e/src/gnome.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -3 -r1.69 -r1.70
--- gnome.c     17 Jan 2007 01:10:43 -0000      1.69
+++ gnome.c     15 Apr 2007 14:34:46 -0000      1.70
@@ -751,20 +751,14 @@
 }
 
 void
-GNOME_ProcessClientMessage(XClientMessageEvent * event)
+GNOME_ProcessRootClientMessage(XClientMessageEvent * event)
 {
-   static Atom         a2 = 0, a3 = 0, a4 = 0, a5 = 0;
-
-   EWin               *ewin;
+   static Atom         a2 = 0, a3 = 0;
 
    if (!a2)
       a2 = XInternAtom(disp, "_WIN_AREA", False);
    if (!a3)
       a3 = XInternAtom(disp, "_WIN_WORKSPACE", False);
-   if (!a4)
-      a4 = XInternAtom(disp, "_WIN_LAYER", False);
-   if (!a5)
-      a5 = XInternAtom(disp, "_WIN_STATE", False);
 
    if (event->message_type == a2)
      {
@@ -776,26 +770,30 @@
        DeskGotoNum(event->data.l[0]);
        return;
      }
+}
+
+void
+GNOME_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event)
+{
+   static Atom         a4 = 0, a5 = 0;
+
+   if (!a4)
+      a4 = XInternAtom(disp, "_WIN_LAYER", False);
+   if (!a5)
+      a5 = XInternAtom(disp, "_WIN_STATE", False);
+
    if (event->message_type == a4)
      {
-       ewin = EwinFindByClient(event->window);
-       if (ewin)
-         {
-            unsigned int        val;
-
-            val = event->data.l[0];
-            EoSetLayer(ewin, val);
-            ecore_x_window_prop_card32_set(EwinGetClientXwin(ewin), a4,
-                                           &val, 1);
-            EwinRaise(ewin);
-         }
+       unsigned int        val;
+
+       val = event->data.l[0];
+       EoSetLayer(ewin, val);
+       ecore_x_window_prop_card32_set(EwinGetClientXwin(ewin), a4, &val, 1);
+       EwinRaise(ewin);
        return;
      }
    if (event->message_type == a5)
      {
-       ewin = EwinFindByClient(event->window);
-       if (!ewin)
-          return;
        if (event->data.l[0] & WIN_STATE_FIXED_POSITION)
          {
             if (event->data.l[1] & WIN_STATE_FIXED_POSITION)
===================================================================
RCS file: /cvs/e/e16/e/src/hints.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -3 -r1.79 -r1.80
--- hints.c     7 Apr 2007 14:18:45 -0000       1.79
+++ hints.c     15 Apr 2007 14:34:46 -0000      1.80
@@ -266,7 +266,7 @@
 }
 
 void
-HintsProcessClientMessage(XClientMessageEvent * event)
+HintsProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event)
 {
    char               *name;
 
@@ -275,12 +275,35 @@
       return;
 
    if (!memcmp(name, "WM_", 3))
-      ICCCM_ProcessClientMessage(event);
+      ICCCM_ProcessClientClientMessage(ewin, event);
    else if (!memcmp(name, "_NET_", 5))
-      EWMH_ProcessClientMessage(event);
+      EWMH_ProcessClientClientMessage(ewin, event);
 #if ENABLE_GNOME
    else if (!memcmp(name, "_WIN_", 5))
-      GNOME_ProcessClientMessage(event);
+      GNOME_ProcessClientClientMessage(ewin, event);
+#endif
+   XFree(name);
+}
+
+void
+HintsProcessRootClientMessage(XClientMessageEvent * event)
+{
+   char               *name;
+
+   name = XGetAtomName(disp, event->message_type);
+   if (name == NULL)
+      return;
+
+#if 0
+   if (!memcmp(name, "WM_", 3))
+      ICCCM_ProcessRootClientMessage(event);
+   else
+#endif
+   if (!memcmp(name, "_NET_", 5))
+      EWMH_ProcessRootClientMessage(event);
+#if ENABLE_GNOME
+   else if (!memcmp(name, "_WIN_", 5))
+      GNOME_ProcessRootClientMessage(event);
 #endif
    XFree(name);
 }
===================================================================
RCS file: /cvs/e/e16/e/src/hints.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- hints.h     13 Jan 2007 19:14:27 -0000      1.11
+++ hints.h     15 Apr 2007 14:34:46 -0000      1.12
@@ -51,8 +51,11 @@
 void                EWMH_SetWindowActions(const EWin * ewin);
 void                EWMH_GetWindowHints(EWin * ewin);
 void                EWMH_DelWindowHints(const EWin * ewin);
-void                EWMH_ProcessClientMessage(XClientMessageEvent * event);
 void                EWMH_ProcessPropertyChange(EWin * ewin, Atom atom_change);
+void                EWMH_ProcessClientClientMessage(EWin * ewin,
+                                                   XClientMessageEvent *
+                                                   event);
+void                EWMH_ProcessRootClientMessage(XClientMessageEvent * event);
 
 #if ENABLE_GNOME
 /* gnome.c */
@@ -68,7 +71,10 @@
 void                GNOME_GetHints(EWin * ewin, Atom atom_change);
 void                GNOME_DelHints(const EWin * ewin);
 void                GNOME_SetHints(Window win_wm_check);
-void                GNOME_ProcessClientMessage(XClientMessageEvent * event);
+void                GNOME_ProcessClientClientMessage(EWin * ewin,
+                                                    XClientMessageEvent *
+                                                    event);
+void                GNOME_ProcessRootClientMessage(XClientMessageEvent * 
event);
 #endif
 
 /* hints.c */
@@ -91,7 +97,10 @@
 void                HintsGetWindowHints(EWin * ewin);
 void                HintsDelWindowHints(const EWin * ewin);
 void                HintsProcessPropertyChange(EWin * ewin, Atom atom_change);
-void                HintsProcessClientMessage(XClientMessageEvent * event);
+void                HintsProcessClientClientMessage(EWin * ewin,
+                                                   XClientMessageEvent *
+                                                   event);
+void                HintsProcessRootClientMessage(XClientMessageEvent * event);
 
 Pixmap              HintsGetRootPixmap(Win win);
 void                HintsSetRootHints(Win win);
@@ -110,7 +119,9 @@
 
 /* icccm.c */
 void                ICCCM_Init(void);
-void                ICCCM_ProcessClientMessage(XClientMessageEvent * event);
+void                ICCCM_ProcessClientClientMessage(EWin * ewin,
+                                                    XClientMessageEvent *
+                                                    event);
 void                ICCCM_GetTitle(EWin * ewin, Atom atom_change);
 void                ICCCM_Delete(const EWin * ewin);
 void                ICCCM_Save(const EWin * ewin);
===================================================================
RCS file: /cvs/e/e16/e/src/icccm.c,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -3 -r1.136 -r1.137
--- icccm.c     13 Jan 2007 19:14:28 -0000      1.136
+++ icccm.c     15 Apr 2007 14:34:46 -0000      1.137
@@ -54,17 +54,12 @@
 }
 
 void
-ICCCM_ProcessClientMessage(XClientMessageEvent * event)
+ICCCM_ProcessClientClientMessage(EWin * ewin, XClientMessageEvent * event)
 {
-   EWin               *ewin;
    Atom                a;
 
    if (event->message_type == ECORE_X_ATOM_WM_CHANGE_STATE)
      {
-       ewin = EwinFindByClient(event->window);
-       if (ewin == NULL)
-          return;
-
        if (event->data.l[0] == IconicState)
          {
             EwinIconify(ewin);



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to