Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h borders.c ipc.c snaps.c 


Log Message:
Attempt to fix/improve remembered settings, now also using WM_WINDOW_ROLE.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -3 -r1.156 -r1.157
--- E.h 9 Dec 2003 20:25:16 -0000       1.156
+++ E.h 9 Dec 2003 20:35:14 -0000       1.157
@@ -2587,9 +2587,6 @@
 /* snaps.c functions */
 void                SnapshotEwinDialog(EWin * ewin);
 Snapshot           *FindSnapshot(EWin * ewin);
-Snapshot           *GetSnapshot(EWin * ewin);
-Snapshot           *NewSnapshot(char *name);
-void                ClearSnapshot(Snapshot * sn);
 void                SnapshotEwinBorder(EWin * ewin);
 void                SnapshotEwinDesktop(EWin * ewin);
 void                SnapshotEwinSize(EWin * ewin);
@@ -2599,10 +2596,8 @@
 void                SnapshotEwinIcon(EWin * ewin);
 void                SnapshotEwinShade(EWin * ewin);
 void                SnapshotEwinCmd(EWin * ewin);
-
 void                SnapshotEwinSkipLists(EWin * ewin);
 void                SnapshotEwinNeverFocus(EWin * ewin);
-
 void                SnapshotEwinGroups(EWin * ewin, char onoff);
 void                SnapshotEwinAll(EWin * ewin);
 void                UnsnapshotEwin(EWin * ewin);
@@ -2611,6 +2606,7 @@
 void                SpawnSnappedCmds(void);
 void                LoadSnapInfo(void);
 void                MatchEwinToSnapInfo(EWin * ewin);
+void                UnmatchEwinToSnapInfo(EWin * ewin);
 void                MatchEwinToSnapInfoAfter(EWin * ewin);
 void                RememberImportantInfoForEwin(EWin * ewin);
 void                RememberImportantInfoForEwins(EWin * ewin);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/borders.c,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -3 -r1.106 -r1.107
--- borders.c   30 Nov 2003 15:35:43 -0000      1.106
+++ borders.c   9 Dec 2003 20:35:14 -0000       1.107
@@ -1550,12 +1550,7 @@
    if (GetZoomEWin() == ewin)
       Zoom(NULL);
 
-   if (ewin->snap)
-     {
-       ListChangeItemID(LIST_TYPE_SNAPSHOT, ewin->snap, 0);
-       ewin->snap->used = 0;
-       ewin->snap = NULL;
-     }
+   UnmatchEwinToSnapInfo(ewin);
 
    DesktopRemoveEwin(ewin);
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ipc.c,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -3 -r1.119 -r1.120
--- ipc.c       9 Dec 2003 20:25:16 -0000       1.119
+++ ipc.c       9 Dec 2003 20:35:14 -0000       1.120
@@ -560,7 +560,7 @@
     "  audio, fx, bg, group_defaults, remember"},
    {
     IPC_RememberList,
-    "list_remember", NULL,
+    "list_remember", "rl",
     "Retrieve a list of remembered windows and their attributes.",
     "usage:\n" "  list_remember [full]\n"
     "  Retrieve a list of remembered windows.  with full, the list\n"
@@ -5255,28 +5255,16 @@
                                 "     Window Class: %s\n"
                                 "      Border Name: %s\n"
                                 /*"             Used: %s\n" */
-                                "      use_desktop: %d\n"
-                                "          desktop: %d\n"
-                                "      area (x, y): %d, %d\n"
-                                "           use_wh: %d\n"
-                                "           (w, h): %d, %d\n"
-                                "           use_xy: %d\n"
-                                "           (x, y): %d, %d\n"
-                                "        use_layer: %d\n"
-                                "            layer: %d\n"
-                                "       use_sticky: %d\n"
-                                "           sticky: %d\n"
-                                "        use_shade: %d\n"
-                                "            shade: %d\n"
-                                "      use_command: %d\n"
-                                "          command: %s\n"
-                                "  use_skipwinlist: %d\n"
-                                "      skipwinlist: %d\n"
-                                "    use_skiplists: %d\n"
-                                "         skiptask: %d\n"
-                                "        skipfocus: %d\n"
-                                "   use_neverfocus: %d\n"
-                                "       neverfocus: %d\n",
+                                "      use_desktop: %d     desktop: %d      area (x, 
y): %d, %d\n"
+                                "           use_wh: %d      (w, h): %d, %d\n"
+                                "           use_xy: %d      (x, y): %d, %d\n"
+                                "        use_layer: %d       layer: %d\n"
+                                "       use_sticky: %d      sticky: %d\n"
+                                "        use_shade: %d       shade: %d\n"
+                                "      use_command: %d     command: %s\n"
+                                "  use_skipwinlist: %d skipwinlist: %d\n"
+                                "    use_skiplists: %d    skiptask: %d        
skipfocus: %d\n"
+                                "   use_neverfocus: %d  neverfocus: %d\n\n",
                                 lst[i]->name ? lst[i]->name : nstr,
                                 lst[i]->win_title ? lst[i]->win_title : nstr,
                                 lst[i]->win_name ? lst[i]->win_name : nstr,
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/snaps.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -3 -r1.52 -r1.53
--- snaps.c     30 Nov 2003 15:35:43 -0000      1.52
+++ snaps.c     9 Dec 2003 20:35:14 -0000       1.53
@@ -25,6 +25,25 @@
 #include <process.h>
 #endif
 
+static Snapshot    *NewSnapshot(char *name);
+
+/* Format the window identifier string */
+static int
+EwinMakeID(EWin * ewin, char *buf, int len)
+{
+   if ((ewin->client.role) && (ewin->client.name) && (ewin->client.class))
+      Esnprintf(buf, len, "%s.%s:%s", ewin->client.name, ewin->client.class,
+               ewin->client.role);
+   else if ((ewin->client.name) && (ewin->client.class))
+      Esnprintf(buf, len, "%s.%s", ewin->client.name, ewin->client.class);
+   else if (ewin->client.title)
+      Esnprintf(buf, len, "TITLE.%s", ewin->client.title);
+   else
+      return -1;
+
+   return 0;
+}
+
 /* find a snapshot state that applies to this ewin */
 Snapshot           *
 FindSnapshot(EWin * ewin)
@@ -34,25 +53,23 @@
 
    if (ewin->snap)
       return ewin->snap;
-   if ((ewin->client.name) && (ewin->client.class))
-      Esnprintf(buf, sizeof(buf), "%s.%s", ewin->client.name,
-               ewin->client.class);
-   else if (ewin->client.title)
-      Esnprintf(buf, sizeof(buf), "TITLE.%s", ewin->client.title);
-   else
+
+   if (EwinMakeID(ewin, buf, sizeof(buf)))
       return NULL;
+
    sn = FindItem(buf, 0, LIST_FINDBY_BOTH, LIST_TYPE_SNAPSHOT);
    if (sn)
      {
        ListChangeItemID(LIST_TYPE_SNAPSHOT, sn, 1);
        sn->used = 1;
      }
+
    return sn;
 }
 
 /* find a snapshot state that applies to this ewin Or if that doesnt exist */
 /* create a new one */
-Snapshot           *
+static Snapshot    *
 GetSnapshot(EWin * ewin)
 {
    Snapshot           *sn;
@@ -62,11 +79,9 @@
      {
        char                buf[4096];
 
-       if ((ewin->client.name) && (ewin->client.class))
-          Esnprintf(buf, sizeof(buf), "%s.%s", ewin->client.name,
-                    ewin->client.class);
-       else if (ewin->client.title)
-          Esnprintf(buf, sizeof(buf), "TITLE.%s", ewin->client.title);
+       if (EwinMakeID(ewin, buf, sizeof(buf)))
+          return NULL;
+
        sn = NewSnapshot(buf);
        ListChangeItemID(LIST_TYPE_SNAPSHOT, sn, 1);
        if ((ewin->client.name) && (ewin->client.class))
@@ -84,11 +99,12 @@
        sn->used = 1;
        ewin->snap = sn;
      }
+
    return sn;
 }
 
 /* create a new snapshot */
-Snapshot           *
+static Snapshot    *
 NewSnapshot(char *name)
 {
    Snapshot           *sn;
@@ -128,9 +144,11 @@
    sn->use_neverfocus = 0;
    sn->neverfocus = 0;
    AddItemEnd(sn, sn->name, 0, LIST_TYPE_SNAPSHOT);
+
    return sn;
 }
 
+#if 0                          /* Not used */
 /* clear all information out of a snapshot and set its refernce use to 0 */
 void
 ClearSnapshot(Snapshot * sn)
@@ -173,6 +191,7 @@
    sn->neverfocus = 0;
    ListChangeItemID(LIST_TYPE_SNAPSHOT, sn, 0);
 }
+#endif
 
 static void         CB_ApplySnapEscape(int val, void *data);
 static void
@@ -212,10 +231,12 @@
 
             UnsnapshotEwin(ewin);
             sn = GetSnapshot(ewin);
+#if 0                          /* ?!? */
             if (sn)
               {
                  ClearSnapshot(sn);
               }
+#endif
             if (tmp_snap_border)
                SnapshotEwinBorder(ewin);
             if (tmp_snap_desktop)
@@ -812,25 +833,22 @@
 UnsnapshotEwin(EWin * ewin)
 {
    Snapshot           *sn;
-   char                buf[4096];
 
-   if ((ewin->client.name) && (ewin->client.class))
-      Esnprintf(buf, sizeof(buf), "%s.%s", ewin->client.name,
-               ewin->client.class);
-   else if (ewin->client.title)
-      Esnprintf(buf, sizeof(buf), "TITLE.%s", ewin->client.title);
-   else
-      return;
    if (ewin->snap)
      {
-       ListChangeItemID(LIST_TYPE_SNAPSHOT, ewin->snap, 0);
-       ewin->snap->used = 0;
-       sn = RemoveItem((char *)ewin->snap, 0, LIST_FINDBY_POINTER,
-                       LIST_TYPE_SNAPSHOT);
-       ewin->snap = NULL;
+       sn = ewin->snap;
+       UnmatchEwinToSnapInfo(ewin);
+       sn = RemoveItem((char *)sn, 0, LIST_FINDBY_POINTER, LIST_TYPE_SNAPSHOT);
      }
    else
-      sn = RemoveItem(buf, 0, LIST_FINDBY_NAME, LIST_TYPE_SNAPSHOT);
+     {
+       char                buf[4096];
+
+       if (EwinMakeID(ewin, buf, sizeof(buf)))
+          return;
+       sn = RemoveItem(buf, 0, LIST_FINDBY_BOTH, LIST_TYPE_SNAPSHOT);
+     }
+
    if (sn)
      {
        if (sn->name)
@@ -1225,6 +1243,21 @@
                AddEwinToGroup(ewin, g);
          }
      }
+}
+
+/* make a client window conform to snapshot info */
+void
+UnmatchEwinToSnapInfo(EWin * ewin)
+{
+   Snapshot           *sn;
+
+   sn = ewin->snap;
+   if (sn == NULL)
+      return;
+
+   ewin->snap = NULL;
+   sn->used = 0;
+   ListChangeItemID(LIST_TYPE_SNAPSHOT, sn, 0);
 }
 
 void




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to