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