Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ewins.c ewins.h hints.c snaps.c snaps.h 


Log Message:
Remember various flags.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.130
retrieving revision 1.131
diff -u -3 -r1.130 -r1.131
--- ewins.c     15 Nov 2005 23:24:20 -0000      1.130
+++ ewins.c     19 Nov 2005 07:39:30 -0000      1.131
@@ -665,6 +665,8 @@
    ewin->state.inhibit_change_desk = ewin->state.iconified;
    ewin->state.inhibit_close = EwinInhGetApp(ewin, close) ||
       EwinInhGetUser(ewin, close);
+
+   SnapshotEwinUpdate(ewin, SNAP_USE_FLAGS);
 }
 
 void
@@ -1533,6 +1535,42 @@
    *py = y;
 }
 
+typedef union
+{
+   unsigned int        all;
+   struct
+   {
+      unsigned char       rsvd;
+      unsigned char       inh_app;
+      unsigned char       inh_user;
+      unsigned char       inh_wm;
+   } f;
+} EWinMiscFlags;
+
+unsigned int
+EwinFlagsEncode(const EWin * ewin)
+{
+   EWinMiscFlags       fm;
+
+   fm.all = 0;
+   fm.f.inh_app = ewin->inh_app.all;
+   fm.f.inh_user = ewin->inh_user.all;
+   fm.f.inh_wm = ewin->inh_wm.all;
+
+   return fm.all;
+}
+
+void
+EwinFlagsDecode(EWin * ewin, unsigned int flags)
+{
+   EWinMiscFlags       fm;
+
+   fm.all = flags;
+   ewin->inh_app.all = fm.f.inh_app;
+   ewin->inh_user.all = fm.f.inh_user;
+   ewin->inh_wm.all = fm.f.inh_wm;
+}
+
 /*
  * Slidein
  */
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- ewins.h     13 Nov 2005 12:40:13 -0000      1.31
+++ ewins.h     19 Nov 2005 07:39:30 -0000      1.32
@@ -41,18 +41,19 @@
 #define OPSRC_USER      2
 #define OPSRC_WM        3
 
-typedef struct
+typedef union
 {
-   unsigned int        all:32;
+   unsigned char       all:8;
    struct
    {
-      unsigned            close:1;     /*  AU */
-      unsigned            focus:1;     /* WA  */
-      unsigned            iconify:1;   /* W U */
-      unsigned            move:1;      /*  AU */
-      unsigned            size:1;      /*  AU */
+      unsigned char       rsvd:3;
+      unsigned char       close:1;     /*  AU */
+      unsigned char       focus:1;     /* WA  */
+      unsigned char       iconify:1;   /* W U */
+      unsigned char       move:1;      /*  AU */
+      unsigned char       size:1;      /*  AU */
    } b;
-} EwinInhibit;
+} EWinInhibit;
 
 #define EwinInhGetApp(ewin, item)      (ewin->inh_app.b.item)
 #define EwinInhSetApp(ewin, item, on)  ewin->inh_app.b.item = (on)
@@ -143,9 +144,9 @@
       unsigned            no_border:1; /* Never apply border */
       unsigned            focus_when_mapped:1;
    } props;
-   EwinInhibit         inh_app;
-   EwinInhibit         inh_user;
-   EwinInhibit         inh_wm;
+   EWinInhibit         inh_app;
+   EWinInhibit         inh_user;
+   EWinInhibit         inh_wm;
    struct
    {
       char               *wm_name;
@@ -303,6 +304,8 @@
 void                EwinRememberPositionSet(EWin * ewin);
 void                EwinRememberPositionGet(EWin * ewin, struct _desk *dsk,
                                            int *px, int *py);
+unsigned int        EwinFlagsEncode(const EWin * ewin);
+void                EwinFlagsDecode(EWin * ewin, unsigned int flags);
 
 void                EwinChange(EWin * ewin, unsigned int flag);
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/hints.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -3 -r1.55 -r1.56
--- hints.c     2 Nov 2005 23:03:03 -0000       1.55
+++ hints.c     19 Nov 2005 07:39:30 -0000      1.56
@@ -328,10 +328,10 @@
    f.b.version = ENL_DATA_VERSION;
    f.b.docked = ewin->state.docked;
    f.b.iconified = ewin->state.iconified;
-
    c[0] = f.all;
 
-   c[1] = 0;
+   c[1] = EwinFlagsEncode(ewin);
+
    c[2] = 0;
 
    c[3] = ewin->lx;
@@ -393,6 +393,8 @@
    ewin->icccm.start_iconified = f.b.iconified;
    ewin->state.docked = f.b.docked;
 
+   EwinFlagsDecode(ewin, c[1]);
+
    ewin->lx = c[3];
    ewin->ly = c[4];
    ewin->lw = c[5];
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/snaps.c,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -3 -r1.110 -r1.111
--- snaps.c     12 Nov 2005 17:51:11 -0000      1.110
+++ snaps.c     19 Nov 2005 07:39:30 -0000      1.111
@@ -51,13 +51,13 @@
    int                 layer;
    char                sticky;
    char                shaded;
+   unsigned int        flags;
    char               *cmd;
    int                *groups;
    int                 num_groups;
    char                skiptask;
    char                skipfocus;
    char                skipwinlist;
-   char                neverfocus;
 #if USE_COMPOSITE
    int                 opacity;
    char                shadow;
@@ -362,9 +362,9 @@
 }
 
 static void
-SnapEwinNeverFocus(Snapshot * sn, const EWin * ewin)
+SnapEwinFlags(Snapshot * sn, const EWin * ewin)
 {
-   sn->neverfocus = EwinInhGetWM(ewin, focus); /* FIXME */
+   sn->flags = EwinFlagsEncode(ewin);
 }
 
 static void
@@ -481,8 +481,8 @@
       SnapEwinShade(sn, ewin);
    if (flags & SNAP_USE_SKIP_LISTS)
       SnapEwinSkipLists(sn, ewin);
-   if (flags & SNAP_USE_FOCUS_NEVER)
-      SnapEwinNeverFocus(sn, ewin);
+   if (flags & SNAP_USE_FLAGS)
+      SnapEwinFlags(sn, ewin);
 #if USE_COMPOSITE
    if (flags & SNAP_USE_OPACITY)
       SnapEwinOpacity(sn, ewin);
@@ -569,7 +569,7 @@
    char                snap_cmd;
    char                snap_group;
    char                snap_skiplists;
-   char                snap_neverfocus;
+   char                snap_flags;
 
 #if USE_COMPOSITE
    char                snap_opacity;
@@ -627,8 +627,8 @@
       use_flags |= SNAP_USE_SHADED;
    if (sd->snap_skiplists)
       use_flags |= SNAP_USE_SKIP_LISTS;
-   if (sd->snap_neverfocus)
-      use_flags |= SNAP_USE_FOCUS_NEVER;
+   if (sd->snap_flags)
+      use_flags |= SNAP_USE_FLAGS;
 #if USE_COMPOSITE
    if (sd->snap_opacity)
       use_flags |= SNAP_USE_OPACITY;
@@ -713,8 +713,8 @@
           sd->snap_shaded = 1;
        if (sn->use_flags & SNAP_USE_SKIP_LISTS)
           sd->snap_skiplists = 1;
-       if (sn->use_flags & SNAP_USE_FOCUS_NEVER)
-          sd->snap_neverfocus = 1;
+       if (sn->use_flags & SNAP_USE_FLAGS)
+          sd->snap_flags = 1;
 #if USE_COMPOSITE
        if (sn->use_flags & SNAP_USE_OPACITY)
           sd->snap_opacity = 1;
@@ -886,12 +886,14 @@
    DialogItemCheckButtonSetPtr(di, &sd->snap_shadow);
 #endif
 
-#if 0                          /* Disabled (why?) */
    di = DialogAddItem(table, DITEM_CHECKBUTTON);
    DialogItemSetColSpan(di, 2);
-   DialogItemSetText(di, _("Never Focus"));
-   DialogItemCheckButtonSetPtr(di, &sd->snap_neverfocus);
-#endif
+   DialogItemSetText(di, _("Flags"));
+   DialogItemCheckButtonSetPtr(di, &sd->snap_flags);
+
+   di = DialogAddItem(table, DITEM_NONE);
+   DialogItemSetColSpan(di, 2);
+
    if (ewin->icccm.wm_command)
      {
        char                ok = 1;
@@ -1154,8 +1156,8 @@
                  fprintf(f, "SKIPWINLIST: %i\n", sn->skipwinlist);
                  fprintf(f, "SKIPFOCUS: %i\n", sn->skipfocus);
               }
-            if (sn->use_flags & SNAP_USE_FOCUS_NEVER)
-               fprintf(f, "NEVERFOCUS: %i\n", sn->neverfocus);
+            if (sn->use_flags & SNAP_USE_FLAGS)
+               fprintf(f, "FLAGS: %#x\n", sn->flags);
 #if USE_COMPOSITE
             if (sn->use_flags & SNAP_USE_OPACITY)
                fprintf(f, "OPACITY: %i\n", sn->opacity);
@@ -1377,10 +1379,10 @@
                  sn->use_flags |= SNAP_USE_SKIP_LISTS;
                  sn->skipwinlist = atoi(s);
               }
-            else if (!strcmp(buf, "NEVERFOCUS"))
+            else if (!strcmp(buf, "FLAGS"))
               {
-                 sn->use_flags |= SNAP_USE_FOCUS_NEVER;
-                 sn->neverfocus = atoi(s);
+                 sn->use_flags |= SNAP_USE_FLAGS;
+                 sn->flags = strtoul(s, NULL, 0);
               }
             else if (!strcmp(buf, "GROUP"))
               {
@@ -1435,8 +1437,7 @@
    use_flags = sn->use_flags;
    /* If restarting don't override stuff set in attributes/properties */
    if (ewin->state.identified)
-      use_flags &= SNAP_USE_LAYER | SNAP_USE_FOCUS_NEVER | SNAP_USE_SHADOW |
-        SNAP_USE_GROUPS;
+      use_flags &= SNAP_USE_LAYER | SNAP_USE_SHADOW | SNAP_USE_GROUPS;
 
    if (use_flags & SNAP_USE_STICKY)
       EoSetSticky(ewin, sn->sticky);
@@ -1480,8 +1481,8 @@
        ewin->props.skip_winlist = sn->skipwinlist;
      }
 
-   if (use_flags & SNAP_USE_FOCUS_NEVER)
-      EwinInhSetWM(ewin, focus, sn->neverfocus);
+   if (use_flags & SNAP_USE_FLAGS)
+      EwinFlagsDecode(ewin, sn->flags);
 
    if (use_flags & SNAP_USE_SHADED)
       ewin->state.shaded = sn->shaded;
@@ -1700,8 +1701,8 @@
           IpcPrintf
              ("         skiptask: %d    skipfocus: %d    skipwinlist: %d\n",
               sn->skiptask, sn->skipfocus, sn->skipwinlist);
-       if (sn->use_flags & SNAP_USE_FOCUS_NEVER)
-          IpcPrintf("       neverfocus: %d\n", sn->neverfocus);
+       if (sn->use_flags & SNAP_USE_FLAGS)
+          IpcPrintf("            flags: %#x\n", sn->flags);
        IpcPrintf("\n");
      }
 }
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/snaps.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- snaps.h     29 Oct 2005 15:35:39 -0000      1.3
+++ snaps.h     19 Nov 2005 07:39:30 -0000      1.4
@@ -43,7 +43,7 @@
 #define SNAP_USE_LAYER          (1 << 6)
 #define SNAP_USE_STICKY         (1 << 7)
 #define SNAP_USE_SHADED         (1 << 8)
-#define SNAP_USE_FOCUS_NEVER    (1 << 9)
+#define SNAP_USE_FLAGS          (1 << 9)
 #define SNAP_USE_SKIP_LISTS     (1 << 10)
 #define SNAP_USE_OPACITY        (1 << 11)
 #define SNAP_USE_SHADOW         (1 << 12)




-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to