Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ecore-e16.c ecore-e16.h events.c ewin-ops.c ewins.c ewins.h 
        ewmh.c ipc.c 


Log Message:
Action source handling - continued.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecore-e16.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- ecore-e16.c 30 Oct 2005 19:40:49 -0000      1.18
+++ ecore-e16.c 13 Nov 2005 01:22:28 -0000      1.19
@@ -847,11 +847,12 @@
 
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_ICON;
 
+Ecore_X_Atom        ECORE_X_ATOM_NET_WM_USER_TIME;
+
 #if 0                          /* Not used */
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_ICON_GEOMETRY;
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_PID;
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_HANDLED_ICONS;
-Ecore_X_Atom        ECORE_X_ATOM_NET_WM_USER_TIME;
 
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_PING;
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_SYNC_REQUEST;
@@ -863,9 +864,9 @@
 Ecore_X_Atom        ECORE_X_ATOM_NET_CLOSE_WINDOW;
 Ecore_X_Atom        ECORE_X_ATOM_NET_MOVERESIZE_WINDOW;
 Ecore_X_Atom        ECORE_X_ATOM_NET_WM_MOVERESIZE;
+Ecore_X_Atom        ECORE_X_ATOM_NET_RESTACK_WINDOW;
 
 #if 0                          /* Not yet implemented */
-Ecore_X_Atom        ECORE_X_ATOM_NET_RESTACK_WINDOW;
 Ecore_X_Atom        ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS;
 #endif
 
@@ -962,11 +963,12 @@
 
    ECORE_X_ATOM_NET_WM_ICON = _ATOM_GET("_NET_WM_ICON");
 
+   ECORE_X_ATOM_NET_WM_USER_TIME = _ATOM_GET("_NET_WM_USER_TIME");
+
 #if 0                          /* Not used */
    ECORE_X_ATOM_NET_WM_ICON_GEOMETRY = _ATOM_GET("_NET_WM_ICON_GEOMETRY");
    ECORE_X_ATOM_NET_WM_PID = _ATOM_GET("_NET_WM_PID");
    ECORE_X_ATOM_NET_WM_HANDLED_ICONS = _ATOM_GET("_NET_WM_HANDLED_ICONS");
-   ECORE_X_ATOM_NET_WM_USER_TIME = _ATOM_GET("_NET_WM_USER_TIME");
 
    ECORE_X_ATOM_NET_WM_PING = _ATOM_GET("_NET_WM_PING");
    ECORE_X_ATOM_NET_WM_SYNC_REQUEST = _ATOM_GET("_NET_WM_SYNC_REQUEST");
@@ -977,9 +979,9 @@
    ECORE_X_ATOM_NET_CLOSE_WINDOW = _ATOM_GET("_NET_CLOSE_WINDOW");
    ECORE_X_ATOM_NET_MOVERESIZE_WINDOW = _ATOM_GET("_NET_MOVERESIZE_WINDOW");
    ECORE_X_ATOM_NET_WM_MOVERESIZE = _ATOM_GET("_NET_WM_MOVERESIZE");
+   ECORE_X_ATOM_NET_RESTACK_WINDOW = _ATOM_GET("_NET_RESTACK_WINDOW");
 
 #if 0                          /* Not yet implemented */
-   ECORE_X_ATOM_NET_RESTACK_WINDOW = _ATOM_GET("_NET_RESTACK_WINDOW");
    ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS =
       _ATOM_GET("_NET_REQUEST_FRAME_EXTENTS");
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecore-e16.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- ecore-e16.h 10 Jul 2005 00:23:52 -0000      1.12
+++ ecore-e16.h 13 Nov 2005 01:22:28 -0000      1.13
@@ -179,11 +179,12 @@
 
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON;
 
+extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_USER_TIME;
+
 #if 0                          /* Not used */
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_ICON_GEOMETRY;
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_PID;
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_HANDLED_ICONS;
-extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_USER_TIME;
 
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_PING;
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_SYNC_REQUEST;
@@ -195,9 +196,9 @@
 extern Ecore_X_Atom ECORE_X_ATOM_NET_CLOSE_WINDOW;
 extern Ecore_X_Atom ECORE_X_ATOM_NET_MOVERESIZE_WINDOW;
 extern Ecore_X_Atom ECORE_X_ATOM_NET_WM_MOVERESIZE;
+extern Ecore_X_Atom ECORE_X_ATOM_NET_RESTACK_WINDOW;
 
 #if 0                          /* Not yet implemented */
-extern Ecore_X_Atom ECORE_X_ATOM_NET_RESTACK_WINDOW;
 extern Ecore_X_Atom ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS;
 #endif
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/events.c,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -3 -r1.107 -r1.108
--- events.c    9 Nov 2005 21:34:41 -0000       1.107
+++ events.c    13 Nov 2005 01:22:28 -0000      1.108
@@ -891,10 +891,10 @@
      case ClientMessage:
        txt = XGetAtomName(disp, ev->xclient.message_type);
        Eprintf
-          ("%#08lx EV-%s win=%#lx ev_type=%s(%ld) data[0-3]= %08lx %08lx %08lx 
%08lx\n",
+          ("%#08lx EV-%s win=%#lx ev_type=%s(%ld) data: %08lx %08lx %08lx 
%08lx %08lx\n",
            ser, name, win, txt, ev->xclient.message_type,
            ev->xclient.data.l[0], ev->xclient.data.l[1], ev->xclient.data.l[2],
-           ev->xclient.data.l[3]);
+           ev->xclient.data.l[3], ev->xclient.data.l[4]);
        XFree(txt);
        break;
      case MappingNotify:
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -3 -r1.78 -r1.79
--- ewin-ops.c  12 Nov 2005 19:55:42 -0000      1.78
+++ ewin-ops.c  13 Nov 2005 01:22:28 -0000      1.79
@@ -626,6 +626,7 @@
    if (lst)
       Efree(lst);
 
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
 
    call_depth--;
@@ -700,6 +701,7 @@
    if (lst)
       Efree(lst);
 
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
 
    call_depth--;
@@ -734,6 +736,7 @@
    EoSetSticky(ewin, 0);
    EwinMoveToDesktopAt(ewin, DesksGetCurrent(), EoGetX(ewin), EoGetY(ewin));
    EwinBorderUpdateState(ewin);
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
    HintsSetWindowDesktop(ewin);
    SnapshotEwinUpdate(ewin, SNAP_USE_STICKY);
@@ -762,6 +765,7 @@
    EoSetSticky(ewin, 1);
    EwinMoveToDesktopAt(ewin, DesksGetCurrent(), x, y);
    EwinBorderUpdateState(ewin);
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
    HintsSetWindowDesktop(ewin);
    SnapshotEwinUpdate(ewin, SNAP_USE_STICKY);
@@ -1072,6 +1076,7 @@
    Eprintf("EwinShade-E\n");
 #endif
 
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
 }
 
@@ -1279,11 +1284,12 @@
    Eprintf("EwinUnShade-E\n");
 #endif
 
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
 }
 
 void
-EwinSetFullscreen(EWin * ewin, int on)
+EwinOpFullscreen(EWin * ewin, int source __UNUSED__, int on)
 {
    int                 x, y, w, h, ww, hh;
    EWin              **lst;
@@ -1371,6 +1377,7 @@
        RaiseEwin(ewin);
        EwinMoveResize(ewin, x, y, w, h);
      }
+
    HintsSetWindowState(ewin);
 }
 
@@ -1579,12 +1586,13 @@
    ewin->props.skip_ext_task = skip;
    ewin->props.skip_winlist = skip;
    ewin->props.skip_focuslist = skip;
+
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
 #if ENABLE_GNOME
    GNOME_SetClientList();
 #endif
    SnapshotEwinUpdate(ewin, SNAP_USE_SKIP_LISTS);
-   EwinStateUpdate(ewin);
 }
 
 #if 0                          /* Unused */
@@ -1592,36 +1600,37 @@
 EwinOpSkipTask(EWin * ewin, int skip)
 {
    ewin->props.skip_ext_task = skip;
+
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
 #if ENABLE_GNOME
    GNOME_SetClientList();
 #endif
    SnapshotEwinUpdate(ewin, SNAP_USE_SKIP_LISTS);
-   EwinStateUpdate(ewin);
 }
 
 void
 EwinOpSkipFocus(EWin * ewin, int skip)
 {
    ewin->props.skip_focuslist = skip;
-   SnapshotEwinUpdate(ewin, SNAP_USE_SKIP_LISTS);
    EwinStateUpdate(ewin);
+   SnapshotEwinUpdate(ewin, SNAP_USE_SKIP_LISTS);
 }
 
 void
 EwinOpSkipWinlist(EWin * ewin, int skip)
 {
    ewin->props.skip_winlist = skip;
-   SnapshotEwinUpdate(ewin, SNAP_USE_SKIP_LISTS);
    EwinStateUpdate(ewin);
+   SnapshotEwinUpdate(ewin, SNAP_USE_SKIP_LISTS);
 }
 
 void
 EwinOpNeverFocus(EWin * ewin, int on)
 {
    ewin->props.never_focus = on;
-   SnapshotEwinUpdate(ewin, SNAP_USE_FOCUS_NEVER);
    EwinStateUpdate(ewin);
+   SnapshotEwinUpdate(ewin, SNAP_USE_FOCUS_NEVER);
 }
 #endif
 
@@ -1695,6 +1704,7 @@
      }
    EoSetLayer(ewin, layer);
    RaiseEwin(ewin);
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
    SnapshotEwinUpdate(ewin, SNAP_USE_LAYER);
 }
@@ -1783,6 +1793,7 @@
    EwinMoveToDesktop(ewin, dsk);
    RaiseEwin(ewin);
    EwinBorderUpdateState(ewin);
+   EwinStateUpdate(ewin);
    HintsSetWindowState(ewin);
    HintsSetWindowDesktop(ewin);
    SnapshotEwinUpdate(ewin, SNAP_USE_STICKY);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -3 -r1.127 -r1.128
--- ewins.c     12 Nov 2005 17:51:11 -0000      1.127
+++ ewins.c     13 Nov 2005 01:22:28 -0000      1.128
@@ -649,19 +649,19 @@
 
    ewin->state.inhibit_move =
       EwinInhGetUser(ewin, move) || ewin->state.fullscreen;
-   ewin->state.inhibit_resize =
-      EwinInhGetUser(ewin, size) || ewin->state.shaded ||
-      ewin->state.fullscreen;
+   ewin->state.inhibit_resize = ewin->state.iconified || ewin->state.shaded ||
+      EwinInhGetUser(ewin, size) || ewin->state.fullscreen;
    ewin->state.inhibit_iconify = EwinInhGetWM(ewin, iconify);
-   ewin->state.inhibit_shade = ewin->state.no_border || ewin->state.fullscreen;
+   ewin->state.inhibit_shade = ewin->state.no_border ||
+      ewin->state.iconified || ewin->state.fullscreen;
    ewin->state.inhibit_stick = 0;
-   ewin->state.inhibit_max_hor =
+   ewin->state.inhibit_max_hor = ewin->state.inhibit_resize ||
       ewin->props.no_resize_h || ewin->state.fullscreen;
-   ewin->state.inhibit_max_ver =
+   ewin->state.inhibit_max_ver = ewin->state.inhibit_resize ||
       ewin->props.no_resize_v || ewin->state.fullscreen;
    ewin->state.inhibit_fullscreeen =
       ewin->state.inhibit_move || ewin->state.inhibit_resize;
-   ewin->state.inhibit_change_desk = 0;
+   ewin->state.inhibit_change_desk = ewin->state.iconified;
    ewin->state.inhibit_close = EwinInhGetApp(ewin, close) ||
       EwinInhGetUser(ewin, close);
 }
@@ -783,7 +783,7 @@
 
    if (ewin->state.fullscreen)
      {
-       EwinSetFullscreen(ewin, 2);
+       EwinOpFullscreen(ewin, OPSRC_WM, 2);
        ewin->state.placed = 1;
        EwinMoveToDesktopAt(ewin, dsk, EoGetX(ewin), EoGetY(ewin));
        ShowEwin(ewin);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- ewins.h     12 Nov 2005 19:55:42 -0000      1.29
+++ ewins.h     13 Nov 2005 01:22:28 -0000      1.30
@@ -332,7 +332,6 @@
 void                EwinInstantUnShade(EWin * ewin);
 void                EwinShade(EWin * ewin);
 void                EwinUnShade(EWin * ewin);
-void                EwinSetFullscreen(EWin * ewin, int on);
 void                EwinMoveToArea(EWin * ewin, int ax, int ay);
 
 void                EwinOpClose(EWin * ewin, int source);
@@ -349,6 +348,7 @@
 void                EwinOpSetOpacity(EWin * ewin, int source, int opacity);
 void                EwinOpMoveToDesk(EWin * ewin, int source, struct _desk 
*dsk,
                                     int inc);
+void                EwinOpFullscreen(EWin * ewin, int source, int on);
 
 /* finders.c */
 EWin               *EwinFindByPtr(const EWin * ewin);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewmh.c,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -3 -r1.96 -r1.97
--- ewmh.c      12 Nov 2005 19:55:42 -0000      1.96
+++ ewmh.c      13 Nov 2005 01:22:28 -0000      1.97
@@ -49,6 +49,13 @@
 #define _NET_WM_STATE_ADD       1
 #define _NET_WM_STATE_TOGGLE    2
 
+/* Source indication */
+#define _NET_WM_SOURCE_UNKNOWN  0
+#define _NET_WM_SOURCE_APP      1
+#define _NET_WM_SOURCE_USER     2
+
+#define OPSRC(src) (((src) == _NET_WM_SOURCE_USER) ? _NET_WM_SOURCE_USER : 
_NET_WM_SOURCE_APP)
+
 #ifndef ENABLE_HINTS_GNOME
 Atom                _G_WIN_LAUER;
 #endif
@@ -789,6 +796,8 @@
 EWMH_ProcessClientMessage(XClientMessageEvent * ev)
 {
    EWin               *ewin;
+   int                 source;
+   Time                ts;
 
    /*
     * The ones that don't target an application window
@@ -857,23 +866,29 @@
 
    if (ev->message_type == ECORE_X_ATOM_NET_ACTIVE_WINDOW)
      {
-       EwinOpActivate(ewin, OPSRC_UNKNOWN);
+       source = OPSRC(ev->data.l[0]);
+       ts = ev->data.l[1];
+/*     cwin = ev->data.l[2]; */
+       EwinOpActivate(ewin, source);
      }
    else if (ev->message_type == ECORE_X_ATOM_NET_CLOSE_WINDOW)
      {
-       EwinOpClose(ewin, OPSRC_UNKNOWN);
+/*     ts = ev->data.l[0]; */
+       source = OPSRC(ev->data.l[1]);
+       EwinOpClose(ewin, source);
      }
    else if (ev->message_type == ECORE_X_ATOM_NET_WM_DESKTOP)
      {
+       source = OPSRC(ev->data.l[1]);
        if ((unsigned)ev->data.l[0] == 0xFFFFFFFF)
          {
             if (!EoIsSticky(ewin))
-               EwinOpStick(ewin, OPSRC_UNKNOWN, 1);
+               EwinOpStick(ewin, source, 1);
          }
        else
          {
             if (EoIsSticky(ewin))
-               EwinOpStick(ewin, OPSRC_UNKNOWN, 0);
+               EwinOpStick(ewin, source, 0);
             else
                EwinMoveToDesktop(ewin, DeskGet(ev->data.l[0]));
          }
@@ -890,6 +905,7 @@
        action = ev->data.l[0];
        atom = ev->data.l[1];
        atom2 = ev->data.l[2];
+       source = OPSRC(ev->data.l[3]);
        if (atom == ECORE_X_ATOM_NET_WM_STATE_MODAL)
          {
             action = do_set(ewin->state.modal, action);
@@ -899,12 +915,12 @@
        else if (atom == ECORE_X_ATOM_NET_WM_STATE_STICKY)
          {
             action = do_set(EoIsSticky(ewin), action);
-            EwinOpStick(ewin, OPSRC_UNKNOWN, action);
+            EwinOpStick(ewin, source, action);
          }
        else if (atom == ECORE_X_ATOM_NET_WM_STATE_SHADED)
          {
             action = do_set(ewin->state.shaded, action);
-            EwinOpShade(ewin, OPSRC_UNKNOWN, action);
+            EwinOpShade(ewin, source, action);
          }
        else if (atom == ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR)
          {
@@ -958,23 +974,23 @@
             if (ewin->state.fullscreen == action)
                goto done;
 
-            EwinSetFullscreen(ewin, action);
+            EwinOpFullscreen(ewin, source, action);
          }
        else if (atom == ECORE_X_ATOM_NET_WM_STATE_ABOVE)
          {
             action = do_set(EoGetLayer(ewin) >= 6, action);
             if (action)
-               EwinOpSetLayer(ewin, OPSRC_UNKNOWN, 6);
+               EwinOpSetLayer(ewin, source, 6);
             else
-               EwinOpSetLayer(ewin, OPSRC_UNKNOWN, 4);
+               EwinOpSetLayer(ewin, source, 4);
          }
        else if (atom == ECORE_X_ATOM_NET_WM_STATE_BELOW)
          {
             action = do_set(EoGetLayer(ewin) <= 2, action);
             if (action)
-               EwinOpSetLayer(ewin, OPSRC_UNKNOWN, 2);
+               EwinOpSetLayer(ewin, source, 2);
             else
-               EwinOpSetLayer(ewin, OPSRC_UNKNOWN, 4);
+               EwinOpSetLayer(ewin, source, 4);
          }
        else if (atom == ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION)
          {
@@ -991,14 +1007,16 @@
        grav = flags & 0xf;
        if (grav == 0)
           grav = ewin->client.grav;
-       x = (flags & 0x100) ? ev->data.l[1] : EoGetX(ewin);
-       y = (flags & 0x200) ? ev->data.l[2] : EoGetY(ewin);
-       w = (flags & 0x400) ? ev->data.l[3] : ewin->client.w;
-       h = (flags & 0x800) ? ev->data.l[4] : ewin->client.h;
+       x = (flags & 0x0100) ? ev->data.l[1] : EoGetX(ewin);
+       y = (flags & 0x0200) ? ev->data.l[2] : EoGetY(ewin);
+       w = (flags & 0x0400) ? ev->data.l[3] : ewin->client.w;
+       h = (flags & 0x0800) ? ev->data.l[4] : ewin->client.h;
+/*     source = OPSRC((flags & 0xF000) >> 12); */
        EwinMoveResizeWithGravity(ewin, x, y, w, h, grav);
      }
    else if (ev->message_type == ECORE_X_ATOM_NET_WM_MOVERESIZE)
      {
+/*     source = OPSRC(ev->data.l[4]); */
        switch (ev->data.l[2])
          {
          case _NET_WM_MOVERESIZE_SIZE_TOPLEFT:
@@ -1023,6 +1041,11 @@
             break;
          }
      }
+   else if (ev->message_type == ECORE_X_ATOM_NET_RESTACK_WINDOW)
+     {
+/*     source = OPSRC(ev->data.l[0]); */
+       /* FIXME - Implement */
+     }
 
  done:
    ;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v
retrieving revision 1.245
retrieving revision 1.246
diff -u -3 -r1.245 -r1.246
--- ipc.c       12 Nov 2005 19:55:42 -0000      1.245
+++ ipc.c       13 Nov 2005 01:22:28 -0000      1.246
@@ -639,7 +639,7 @@
      case EWIN_OP_FULLSCREEN:
        on = ewin->state.fullscreen;
        if (SetEwinBoolean(wop->name, &on, param1, 1))
-          EwinSetFullscreen(ewin, on);
+          EwinOpFullscreen(ewin, OPSRC_USER, on);
        break;
 
      case EWIN_OP_ZOOM:




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to