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:
parent
f546bffc88
commit
5e7027e156
|
@ -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 :)
|
||||
|
|
2
src/E.h
2
src/E.h
|
@ -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);
|
||||
|
|
3
src/TODO
3
src/TODO
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
23
src/events.c
23
src/events.c
|
@ -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_;
|
||||
}
|
||||
|
||||
|
|
122
src/groups.c
122
src/groups.c
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -170,6 +170,7 @@ main(int argc, char **argv)
|
|||
CommsSetup();
|
||||
CommsFindCommsWindow();
|
||||
GrabX();
|
||||
LoadGroups();
|
||||
LoadSnapInfo();
|
||||
MapUnmap(0);
|
||||
|
||||
|
|
13
src/snaps.c
13
src/snaps.c
|
@ -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
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue