Mon Sep 6 20:33:51 PDT 1999

(Raster)

fixed keyebindings not working on both heads in multihead
fixed focus changing in multihead
group proerties are now all saved to disk and loaded again each session.

gee - only bug left on list is to update all of dox,
only feature left is dnd in iconbox.. :)

now hurry up geoff and christian.. finish off :)


SVN revision: 185
This commit is contained in:
Carsten Haitzler 1999-09-07 03:41:10 +00:00
parent f546bffc88
commit 5e7027e156
9 changed files with 162 additions and 21 deletions

View File

@ -1304,3 +1304,17 @@ Sun Sep 5 20:03:56 PDT 1999
(Raster)
and dont asume an iconbox actually can be found and exists
-------------------------------------------------------------------------------
Mon Sep 6 20:33:51 PDT 1999
(Raster)
fixed keyebindings not working on both heads in multihead
fixed focus changing in multihead
group proerties are now all saved to disk and loaded again each session.
gee - only bug left on list is to update all of dox,
only feature left is dnd in iconbox.. :)
now hurry up geoff and christian.. finish off :)

View File

@ -2775,6 +2775,8 @@ void AddEwinToGroup(EWin * ewin, Group * g);
void RemoveEwinFromGroup(EWin * ewin);
void ChooseGroupForEwinDialog(EWin * ewin);
void FreeGroup(Group * g);
void SaveGroups(void);
void LoadGroups(void);
EWin *GetZoomEWin(void);
void ReZoom(EWin * ewin);

View File

@ -1,7 +1,5 @@
BUGS:
raster: group properties are not remembered :(
raster: must update dox docs fully
mark: focus swtiching in multihead between the heads gets confused... :)
FEATURES:
raster: add dnd to iconbox
@ -16,5 +14,4 @@ user: finer grained control on selecting icon display policy
raster: need to lock .enlightenment dir for multiple logins etc.
BUGS TO BE FIXED for 0.17:
user: If you increase the "Pager scanning speed" via the Pager Settings to over 100, the text above the slider goes funny and doesn't reflect accurately what is set.
mandrake: I'm sure that focus code has bugs in it somewhere. just needs to be completely rewritten, basically

View File

@ -3375,6 +3375,7 @@ doShowHideGroup(void *params)
}
Efree(gwins);
SaveGroups();
EDBUG_RETURN(0);
}
@ -3397,6 +3398,7 @@ doStartGroup(void *params)
BuildWindowGroup(&ewin, 1);
SaveGroups();
EDBUG_RETURN(0);
}
@ -3419,6 +3421,7 @@ doAddToGroup(void *params)
AddEwinToGroup(ewin, current_group);
SaveGroups();
EDBUG_RETURN(0);
}
@ -3441,6 +3444,7 @@ doRemoveFromGroup(void *params)
RemoveEwinFromGroup(ewin);
SaveGroups();
EDBUG_RETURN(0);
}
@ -3463,6 +3467,7 @@ doBreakGroup(void *params)
BreakWindowGroup(ewin);
SaveGroups();
EDBUG_RETURN(0);
}

View File

@ -306,12 +306,22 @@ HandleEvent(XEvent * ev)
(ev->type == ButtonPress) || (ev->type == ButtonRelease) ||
(ev->type == EnterNotify) || (ev->type == LeaveNotify))
{
lst = ListItemType(&num, LIST_TYPE_ACLASS_GLOBAL);
if (lst)
if (((ev->type == KeyPress) || (ev->type == KeyRelease)) &&
(ev->xkey.root != root.win))
{
for (i = 0; i < num; i++)
EventAclass(ev, (ActionClass *) lst[i]);
Efree(lst);
XSetInputFocus(disp, ev->xkey.root, RevertToPointerRoot, CurrentTime);
XSync(disp, False);
XSendEvent(disp, ev->xkey.root, False, 0, ev);
}
else
{
lst = ListItemType(&num, LIST_TYPE_ACLASS_GLOBAL);
if (lst)
{
for (i = 0; i < num; i++)
EventAclass(ev, (ActionClass *) lst[i]);
Efree(lst);
}
}
}
if (ev->type <= 35)
@ -643,7 +653,8 @@ void
HFocusOut(XEvent * ev)
{
EDBUG(7, "HFocusOut");
ev = NULL;
if (ev->xfocus.detail == NotifyNonlinear)
HandleFocusWindowIn(0);
EDBUG_RETURN_;
}

View File

@ -179,9 +179,131 @@ ChooseGroupForEwin(int val, void *data)
Efree(groups);
}
}
SaveGroups();
data = NULL;
}
void
SaveGroups(void)
{
Group **groups = NULL;
int i, num_groups;
groups = (Group **) ListItemType(&num_groups, LIST_TYPE_GROUP);
if (groups)
{
FILE *f;
char s[1024];
Esnprintf(s, sizeof(s), "%s/...e_session-XXXXXX.groups.%i",
UserEDir(), root.scr);
f = fopen(s, "w");
if (f)
{
for (i = 0; i < num_groups; i++)
{
if (groups[i]->members)
{
fprintf(f, "NEW: %i\n", groups[i]->index);
fprintf(f, "ICONIFY: %i\n", groups[i]->iconify);
fprintf(f, "KILL: %i\n", groups[i]->kill);
fprintf(f, "MOVE: %i\n", groups[i]->move);
fprintf(f, "RAISE: %i\n", groups[i]->raise);
fprintf(f, "SET_BORDER: %i\n", groups[i]->set_border);
fprintf(f, "STICK: %i\n", groups[i]->stick);
fprintf(f, "SHADE: %i\n", groups[i]->shade);
fprintf(f, "MIRROR: %i\n", groups[i]->mirror);
}
}
fclose(f);
}
Efree(groups);
}
}
void
LoadGroups(void)
{
FILE *f;
char s[1024];
Esnprintf(s, sizeof(s), "%s/...e_session-XXXXXX.groups.%i",
UserEDir(), root.scr);
f = fopen(s, "r");
if (f)
{
Group *g = NULL;
while (fgets(s, sizeof(s), f))
{
char ss[1024];
if (strlen(s) > 0)
s[strlen(s) - 1] = 0;
word(s, 1, ss);
if (!strcmp(ss, "NEW:"))
{
g = CreateGroup();
if (g)
{
word(s, 2, ss);
g->index = atoi(ss);
AddItem(g, NULL, g->index, LIST_TYPE_GROUP);
}
}
else if (!strcmp(ss, "ICONIFY:"))
{
word(s, 2, ss);
if (g)
g->iconify = (char)atoi(ss);
}
else if (!strcmp(ss, "KILL:"))
{
word(s, 2, ss);
if (g)
g->kill = (char)atoi(ss);
}
else if (!strcmp(ss, "MOVE:"))
{
word(s, 2, ss);
if (g)
g->move = (char)atoi(ss);
}
else if (!strcmp(ss, "RAISE:"))
{
word(s, 2, ss);
if (g)
g->raise = (char)atoi(ss);
}
else if (!strcmp(ss, "SET_BORDER:"))
{
word(s, 2, ss);
if (g)
g->set_border = (char)atoi(ss);
}
else if (!strcmp(ss, "STICK:"))
{
word(s, 2, ss);
if (g)
g->stick = (char)atoi(ss);
}
else if (!strcmp(ss, "SHADE:"))
{
word(s, 2, ss);
if (g)
g->shade = (char)atoi(ss);
}
else if (!strcmp(ss, "MIRROR:"))
{
word(s, 2, ss);
if (g)
g->mirror = (char)atoi(ss);
}
}
fclose(f);
}
}
void
ChooseGroupForEwinDialog(EWin * ewin)
{

View File

@ -170,6 +170,7 @@ main(int argc, char **argv)
CommsSetup();
CommsFindCommsWindow();
GrabX();
LoadGroups();
LoadSnapInfo();
MapUnmap(0);

View File

@ -779,18 +779,7 @@ SaveSnapInfo(void)
mv(s, buf);
if (!isfile(buf))
Alert("Error saving snaps file\n");
/*
* if (strcmp(GetSMFile(), GetGenericSMFile()))
* {
* char s22[4096];
*
* Esnprintf(buf, sizeof(buf), "%s.snapshots.%i", GetGenericSMFile(), root.scr);
* Esnprintf(s22, sizeof(s22), "%s.snapshots.%i", GetSMFile(), root.scr);
* if (exists(buf))
* rm(buf);
* symlink(s22, buf);
* }
*/
SaveGroups();
}
void