Mon Feb 21 20:46:52 GMT 2000
(gilbertt) Added winops commands/remember options/action definitions for skipping focus, skipping tasklist, skipping winlist. The second two work well. skipfocus is not thoroughly implemented in the e code, ie. you can still focus =) I'm about to go through and add some logic for that... Then I was gonna make non-ALT button clicks on skip_focus windows bring up root menus... Lots of changes, so check for bugs =) SVN revision: 2114
This commit is contained in:
parent
6c4c925931
commit
c28e4b58aa
|
@ -4238,3 +4238,19 @@ and gkrellm etc out of it...
|
|||
|
||||
Feel free to revert the commit if it's inappropriate...
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Mon Feb 21 20:46:52 GMT 2000
|
||||
(gilbertt)
|
||||
|
||||
Added winops commands/remember options/action definitions for skipping
|
||||
focus, skipping tasklist, skipping winlist.
|
||||
|
||||
The second two work well. skipfocus is not thoroughly implemented in the e
|
||||
code, ie. you can still focus =) I'm about to go through and add some logic
|
||||
for that... Then I was gonna make non-ALT button clicks on skip_focus
|
||||
windows bring up root menus...
|
||||
|
||||
Lots of changes, so check for bugs =)
|
||||
|
||||
|
|
18
src/E.h
18
src/E.h
|
@ -483,8 +483,11 @@ int Esnprintf(va_alist);
|
|||
#define ACTION_STICK_NG 95
|
||||
#define ACTION_SHADE_NG 96
|
||||
#define ACTION_RAISE_LOWER_NG 97
|
||||
#define ACTION_SKIPFOCUS 98
|
||||
#define ACTION_SKIPTASK 99
|
||||
#define ACTION_SKIPWINLIST 100
|
||||
/* false number excluding the above list */
|
||||
#define ACTION_NUMBEROF 98
|
||||
#define ACTION_NUMBEROF 101
|
||||
|
||||
#define MODE_NONE 0
|
||||
#define MODE_MOVE 1
|
||||
|
@ -1388,6 +1391,12 @@ struct _snapshot
|
|||
int *groups;
|
||||
int num_groups;
|
||||
int used;
|
||||
char use_skipwinlist;
|
||||
char skipwinlist;
|
||||
char use_skiptask;
|
||||
char skiptask;
|
||||
char use_skipfocus;
|
||||
char skipfocus;
|
||||
};
|
||||
|
||||
typedef struct _ditembutton DItemButton;
|
||||
|
@ -2380,8 +2389,8 @@ void ModifyCMClass(char *name,
|
|||
int rnum, unsigned char *rpx,
|
||||
unsigned char *rpy, int gnum,
|
||||
unsigned char *gpx, unsigned char *gpy,
|
||||
int bnum, unsigned char *bpx,
|
||||
|
||||
int bnum, unsigned char *bpx,
|
||||
unsigned char *bpy);
|
||||
|
||||
/* config.c functions */
|
||||
|
@ -2508,8 +2517,8 @@ Iconbox *SelectIconboxForEwin(EWin * ewin);
|
|||
/* slideouts.c functions */
|
||||
void SlideWindowSizeTo(Window win, int fx, int fy,
|
||||
int tx, int ty,
|
||||
int fw, int fh, int tw, int th,
|
||||
|
||||
int fw, int fh, int tw, int th,
|
||||
int speed);
|
||||
Slideout *CreateSlideout(char *name, char dir);
|
||||
void ShowSlideout(Slideout * s, Window win);
|
||||
|
@ -2744,6 +2753,9 @@ void SnapshotEwinSticky(EWin * ewin);
|
|||
void SnapshotEwinIcon(EWin * ewin);
|
||||
void SnapshotEwinShade(EWin * ewin);
|
||||
void SnapshotEwinCmd(EWin * ewin);
|
||||
void SnapshotEwinSkipFocus(EWin * ewin);
|
||||
void SnapshotEwinSkipTask(EWin * ewin);
|
||||
void SnapshotEwinSkipWinList(EWin * ewin);
|
||||
void SnapshotEwinGroups(EWin * ewin, char onoff);
|
||||
void SnapshotEwinAll(EWin * ewin);
|
||||
void UnsnapshotEwin(EWin * ewin);
|
||||
|
|
2
src/TODO
2
src/TODO
|
@ -13,6 +13,8 @@ fix to e/dox/dox.h for freetype 1.3
|
|||
#-style comments in .menu files
|
||||
added "Warp pointer after moving menus" option to Special FX Settings
|
||||
added "Show sticky windows in focus list" option to Focus Settings
|
||||
added winops/remember options/action definitions for:
|
||||
Skip focus, skip winlist, skip tasklist.
|
||||
|
||||
The Road to 0.17 (post 0.16.x):
|
||||
File Manager Preview Application (you'll hopefully get a chance to see a little bit of a preview of what E's filemanager will look like)
|
||||
|
|
|
@ -1181,11 +1181,11 @@ doMoveEnd(void *params)
|
|||
if (gwins[i]->floating)
|
||||
MoveEwinToDesktopAt(gwins[i], d,
|
||||
gwins[i]->x - (desks.desk[d].x -
|
||||
desks.desk[gwins[i]->
|
||||
desktop].x),
|
||||
desks.
|
||||
desk[gwins[i]->desktop].x),
|
||||
gwins[i]->y - (desks.desk[d].y -
|
||||
desks.desk[gwins[i]->
|
||||
desktop].y));
|
||||
desks.
|
||||
desk[gwins[i]->desktop].y));
|
||||
else
|
||||
MoveEwinToDesktopAt(gwins[i], d, gwins[i]->x, gwins[i]->y);
|
||||
gwins[i]->floating = 0;
|
||||
|
@ -1750,6 +1750,91 @@ doStickNoGroup(void *params)
|
|||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
doSkipTask(void *params)
|
||||
{
|
||||
EWin *ewin;
|
||||
char skiptask;
|
||||
|
||||
EDBUG(6, "doSkipTask");
|
||||
|
||||
if (InZoom())
|
||||
EDBUG_RETURN(0);
|
||||
if (params)
|
||||
ewin = FindItem(NULL, atoi((char *)params), LIST_FINDBY_ID,
|
||||
LIST_TYPE_EWIN);
|
||||
else
|
||||
ewin = GetFocusEwin();
|
||||
if (!ewin)
|
||||
EDBUG_RETURN(0);
|
||||
|
||||
skiptask = ewin->skiptask;
|
||||
|
||||
ewin->skiptask = !(skiptask);
|
||||
params = NULL;
|
||||
GNOME_SetHint(ewin);
|
||||
RememberImportantInfoForEwin(ewin);
|
||||
|
||||
EDBUG_RETURN(0);
|
||||
}
|
||||
|
||||
int
|
||||
doSkipFocus(void *params)
|
||||
{
|
||||
EWin *ewin;
|
||||
int num;
|
||||
char skipfocus;
|
||||
|
||||
EDBUG(6, "doSkipFocus");
|
||||
|
||||
if (InZoom())
|
||||
EDBUG_RETURN(0);
|
||||
if (params)
|
||||
ewin = FindItem(NULL, atoi((char *)params), LIST_FINDBY_ID,
|
||||
LIST_TYPE_EWIN);
|
||||
else
|
||||
ewin = GetFocusEwin();
|
||||
if (!ewin)
|
||||
EDBUG_RETURN(0);
|
||||
|
||||
skipfocus = ewin->skipfocus;
|
||||
|
||||
ewin->skipfocus = !(skipfocus);
|
||||
|
||||
params = NULL;
|
||||
GNOME_SetHint(ewin);
|
||||
RememberImportantInfoForEwin(ewin);
|
||||
EDBUG_RETURN(0);
|
||||
}
|
||||
|
||||
int
|
||||
doSkipWinList(void *params)
|
||||
{
|
||||
EWin *ewin;
|
||||
int num;
|
||||
char skipwinlist;
|
||||
|
||||
EDBUG(6, "doSkipWinList");
|
||||
|
||||
if (InZoom())
|
||||
EDBUG_RETURN(0);
|
||||
if (params)
|
||||
ewin = FindItem(NULL, atoi((char *)params), LIST_FINDBY_ID,
|
||||
LIST_TYPE_EWIN);
|
||||
else
|
||||
ewin = GetFocusEwin();
|
||||
if (!ewin)
|
||||
EDBUG_RETURN(0);
|
||||
|
||||
skipwinlist = ewin->skipwinlist;
|
||||
|
||||
ewin->skipwinlist = !(skipwinlist);
|
||||
params = NULL;
|
||||
GNOME_SetHint(ewin);
|
||||
RememberImportantInfoForEwin(ewin);
|
||||
EDBUG_RETURN(0);
|
||||
}
|
||||
|
||||
int
|
||||
doInplaceDesktop(void *params)
|
||||
{
|
||||
|
@ -3922,6 +4007,9 @@ initFunctionArray(void)
|
|||
ActionFunctions[ACTION_SHADE_NG] = (int (*)(void *))(doShadeNoGroup);
|
||||
ActionFunctions[ACTION_RAISE_LOWER_NG] =
|
||||
(int (*)(void *))(doRaiseLowerNoGroup);
|
||||
ActionFunctions[ACTION_SKIPFOCUS] = (int (*)(void *))(doSkipFocus);
|
||||
ActionFunctions[ACTION_SKIPTASK] = (int (*)(void *))(doSkipTask);
|
||||
ActionFunctions[ACTION_SKIPWINLIST] = (int (*)(void *))(doSkipWinList);
|
||||
|
||||
EDBUG_RETURN(0);
|
||||
}
|
||||
|
|
|
@ -1163,8 +1163,7 @@ CalcEwinWinpart(EWin * ewin, int i)
|
|||
ewin->border->part[i].geom.topleft.x.absolute +
|
||||
ewin->bits[topleft].x;
|
||||
y =
|
||||
((ewin->
|
||||
border->part[i].geom.topleft.y.percent *
|
||||
((ewin->border->part[i].geom.topleft.y.percent *
|
||||
ewin->bits[topleft].h) >> 10) +
|
||||
ewin->border->part[i].geom.topleft.y.absolute +
|
||||
ewin->bits[topleft].y;
|
||||
|
@ -1173,12 +1172,12 @@ CalcEwinWinpart(EWin * ewin, int i)
|
|||
if (bottomright == -1)
|
||||
{
|
||||
ox =
|
||||
((ewin->
|
||||
border->part[i].geom.bottomright.x.percent * ewin->w) >> 10) +
|
||||
((ewin->border->
|
||||
part[i].geom.bottomright.x.percent * ewin->w) >> 10) +
|
||||
ewin->border->part[i].geom.bottomright.x.absolute;
|
||||
oy =
|
||||
((ewin->
|
||||
border->part[i].geom.bottomright.y.percent * ewin->h) >> 10) +
|
||||
((ewin->border->
|
||||
part[i].geom.bottomright.y.percent * ewin->h) >> 10) +
|
||||
ewin->border->part[i].geom.bottomright.y.absolute;
|
||||
}
|
||||
else if (bottomright >= 0)
|
||||
|
@ -2591,8 +2590,9 @@ MinShadeSize(EWin * ewin, int *mw, int *mh)
|
|||
(ewin->w - ewin->border->border.right) > rightborderwidth)
|
||||
rightborderwidth =
|
||||
(ewin->bits[i].x + ewin->bits[i].w) - (ewin->w -
|
||||
ewin->border->
|
||||
border.right);
|
||||
ewin->
|
||||
border->border.
|
||||
right);
|
||||
}
|
||||
}
|
||||
ewin->w = rightborderwidth + leftborderwidth;
|
||||
|
@ -2618,8 +2618,9 @@ MinShadeSize(EWin * ewin, int *mw, int *mh)
|
|||
bottomborderwidth)
|
||||
bottomborderwidth =
|
||||
(ewin->bits[i].y + ewin->bits[i].h) - (ewin->h -
|
||||
ewin->border->
|
||||
border.bottom);
|
||||
ewin->
|
||||
border->border.
|
||||
bottom);
|
||||
}
|
||||
}
|
||||
ewin->h = bottomborderwidth + topborderwidth;
|
||||
|
|
33
src/dialog.c
33
src/dialog.c
|
@ -1081,8 +1081,8 @@ DialogRealizeItem(Dialog * d, DItem * di)
|
|||
ImlibImage *im;
|
||||
|
||||
im =
|
||||
ELoadImage(di->item.slider.ic_border->norm.normal->
|
||||
im_file);
|
||||
ELoadImage(di->item.slider.ic_border->norm.
|
||||
normal->im_file);
|
||||
if (im)
|
||||
{
|
||||
di->item.slider.border_orig_w = im->rgb_width;
|
||||
|
@ -1356,23 +1356,25 @@ DialogRealizeItem(Dialog * d, DItem * di)
|
|||
dii->item.check_button.check_win,
|
||||
dii->x, dii->y +
|
||||
((dii->h -
|
||||
dii->item.check_button.
|
||||
check_orig_h) / 2),
|
||||
dii->item.check_button.
|
||||
check_orig_w,
|
||||
dii->item.check_button.
|
||||
check_orig_h);
|
||||
dii->item.
|
||||
check_button.check_orig_h) /
|
||||
2),
|
||||
dii->item.
|
||||
check_button.check_orig_w,
|
||||
dii->item.
|
||||
check_button.check_orig_h);
|
||||
if (dii->type == DITEM_RADIOBUTTON)
|
||||
EMoveResizeWindow(disp,
|
||||
dii->item.radio_button.radio_win,
|
||||
dii->x, dii->y +
|
||||
((dii->h -
|
||||
dii->item.radio_button.
|
||||
radio_orig_h) / 2),
|
||||
dii->item.radio_button.
|
||||
radio_orig_w,
|
||||
dii->item.radio_button.
|
||||
radio_orig_h);
|
||||
dii->item.
|
||||
radio_button.radio_orig_h) /
|
||||
2),
|
||||
dii->item.
|
||||
radio_button.radio_orig_w,
|
||||
dii->item.
|
||||
radio_button.radio_orig_h);
|
||||
if (dii->type == DITEM_AREA)
|
||||
{
|
||||
dii->item.area.w = dii->w -
|
||||
|
@ -1882,8 +1884,7 @@ DialogItemAreaSetSize(DItem * di, int w, int h)
|
|||
di->item.area.h = h;
|
||||
}
|
||||
|
||||
Window
|
||||
DialogItemAreaGetWindow(DItem * di)
|
||||
Window DialogItemAreaGetWindow(DItem * di)
|
||||
{
|
||||
return di->item.area.area_win;
|
||||
}
|
||||
|
|
|
@ -494,8 +494,7 @@ HandleMotion(XEvent * ev)
|
|||
(gwins
|
||||
[i]->reqx,
|
||||
gwins[i]->x,
|
||||
mode.
|
||||
edge_snap_dist)))))))
|
||||
mode.edge_snap_dist)))))))
|
||||
{
|
||||
jumpx = 1;
|
||||
ndx = gwins[i]->reqx - gwins[i]->x + dx;
|
||||
|
@ -518,8 +517,7 @@ HandleMotion(XEvent * ev)
|
|||
(gwins
|
||||
[i]->reqy,
|
||||
gwins[i]->y,
|
||||
mode.
|
||||
edge_snap_dist)))))))
|
||||
mode.edge_snap_dist)))))))
|
||||
{
|
||||
jumpy = 1;
|
||||
ndy = gwins[i]->reqy - gwins[i]->y + dy;
|
||||
|
@ -982,8 +980,8 @@ HandleMotion(XEvent * ev)
|
|||
{
|
||||
di->item.slider.wanted_val += dy;
|
||||
di->item.slider.val = di->item.slider.lower +
|
||||
((((di->
|
||||
item.slider.base_h - di->item.slider.knob_h -
|
||||
((((di->item.
|
||||
slider.base_h - di->item.slider.knob_h -
|
||||
di->item.slider.wanted_val) *
|
||||
(di->item.slider.upper -
|
||||
di->item.slider.lower)) /
|
||||
|
@ -2509,13 +2507,13 @@ HandleMouseUp(XEvent * ev)
|
|||
HideEwin(gwins[i]);
|
||||
MoveEwin(gwins[i], gwin_px[i] +
|
||||
((desks.desk
|
||||
[gwins[i]->desktop].
|
||||
current_area_x) -
|
||||
[gwins[i]->
|
||||
desktop].current_area_x) -
|
||||
p->hi_ewin->area_x) * root.w,
|
||||
gwin_py[i] +
|
||||
((desks.
|
||||
desk[gwins[i]->desktop].
|
||||
current_area_y) -
|
||||
((desks.desk
|
||||
[gwins[i]->
|
||||
desktop].current_area_y) -
|
||||
p->hi_ewin->area_y) * root.h);
|
||||
if (was_shaded != gwins[i]->shaded)
|
||||
InstantShadeEwin(gwins[i]);
|
||||
|
|
|
@ -262,8 +262,7 @@ cp(char *s, char *ss)
|
|||
EDBUG_RETURN_;
|
||||
}
|
||||
|
||||
time_t
|
||||
moddate(char *s)
|
||||
time_t moddate(char *s)
|
||||
{
|
||||
struct stat st;
|
||||
|
||||
|
|
|
@ -1692,8 +1692,8 @@ IPC_ImageClass(char *params, Client * c)
|
|||
if (iclass->norm.normal->real_file)
|
||||
im =
|
||||
Imlib_load_image(id,
|
||||
iclass->norm.normal->
|
||||
real_file);
|
||||
iclass->norm.
|
||||
normal->real_file);
|
||||
if (im)
|
||||
{
|
||||
Esnprintf(buf, sizeof(buf),
|
||||
|
|
|
@ -126,8 +126,7 @@ GetNetText(char *URL)
|
|||
|
||||
}
|
||||
|
||||
time_t
|
||||
GetNetFileDate(char *URL)
|
||||
time_t GetNetFileDate(char *URL)
|
||||
{
|
||||
|
||||
#ifdef AUTOUPGRADE
|
||||
|
|
|
@ -37,8 +37,7 @@ static Window sc_window = 0;
|
|||
static Atom sc_atom = 0;
|
||||
static ImlibData *imd = NULL;
|
||||
|
||||
Window
|
||||
SC_GetDestWin(void)
|
||||
Window SC_GetDestWin(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -737,8 +737,7 @@ SetupEnv()
|
|||
return;
|
||||
}
|
||||
|
||||
Window
|
||||
MakeExtInitWin(void)
|
||||
Window MakeExtInitWin(void)
|
||||
{
|
||||
Display *d2;
|
||||
Window win;
|
||||
|
|
141
src/snaps.c
141
src/snaps.c
|
@ -121,6 +121,12 @@ NewSnapshot(char *name)
|
|||
sn->groups = NULL;
|
||||
sn->num_groups = 0;
|
||||
sn->used = 0;
|
||||
sn->use_skiptask = 0;
|
||||
sn->skiptask = 0;
|
||||
sn->use_skipfocus = 0;
|
||||
sn->skipfocus = 0;
|
||||
sn->use_skipwinlist = 0;
|
||||
sn->skipwinlist = 0;
|
||||
AddItemEnd(sn, sn->name, 0, LIST_TYPE_SNAPSHOT);
|
||||
return sn;
|
||||
}
|
||||
|
@ -159,6 +165,12 @@ ClearSnapshot(Snapshot * sn)
|
|||
Efree(sn->groups);
|
||||
sn->num_groups = 0;
|
||||
sn->used = 0;
|
||||
sn->use_skiptask = 0;
|
||||
sn->skiptask = 0;
|
||||
sn->use_skipfocus = 0;
|
||||
sn->skipfocus = 0;
|
||||
sn->use_skipwinlist = 0;
|
||||
sn->skipwinlist = 0;
|
||||
ListChangeItemID(LIST_TYPE_SNAPSHOT, sn, 0);
|
||||
}
|
||||
|
||||
|
@ -181,6 +193,9 @@ static char tmp_snap_icon;
|
|||
static char tmp_snap_shade;
|
||||
static char tmp_snap_cmd;
|
||||
static char tmp_snap_group;
|
||||
static char tmp_snap_skipfocus;
|
||||
static char tmp_snap_skiptask;
|
||||
static char tmp_snap_skipwinlist;
|
||||
|
||||
static void CB_ApplySnap(int val, void *data);
|
||||
static void
|
||||
|
@ -222,6 +237,12 @@ CB_ApplySnap(int val, void *data)
|
|||
SnapshotEwinCmd(ewin);
|
||||
if (tmp_snap_group)
|
||||
SnapshotEwinGroups(ewin, tmp_snap_group);
|
||||
if (tmp_snap_skipfocus)
|
||||
SnapshotEwinSkipFocus(ewin);
|
||||
if (tmp_snap_skiptask)
|
||||
SnapshotEwinSkipTask(ewin);
|
||||
if (tmp_snap_skipwinlist)
|
||||
SnapshotEwinSkipWinList(ewin);
|
||||
SaveSnapInfo();
|
||||
}
|
||||
}
|
||||
|
@ -280,6 +301,9 @@ SnapshotEwinDialog(EWin * ewin)
|
|||
tmp_snap_shade = 0;
|
||||
tmp_snap_cmd = 0;
|
||||
tmp_snap_group = 0;
|
||||
tmp_snap_skipfocus = 0;
|
||||
tmp_snap_skiptask = 0;
|
||||
tmp_snap_skipwinlist = 0;
|
||||
if (sn)
|
||||
{
|
||||
if (sn->border_name)
|
||||
|
@ -302,6 +326,12 @@ SnapshotEwinDialog(EWin * ewin)
|
|||
tmp_snap_cmd = 1;
|
||||
if (sn->groups)
|
||||
tmp_snap_group = 1;
|
||||
if (sn->use_skipfocus)
|
||||
tmp_snap_skipfocus = 1;
|
||||
if (sn->use_skiptask)
|
||||
tmp_snap_skiptask = 1;
|
||||
if (sn->use_skipwinlist)
|
||||
tmp_snap_skipwinlist = 1;
|
||||
}
|
||||
|
||||
di = DialogAddItem(table, DITEM_TEXT);
|
||||
|
@ -454,6 +484,30 @@ SnapshotEwinDialog(EWin * ewin)
|
|||
DialogItemCheckButtonSetState(di, tmp_snap_layer);
|
||||
DialogItemCheckButtonSetPtr(di, &tmp_snap_layer);
|
||||
|
||||
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
||||
DialogItemSetColSpan(di, 2);
|
||||
DialogItemSetPadding(di, 2, 2, 2, 2);
|
||||
DialogItemSetFill(di, 1, 0);
|
||||
DialogItemCheckButtonSetText(di, _("Focus Skip"));
|
||||
DialogItemCheckButtonSetState(di, tmp_snap_skipfocus);
|
||||
DialogItemCheckButtonSetPtr(di, &tmp_snap_skipfocus);
|
||||
|
||||
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
||||
DialogItemSetColSpan(di, 2);
|
||||
DialogItemSetPadding(di, 2, 2, 2, 2);
|
||||
DialogItemSetFill(di, 1, 0);
|
||||
DialogItemCheckButtonSetText(di, _("TaskList Skip"));
|
||||
DialogItemCheckButtonSetState(di, tmp_snap_skiptask);
|
||||
DialogItemCheckButtonSetPtr(di, &tmp_snap_skiptask);
|
||||
|
||||
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
||||
DialogItemSetColSpan(di, 2);
|
||||
DialogItemSetPadding(di, 2, 2, 2, 2);
|
||||
DialogItemSetFill(di, 1, 0);
|
||||
DialogItemCheckButtonSetText(di, _("Window List Skip"));
|
||||
DialogItemCheckButtonSetState(di, tmp_snap_skipwinlist);
|
||||
DialogItemCheckButtonSetPtr(di, &tmp_snap_skipwinlist);
|
||||
|
||||
if (ewin->client.command)
|
||||
{
|
||||
char ok = 1;
|
||||
|
@ -466,7 +520,7 @@ SnapshotEwinDialog(EWin * ewin)
|
|||
if (ok)
|
||||
{
|
||||
di = DialogAddItem(table, DITEM_CHECKBUTTON);
|
||||
DialogItemSetColSpan(di, 2);
|
||||
DialogItemSetColSpan(di, 4);
|
||||
DialogItemSetPadding(di, 2, 2, 2, 2);
|
||||
DialogItemSetFill(di, 1, 0);
|
||||
DialogItemCheckButtonSetText(di,
|
||||
|
@ -477,13 +531,13 @@ SnapshotEwinDialog(EWin * ewin)
|
|||
else
|
||||
{
|
||||
di = DialogAddItem(table, DITEM_NONE);
|
||||
DialogItemSetColSpan(di, 2);
|
||||
DialogItemSetColSpan(di, 4);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
di = DialogAddItem(table, DITEM_NONE);
|
||||
DialogItemSetColSpan(di, 2);
|
||||
DialogItemSetColSpan(di, 4);
|
||||
}
|
||||
|
||||
if (ewin->groups)
|
||||
|
@ -603,6 +657,42 @@ SnapshotEwinSticky(EWin * ewin)
|
|||
sn->sticky = ewin->sticky;
|
||||
}
|
||||
|
||||
void
|
||||
SnapshotEwinSkipFocus(EWin * ewin)
|
||||
{
|
||||
Snapshot *sn;
|
||||
|
||||
sn = GetSnapshot(ewin);
|
||||
if (!sn)
|
||||
return;
|
||||
sn->use_skipfocus = 1;
|
||||
sn->skipfocus = ewin->skipfocus;
|
||||
}
|
||||
|
||||
void
|
||||
SnapshotEwinSkipTask(EWin * ewin)
|
||||
{
|
||||
Snapshot *sn;
|
||||
|
||||
sn = GetSnapshot(ewin);
|
||||
if (!sn)
|
||||
return;
|
||||
sn->use_skiptask = 1;
|
||||
sn->skiptask = ewin->skiptask;
|
||||
}
|
||||
|
||||
void
|
||||
SnapshotEwinSkipWinList(EWin * ewin)
|
||||
{
|
||||
Snapshot *sn;
|
||||
|
||||
sn = GetSnapshot(ewin);
|
||||
if (!sn)
|
||||
return;
|
||||
sn->use_skipwinlist = 1;
|
||||
sn->skipwinlist = ewin->skipwinlist;
|
||||
}
|
||||
|
||||
void
|
||||
SnapshotEwinIcon(EWin * ewin)
|
||||
{
|
||||
|
@ -733,6 +823,9 @@ SnapshotEwinAll(EWin * ewin)
|
|||
SnapshotEwinShade(ewin);
|
||||
SnapshotEwinCmd(ewin);
|
||||
SnapshotEwinGroups(ewin, ewin->num_groups);
|
||||
SnapshotEwinSkipFocus(ewin);
|
||||
SnapshotEwinSkipTask(ewin);
|
||||
SnapshotEwinSkipWinList(ewin);
|
||||
}
|
||||
|
||||
/* unsnapshot any saved info about this ewin */
|
||||
|
@ -813,6 +906,12 @@ SaveSnapInfo(void)
|
|||
fprintf(f, "LAYER: %i\n", sn->layer);
|
||||
if (sn->use_sticky)
|
||||
fprintf(f, "STICKY: %i\n", sn->sticky);
|
||||
if (sn->use_skipfocus)
|
||||
fprintf(f, "SKIPFOCUS: %i\n", sn->skipfocus);
|
||||
if (sn->use_skiptask)
|
||||
fprintf(f, "SKIPTASK: %i\n", sn->skiptask);
|
||||
if (sn->use_skipwinlist)
|
||||
fprintf(f, "SKIPWINLIST: %i\n", sn->skipwinlist);
|
||||
if (sn->use_shade)
|
||||
fprintf(f, "SHADE: %i\n", sn->shade);
|
||||
if (sn->border_name)
|
||||
|
@ -982,6 +1081,24 @@ LoadSnapInfo(void)
|
|||
word(buf, 2, s);
|
||||
sn->sticky = atoi(s);
|
||||
}
|
||||
else if (!strcmp(s, "SKIPFOCUS"))
|
||||
{
|
||||
sn->use_skipfocus = 1;
|
||||
word(buf, 2, s);
|
||||
sn->skipfocus = atoi(s);
|
||||
}
|
||||
else if (!strcmp(s, "SKIPTASK"))
|
||||
{
|
||||
sn->use_skiptask = 1;
|
||||
word(buf, 2, s);
|
||||
sn->skiptask = atoi(s);
|
||||
}
|
||||
else if (!strcmp(s, "SKIPWINLIST"))
|
||||
{
|
||||
sn->use_skipwinlist = 1;
|
||||
word(buf, 2, s);
|
||||
sn->skipwinlist = atoi(s);
|
||||
}
|
||||
else if (!strcmp(s, "SHADE:"))
|
||||
{
|
||||
sn->use_shade = 1;
|
||||
|
@ -1065,6 +1182,12 @@ MatchEwinToSnapInfo(EWin * ewin)
|
|||
ewin->layer = sn->layer;
|
||||
if (sn->use_sticky)
|
||||
ewin->sticky = sn->sticky;
|
||||
if (sn->use_skipfocus)
|
||||
ewin->skipfocus = sn->skipfocus;
|
||||
if (sn->use_skiptask)
|
||||
ewin->skiptask = sn->skiptask;
|
||||
if (sn->use_skipwinlist)
|
||||
ewin->skipwinlist = sn->skipwinlist;
|
||||
if (sn->use_shade)
|
||||
ewin->shaded = sn->shade;
|
||||
if (sn->iclass_name)
|
||||
|
@ -1221,6 +1344,12 @@ MatchEwinToSnapInfoAfter(EWin * ewin)
|
|||
else
|
||||
MakeWindowUnSticky(ewin);
|
||||
}
|
||||
if (sn->use_skipfocus)
|
||||
ewin->skipfocus = sn->skipfocus;
|
||||
if (sn->use_skiptask)
|
||||
ewin->skiptask = sn->skiptask;
|
||||
if (sn->use_skipwinlist)
|
||||
ewin->skipwinlist = sn->skipwinlist;
|
||||
if (sn->use_shade)
|
||||
{
|
||||
if (sn->shade)
|
||||
|
@ -1280,6 +1409,9 @@ RememberImportantInfoForEwin(EWin * ewin)
|
|||
SnapshotEwinSticky(ewin);
|
||||
SnapshotEwinShade(ewin);
|
||||
SnapshotEwinGroups(ewin, ewin->num_groups);
|
||||
SnapshotEwinSkipFocus(ewin);
|
||||
SnapshotEwinSkipTask(ewin);
|
||||
SnapshotEwinSkipWinList(ewin);
|
||||
SaveSnapInfo();
|
||||
}
|
||||
}
|
||||
|
@ -1305,6 +1437,9 @@ RememberImportantInfoForEwins(EWin * ewin)
|
|||
SnapshotEwinSticky(gwins[i]);
|
||||
SnapshotEwinShade(gwins[i]);
|
||||
SnapshotEwinGroups(gwins[i], gwins[i]->num_groups);
|
||||
SnapshotEwinSkipFocus(gwins[i]);
|
||||
SnapshotEwinSkipTask(gwins[i]);
|
||||
SnapshotEwinSkipWinList(gwins[i]);
|
||||
SaveSnapInfo();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -326,6 +326,9 @@
|
|||
#define __A_STICK_NG 95
|
||||
#define __A_SHADE_NG 96
|
||||
#define __A_RAISE_LOWER_NG 97
|
||||
#define __A_SKIPFOCUS 98
|
||||
#define __A_SKIPTASK 99
|
||||
#define __A_SKIPWINLIST 100
|
||||
|
||||
#define __MODIFIER_KEY 101
|
||||
#define __TYPE 102
|
||||
|
|
|
@ -170,6 +170,9 @@ ADD_MENU_TEXT_ITEM("Raise", __A_RAISE, "")
|
|||
ADD_MENU_TEXT_ITEM("Lower", __A_LOWER, "")
|
||||
ADD_MENU_TEXT_ITEM("Shade/Unshade", __A_SHADE, "")
|
||||
ADD_MENU_TEXT_ITEM("Stick/Unstick", __A_STICK, "")
|
||||
ADD_MENU_TEXT_ITEM("Skip/Don't skip Focus", __A_SKIPFOCUS, "")
|
||||
ADD_MENU_TEXT_ITEM("Skip/Don't skip Tasklist", __A_SKIPTASK, "")
|
||||
ADD_MENU_TEXT_ITEM("Skip/Don't skip Winlist", __A_SKIPWINLIST,"")
|
||||
ADD_MENU_TEXT_ITEM("Fullscreen/Window", __A_ZOOM, "")
|
||||
ADD_MENU_TEXT_ITEM("Remember...", __A_SNAPSHOT, "dialog")
|
||||
ADD_MENU_SUBMENU_TEXT_ITEM("Window Groups", "WINOPS_GROUP")
|
||||
|
|
169
src/tooltips.c
169
src/tooltips.c
|
@ -679,8 +679,8 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->im),
|
||||
x, y);
|
||||
|
@ -702,11 +702,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -722,11 +723,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -742,11 +744,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -762,11 +765,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -782,11 +786,12 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
ic->norm.normal->im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.normal->
|
||||
im),
|
||||
ic->norm.
|
||||
normal->im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.normal->
|
||||
im), x, y);
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
break;
|
||||
|
@ -806,16 +811,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -829,16 +835,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -852,16 +859,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -875,16 +883,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -898,16 +907,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -921,16 +931,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -944,16 +955,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
@ -967,16 +979,17 @@ ShowToolTip(ToolTip * tt, char *text, ActionClass * ac, int x, int y)
|
|||
{
|
||||
Imlib_render(id, ic->norm.normal->im,
|
||||
ic->norm.normal->im->rgb_width,
|
||||
ic->norm.normal->im->
|
||||
rgb_height);
|
||||
ic->norm.normal->
|
||||
im->rgb_height);
|
||||
PastePixmap(disp, tt->win,
|
||||
Imlib_copy_image(id,
|
||||
ic->norm.
|
||||
normal->im),
|
||||
ic->
|
||||
norm.normal->
|
||||
im),
|
||||
Imlib_copy_mask(id,
|
||||
ic->norm.
|
||||
normal->im), x,
|
||||
y);
|
||||
ic->
|
||||
norm.normal->
|
||||
im), x, y);
|
||||
x += ic->norm.normal->im->rgb_width;
|
||||
}
|
||||
}
|
||||
|
|
15
src/x.c
15
src/x.c
|
@ -40,7 +40,8 @@ EFreePixmap(Display * display, Pixmap pixmap)
|
|||
XFreePixmap(display, pixmap);
|
||||
}
|
||||
|
||||
Window ECreateWindow(Window parent, int x, int y, int w, int h, int saveunder)
|
||||
Window
|
||||
ECreateWindow(Window parent, int x, int y, int w, int h, int saveunder)
|
||||
{
|
||||
EXID *xid;
|
||||
Window win;
|
||||
|
@ -586,8 +587,7 @@ DelXID(Window win)
|
|||
}
|
||||
}
|
||||
|
||||
Window
|
||||
ECreateEventWindow(Window parent, int x, int y, int w, int h)
|
||||
Window ECreateEventWindow(Window parent, int x, int y, int w, int h)
|
||||
{
|
||||
Window win;
|
||||
XSetWindowAttributes attr;
|
||||
|
@ -603,8 +603,7 @@ ECreateEventWindow(Window parent, int x, int y, int w, int h)
|
|||
* create a window which will accept the keyboard focus when no other
|
||||
* windows have it
|
||||
*/
|
||||
Window
|
||||
ECreateFocusWindow(Window parent, int x, int y, int w, int h)
|
||||
Window ECreateFocusWindow(Window parent, int x, int y, int w, int h)
|
||||
{
|
||||
Window win;
|
||||
XSetWindowAttributes attr;
|
||||
|
@ -738,8 +737,7 @@ WinExists(Window win)
|
|||
EDBUG_RETURN(0);
|
||||
}
|
||||
|
||||
Window
|
||||
WindowAtXY_0(Window base, int bx, int by, int x, int y)
|
||||
Window WindowAtXY_0(Window base, int bx, int by, int x, int y)
|
||||
{
|
||||
Window *list = NULL;
|
||||
XWindowAttributes att;
|
||||
|
@ -786,8 +784,7 @@ WindowAtXY_0(Window base, int bx, int by, int x, int y)
|
|||
EDBUG_RETURN(base);
|
||||
}
|
||||
|
||||
Window
|
||||
WindowAtXY(int x, int y)
|
||||
Window WindowAtXY(int x, int y)
|
||||
{
|
||||
Window *list = NULL;
|
||||
Window child = 0, parent_win = 0, root_win = 0;
|
||||
|
|
Loading…
Reference in New Issue