Remove RandomPlacement and UsePPosition options.
For now that means to behave as if RandomPlacement is true and UsePPosition is non-zero (use PPosition if the window position isn't (0,0).
This commit is contained in:
parent
eb039dc872
commit
4de2773058
@ -554,10 +554,6 @@ work around bugs in older applications that have problems with focus events.
|
|||||||
This variable sets \fItwmruined\fP's priority. \fIpriority\fP should be an
|
This variable sets \fItwmruined\fP's priority. \fIpriority\fP should be an
|
||||||
unquoted, signed number (e.g. 999). This variable has an effect only
|
unquoted, signed number (e.g. 999). This variable has an effect only
|
||||||
if the server supports the SYNC extension.
|
if the server supports the SYNC extension.
|
||||||
.IP "\fBRandomPlacement\fP" 8
|
|
||||||
This variable indicates that windows with no specified geometry should
|
|
||||||
be placed in a pseudo-random location instead of having the user drag out
|
|
||||||
an outline.
|
|
||||||
.IP "\fBResizeFont\fP \fIstring\fP" 8
|
.IP "\fBResizeFont\fP \fIstring\fP" 8
|
||||||
This variable specifies the font to be used for in the dimensions window when
|
This variable specifies the font to be used for in the dimensions window when
|
||||||
resizing windows. The default is "fixed".
|
resizing windows. The default is "fixed".
|
||||||
@ -625,19 +621,6 @@ This variable specifies the filename of a bitmap file to be
|
|||||||
used as the default icon. This bitmap will be used as the icon of all
|
used as the default icon. This bitmap will be used as the icon of all
|
||||||
clients which do not provide an icon bitmap and are not listed
|
clients which do not provide an icon bitmap and are not listed
|
||||||
in the \fBIcons\fP list.
|
in the \fBIcons\fP list.
|
||||||
.IP "\fBUsePPosition\fP \fIstring\fP" 8
|
|
||||||
This variable specifies whether or not \fItwmruined\fP should honor
|
|
||||||
program-requested locations (given by the \fBPPosition\fP flag in the
|
|
||||||
WM_NORMAL_HINTS property) in the absence of a user-specified position.
|
|
||||||
The argument \fIstring\fP may have one of three values: \fB"off"\fP
|
|
||||||
(the default)
|
|
||||||
indicating that \fItwmruined\fP
|
|
||||||
should ignore the program-supplied position,
|
|
||||||
\fB"on"\fP indicating that the position
|
|
||||||
should be used, and
|
|
||||||
\fB"non-zero"\fP indicating that the position should used if
|
|
||||||
it is other than (0,0). The latter option is for working around a bug in
|
|
||||||
older toolkits.
|
|
||||||
.IP "\fBWarpCursor\fP [{ \fIwin-list\fP }]" 8
|
.IP "\fBWarpCursor\fP [{ \fIwin-list\fP }]" 8
|
||||||
This variable indicates that the pointer should be warped into windows when
|
This variable indicates that the pointer should be warped into windows when
|
||||||
they are deiconified. If the optional \fIwin-list\fP is given, the pointer
|
they are deiconified. If the optional \fIwin-list\fP is given, the pointer
|
||||||
|
308
src/add_window.c
308
src/add_window.c
@ -144,12 +144,9 @@ TwmWindow *
|
|||||||
AddWindow(Window w)
|
AddWindow(Window w)
|
||||||
{
|
{
|
||||||
TwmWindow *tmp_win; /* new twm window structure */
|
TwmWindow *tmp_win; /* new twm window structure */
|
||||||
int stat;
|
|
||||||
XEvent event;
|
|
||||||
unsigned long valuemask; /* mask for create windows */
|
unsigned long valuemask; /* mask for create windows */
|
||||||
XSetWindowAttributes attributes; /* attributes for create windows */
|
XSetWindowAttributes attributes; /* attributes for create windows */
|
||||||
int width, height; /* tmp variable */
|
int random_placement; /* don't know where to put the window */
|
||||||
int ask_user; /* don't know where to put the window */
|
|
||||||
int gravx, gravy; /* gravity signs for positioning */
|
int gravx, gravy; /* gravity signs for positioning */
|
||||||
int namelen;
|
int namelen;
|
||||||
int bw2;
|
int bw2;
|
||||||
@ -341,32 +338,29 @@ AddWindow(Window w)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetGravityOffsets (tmp_win, &gravx, &gravy);
|
GetGravityOffsets(tmp_win, &gravx, &gravy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Don't bother user if:
|
* Random placement is used when...
|
||||||
*
|
*
|
||||||
* o the window is a transient, or
|
* o the window is not a transient, and
|
||||||
*
|
*
|
||||||
* o a USPosition was requested, or
|
* o a USPosition was not requested, and
|
||||||
*
|
*
|
||||||
* o a PPosition was requested and UsePPosition is ON or
|
* o a PPosition was not requested or it was and the window is not at (0,0)
|
||||||
* NON_ZERO if the window is at other than (0,0)
|
*
|
||||||
|
* According to twm's man page, not respecting PPosition = (0,0)
|
||||||
|
* avoids problems with old toolkits.
|
||||||
*/
|
*/
|
||||||
ask_user = TRUE;
|
random_placement = !tmp_win->transient && !(tmp_win->hints.flags & USPosition)
|
||||||
if (tmp_win->transient ||
|
&& !((tmp_win->hints.flags & PPosition)
|
||||||
(tmp_win->hints.flags & USPosition) ||
|
&& (tmp_win->attr.x != 0 || tmp_win->attr.y != 0));
|
||||||
((tmp_win->hints.flags & PPosition) && Scr->UsePPosition &&
|
|
||||||
(Scr->UsePPosition == PPOS_ON ||
|
|
||||||
tmp_win->attr.x != 0 || tmp_win->attr.y != 0)))
|
|
||||||
ask_user = FALSE;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* do any prompting for position
|
* set window position
|
||||||
*/
|
*/
|
||||||
if (HandlingEvents && ask_user && !restoredFromPrevSession) {
|
if (HandlingEvents && random_placement && !restoredFromPrevSession) {
|
||||||
if (Scr->RandomPlacement) { /* just stick it somewhere */
|
|
||||||
if ((PlaceX + tmp_win->attr.width) > Scr->MyDisplayWidth)
|
if ((PlaceX + tmp_win->attr.width) > Scr->MyDisplayWidth)
|
||||||
PlaceX = 50;
|
PlaceX = 50;
|
||||||
if ((PlaceY + tmp_win->attr.height) > Scr->MyDisplayHeight)
|
if ((PlaceY + tmp_win->attr.height) > Scr->MyDisplayHeight)
|
||||||
@ -376,280 +370,6 @@ AddWindow(Window w)
|
|||||||
tmp_win->attr.y = PlaceY;
|
tmp_win->attr.y = PlaceY;
|
||||||
PlaceX += 30;
|
PlaceX += 30;
|
||||||
PlaceY += 30;
|
PlaceY += 30;
|
||||||
} else { /* else prompt */
|
|
||||||
if (!(tmp_win->wmhints && tmp_win->wmhints->flags & StateHint &&
|
|
||||||
tmp_win->wmhints->initial_state == IconicState))
|
|
||||||
{
|
|
||||||
Bool firsttime = True;
|
|
||||||
|
|
||||||
/* better wait until all the mouse buttons have been
|
|
||||||
* released.
|
|
||||||
*/
|
|
||||||
while (TRUE)
|
|
||||||
{
|
|
||||||
XUngrabServer(dpy);
|
|
||||||
XSync(dpy, 0);
|
|
||||||
XGrabServer(dpy);
|
|
||||||
|
|
||||||
JunkMask = 0;
|
|
||||||
if (!XQueryPointer (dpy, Scr->Root, &JunkRoot,
|
|
||||||
&JunkChild, &JunkX, &JunkY,
|
|
||||||
&AddingX, &AddingY, &JunkMask))
|
|
||||||
JunkMask = 0;
|
|
||||||
|
|
||||||
JunkMask &= (Button1Mask | Button2Mask | Button3Mask |
|
|
||||||
Button4Mask | Button5Mask);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* watch out for changing screens
|
|
||||||
*/
|
|
||||||
if (firsttime) {
|
|
||||||
if (JunkRoot != Scr->Root) {
|
|
||||||
register int scrnum;
|
|
||||||
|
|
||||||
for (scrnum = 0; scrnum < NumScreens; scrnum++) {
|
|
||||||
if (JunkRoot == RootWindow (dpy, scrnum)) break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (scrnum != NumScreens) PreviousScreen = scrnum;
|
|
||||||
}
|
|
||||||
firsttime = False;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* wait for buttons to come up; yuck
|
|
||||||
*/
|
|
||||||
if (JunkMask != 0) continue;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* this will cause a warp to the indicated root
|
|
||||||
*/
|
|
||||||
stat = XGrabPointer(dpy, Scr->Root, False,
|
|
||||||
ButtonPressMask | ButtonReleaseMask |
|
|
||||||
PointerMotionMask | PointerMotionHintMask,
|
|
||||||
GrabModeAsync, GrabModeAsync,
|
|
||||||
Scr->Root, UpperLeftCursor, CurrentTime);
|
|
||||||
|
|
||||||
if (stat == GrabSuccess)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
width = (SIZE_HINDENT + MyFont_TextWidth (&Scr->SizeFont,
|
|
||||||
tmp_win->name, namelen));
|
|
||||||
height = Scr->SizeFont.height + SIZE_VINDENT * 2;
|
|
||||||
|
|
||||||
XResizeWindow (dpy, Scr->SizeWindow, width + SIZE_HINDENT, height);
|
|
||||||
XMapRaised(dpy, Scr->SizeWindow);
|
|
||||||
InstallRootColormap();
|
|
||||||
|
|
||||||
MyFont_ChangeGC(Scr->DefaultC.fore, Scr->DefaultC.back,
|
|
||||||
&Scr->SizeFont);
|
|
||||||
MyFont_DrawImageString (dpy, Scr->SizeWindow, &Scr->SizeFont,
|
|
||||||
Scr->NormalGC,
|
|
||||||
SIZE_HINDENT,
|
|
||||||
SIZE_VINDENT + Scr->SizeFont.ascent,
|
|
||||||
tmp_win->name, namelen);
|
|
||||||
|
|
||||||
AddingW = tmp_win->attr.width + bw2;
|
|
||||||
AddingH = tmp_win->attr.height + tmp_win->title_height + bw2;
|
|
||||||
|
|
||||||
if (Scr->DontMoveOff) {
|
|
||||||
/*
|
|
||||||
* Make sure the initial outline comes up on the screen.
|
|
||||||
*/
|
|
||||||
if (AddingX < 0)
|
|
||||||
AddingX = 0;
|
|
||||||
if (AddingX > Scr->MyDisplayWidth - AddingW)
|
|
||||||
AddingX = Scr->MyDisplayWidth - AddingW;
|
|
||||||
|
|
||||||
if (AddingY < 0)
|
|
||||||
AddingY = 0;
|
|
||||||
if (AddingY > Scr->MyDisplayHeight - AddingH)
|
|
||||||
AddingY = Scr->MyDisplayHeight - AddingH;
|
|
||||||
}
|
|
||||||
|
|
||||||
MoveOutline(Scr->Root, AddingX, AddingY, AddingW, AddingH,
|
|
||||||
tmp_win->frame_bw, tmp_win->title_height);
|
|
||||||
|
|
||||||
while (TRUE)
|
|
||||||
{
|
|
||||||
XMaskEvent(dpy, ButtonPressMask | PointerMotionMask, &event);
|
|
||||||
|
|
||||||
if (Event.type == MotionNotify) {
|
|
||||||
/* discard any extra motion events before a release */
|
|
||||||
while(XCheckMaskEvent(dpy,
|
|
||||||
ButtonMotionMask | ButtonPressMask, &Event))
|
|
||||||
if (Event.type == ButtonPress)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.type == ButtonPress) {
|
|
||||||
AddingX = event.xbutton.x_root;
|
|
||||||
AddingY = event.xbutton.y_root;
|
|
||||||
|
|
||||||
/* DontMoveOff prohibits user form off-screen placement */
|
|
||||||
if (Scr->DontMoveOff)
|
|
||||||
{
|
|
||||||
int AddingR, AddingB;
|
|
||||||
|
|
||||||
AddingR = AddingX + AddingW;
|
|
||||||
AddingB = AddingY + AddingH;
|
|
||||||
|
|
||||||
if (AddingX < 0)
|
|
||||||
AddingX = 0;
|
|
||||||
if (AddingR > Scr->MyDisplayWidth)
|
|
||||||
AddingX = Scr->MyDisplayWidth - AddingW;
|
|
||||||
|
|
||||||
if (AddingY < 0)
|
|
||||||
AddingY = 0;
|
|
||||||
if (AddingB > Scr->MyDisplayHeight)
|
|
||||||
AddingY = Scr->MyDisplayHeight - AddingH;
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.type != MotionNotify) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
XQueryPointer(dpy, Scr->Root, &JunkRoot, &JunkChild,
|
|
||||||
&JunkX, &JunkY, &AddingX, &AddingY, &JunkMask);
|
|
||||||
|
|
||||||
if (Scr->DontMoveOff)
|
|
||||||
{
|
|
||||||
int AddingR, AddingB;
|
|
||||||
|
|
||||||
AddingR = AddingX + AddingW;
|
|
||||||
AddingB = AddingY + AddingH;
|
|
||||||
|
|
||||||
if (AddingX < 0)
|
|
||||||
AddingX = 0;
|
|
||||||
if (AddingR > Scr->MyDisplayWidth)
|
|
||||||
AddingX = Scr->MyDisplayWidth - AddingW;
|
|
||||||
|
|
||||||
if (AddingY < 0)
|
|
||||||
AddingY = 0;
|
|
||||||
if (AddingB > Scr->MyDisplayHeight)
|
|
||||||
AddingY = Scr->MyDisplayHeight - AddingH;
|
|
||||||
}
|
|
||||||
|
|
||||||
MoveOutline(Scr->Root, AddingX, AddingY, AddingW, AddingH,
|
|
||||||
tmp_win->frame_bw, tmp_win->title_height);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.xbutton.button == Button2) {
|
|
||||||
int lastx, lasty;
|
|
||||||
|
|
||||||
Scr->SizeStringOffset = width +
|
|
||||||
MyFont_TextWidth(&Scr->SizeFont, ": ", 2);
|
|
||||||
XResizeWindow (dpy, Scr->SizeWindow, Scr->SizeStringOffset +
|
|
||||||
Scr->SizeStringWidth, height);
|
|
||||||
MyFont_DrawImageString (dpy, Scr->SizeWindow, &Scr->SizeFont,
|
|
||||||
Scr->NormalGC, width,
|
|
||||||
SIZE_VINDENT + Scr->SizeFont.ascent,
|
|
||||||
": ", 2);
|
|
||||||
if (0/*Scr->AutoRelativeResize*/) {
|
|
||||||
int dx = (tmp_win->attr.width / 4);
|
|
||||||
int dy = (tmp_win->attr.height / 4);
|
|
||||||
|
|
||||||
#define HALF_AVE_CURSOR_SIZE 8 /* so that it is visible */
|
|
||||||
if (dx < HALF_AVE_CURSOR_SIZE) dx = HALF_AVE_CURSOR_SIZE;
|
|
||||||
if (dy < HALF_AVE_CURSOR_SIZE) dy = HALF_AVE_CURSOR_SIZE;
|
|
||||||
#undef HALF_AVE_CURSOR_SIZE
|
|
||||||
dx += (tmp_win->frame_bw + 1);
|
|
||||||
dy += (bw2 + tmp_win->title_height + 1);
|
|
||||||
if (AddingX + dx >= Scr->MyDisplayWidth)
|
|
||||||
dx = Scr->MyDisplayWidth - AddingX - 1;
|
|
||||||
if (AddingY + dy >= Scr->MyDisplayHeight)
|
|
||||||
dy = Scr->MyDisplayHeight - AddingY - 1;
|
|
||||||
if (dx > 0 && dy > 0)
|
|
||||||
XWarpPointer (dpy, None, None, 0, 0, 0, 0, dx, dy);
|
|
||||||
} else {
|
|
||||||
XWarpPointer (dpy, None, Scr->Root, 0, 0, 0, 0,
|
|
||||||
AddingX + AddingW/2, AddingY + AddingH/2);
|
|
||||||
}
|
|
||||||
AddStartResize(tmp_win, AddingX, AddingY, AddingW, AddingH);
|
|
||||||
|
|
||||||
lastx = -10000;
|
|
||||||
lasty = -10000;
|
|
||||||
while (TRUE)
|
|
||||||
{
|
|
||||||
XMaskEvent(dpy,
|
|
||||||
ButtonReleaseMask | ButtonMotionMask, &event);
|
|
||||||
|
|
||||||
if (Event.type == MotionNotify) {
|
|
||||||
/* discard any extra motion events before a release */
|
|
||||||
while(XCheckMaskEvent(dpy,
|
|
||||||
ButtonMotionMask | ButtonReleaseMask, &Event))
|
|
||||||
if (Event.type == ButtonRelease)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.type == ButtonRelease)
|
|
||||||
{
|
|
||||||
AddEndResize(tmp_win);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.type != MotionNotify) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX - if we are going to do a loop, we ought to consider
|
|
||||||
* using multiple GXxor lines so that we don't need to
|
|
||||||
* grab the server.
|
|
||||||
*/
|
|
||||||
XQueryPointer(dpy, Scr->Root, &JunkRoot, &JunkChild,
|
|
||||||
&JunkX, &JunkY, &AddingX, &AddingY, &JunkMask);
|
|
||||||
|
|
||||||
if (lastx != AddingX || lasty != AddingY)
|
|
||||||
{
|
|
||||||
DoResize(AddingX, AddingY, tmp_win);
|
|
||||||
|
|
||||||
lastx = AddingX;
|
|
||||||
lasty = AddingY;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (event.xbutton.button == Button3)
|
|
||||||
{
|
|
||||||
int maxw = Scr->MyDisplayWidth - AddingX - bw2;
|
|
||||||
int maxh = Scr->MyDisplayHeight - AddingY - bw2;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Make window go to bottom of screen, and clip to right edge.
|
|
||||||
* This is useful when popping up large windows and fixed
|
|
||||||
* column text windows.
|
|
||||||
*/
|
|
||||||
if (AddingW > maxw) AddingW = maxw;
|
|
||||||
AddingH = maxh;
|
|
||||||
|
|
||||||
ConstrainSize (tmp_win, &AddingW, &AddingH); /* w/o borders */
|
|
||||||
AddingW += bw2;
|
|
||||||
AddingH += bw2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
XMaskEvent(dpy, ButtonReleaseMask, &event);
|
|
||||||
}
|
|
||||||
|
|
||||||
MoveOutline(Scr->Root, 0, 0, 0, 0, 0, 0);
|
|
||||||
XUnmapWindow(dpy, Scr->SizeWindow);
|
|
||||||
UninstallRootColormap();
|
|
||||||
XUngrabPointer(dpy, CurrentTime);
|
|
||||||
|
|
||||||
tmp_win->attr.x = AddingX;
|
|
||||||
tmp_win->attr.y = AddingY + tmp_win->title_height;
|
|
||||||
tmp_win->attr.width = AddingW - bw2;
|
|
||||||
tmp_win->attr.height = AddingH - tmp_win->title_height - bw2;
|
|
||||||
|
|
||||||
XUngrabServer(dpy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else { /* put it where asked, mod title bar */
|
} else { /* put it where asked, mod title bar */
|
||||||
/* if the gravity is towards the top, move it by the title height */
|
/* if the gravity is towards the top, move it by the title height */
|
||||||
if (gravy < 0) tmp_win->attr.y -= gravy * tmp_win->title_height;
|
if (gravy < 0) tmp_win->attr.y -= gravy * tmp_win->title_height;
|
||||||
|
38
src/parse.c
38
src/parse.c
@ -86,7 +86,6 @@ static unsigned char **stringListSource, *currentString;
|
|||||||
static int doparse ( int (*ifunc)(void), const char *srctypename, const char *srcname );
|
static int doparse ( int (*ifunc)(void), const char *srctypename, const char *srcname );
|
||||||
static int twmFileInput ( void );
|
static int twmFileInput ( void );
|
||||||
static int twmStringListInput ( void );
|
static int twmStringListInput ( void );
|
||||||
static int ParseUsePPosition ( char *s );
|
|
||||||
static int ParseStringList ( unsigned char **sl );
|
static int ParseStringList ( unsigned char **sl );
|
||||||
|
|
||||||
extern int yylineno;
|
extern int yylineno;
|
||||||
@ -325,12 +324,10 @@ typedef struct _TwmKeyword {
|
|||||||
#define kw0_RestartPreviousState 17
|
#define kw0_RestartPreviousState 17
|
||||||
#define kw0_ClientBorderWidth 18
|
#define kw0_ClientBorderWidth 18
|
||||||
#define kw0_NoTitleFocus 19
|
#define kw0_NoTitleFocus 19
|
||||||
#define kw0_RandomPlacement 20
|
|
||||||
#define kw0_DecorateTransients 21
|
#define kw0_DecorateTransients 21
|
||||||
#define kw0_NoRaiseOnWarp 24
|
#define kw0_NoRaiseOnWarp 24
|
||||||
#define kw0_WarpUnmapped 25
|
#define kw0_WarpUnmapped 25
|
||||||
|
|
||||||
#define kws_UsePPosition 1
|
|
||||||
#define kws_IconFont 2
|
#define kws_IconFont 2
|
||||||
#define kws_ResizeFont 3
|
#define kws_ResizeFont 3
|
||||||
#define kws_MenuFont 4
|
#define kws_MenuFont 4
|
||||||
@ -512,7 +509,6 @@ static TwmKeyword keytable[] = {
|
|||||||
{ "pointerforeground", CKEYWORD, kwc_PointerForeground },
|
{ "pointerforeground", CKEYWORD, kwc_PointerForeground },
|
||||||
{ "priority", NKEYWORD, kwn_Priority },
|
{ "priority", NKEYWORD, kwn_Priority },
|
||||||
{ "r", ROOT, 0 },
|
{ "r", ROOT, 0 },
|
||||||
{ "randomplacement", KEYWORD, kw0_RandomPlacement },
|
|
||||||
{ "resize", RESIZE, 0 },
|
{ "resize", RESIZE, 0 },
|
||||||
{ "resizefont", SKEYWORD, kws_ResizeFont },
|
{ "resizefont", SKEYWORD, kws_ResizeFont },
|
||||||
{ "restartpreviousstate", KEYWORD, kw0_RestartPreviousState },
|
{ "restartpreviousstate", KEYWORD, kw0_RestartPreviousState },
|
||||||
@ -533,7 +529,6 @@ static TwmKeyword keytable[] = {
|
|||||||
{ "titleforeground", CLKEYWORD, kwcl_TitleForeground },
|
{ "titleforeground", CLKEYWORD, kwcl_TitleForeground },
|
||||||
{ "titlepadding", NKEYWORD, kwn_TitlePadding },
|
{ "titlepadding", NKEYWORD, kwn_TitlePadding },
|
||||||
{ "unknownicon", SKEYWORD, kws_UnknownIcon },
|
{ "unknownicon", SKEYWORD, kws_UnknownIcon },
|
||||||
{ "usepposition", SKEYWORD, kws_UsePPosition },
|
|
||||||
{ "w", WINDOW, 0 },
|
{ "w", WINDOW, 0 },
|
||||||
{ "wait", WAIT, 0 },
|
{ "wait", WAIT, 0 },
|
||||||
{ "warpcursor", WARP_CURSOR, 0 },
|
{ "warpcursor", WARP_CURSOR, 0 },
|
||||||
@ -643,10 +638,6 @@ int do_single_keyword (int keyword)
|
|||||||
Scr->TitleFocus = FALSE;
|
Scr->TitleFocus = FALSE;
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
case kw0_RandomPlacement:
|
|
||||||
Scr->RandomPlacement = TRUE;
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
case kw0_DecorateTransients:
|
case kw0_DecorateTransients:
|
||||||
Scr->DecorateTransients = TRUE;
|
Scr->DecorateTransients = TRUE;
|
||||||
return 1;
|
return 1;
|
||||||
@ -667,19 +658,6 @@ int do_single_keyword (int keyword)
|
|||||||
int do_string_keyword (int keyword, char *s)
|
int do_string_keyword (int keyword, char *s)
|
||||||
{
|
{
|
||||||
switch (keyword) {
|
switch (keyword) {
|
||||||
case kws_UsePPosition:
|
|
||||||
{
|
|
||||||
int ppos = ParseUsePPosition (s);
|
|
||||||
if (ppos < 0) {
|
|
||||||
twmrc_error_prefix();
|
|
||||||
fprintf (stderr,
|
|
||||||
"ignoring invalid UsePPosition argument \"%s\"\n", s);
|
|
||||||
} else {
|
|
||||||
Scr->UsePPosition = ppos;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
case kws_IconFont:
|
case kws_IconFont:
|
||||||
if (!Scr->HaveFonts) Scr->IconFont.name = s;
|
if (!Scr->HaveFonts) Scr->IconFont.name = s;
|
||||||
return 1;
|
return 1;
|
||||||
@ -966,19 +944,3 @@ assign_var_savecolor(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
ParseUsePPosition (char *s)
|
|
||||||
{
|
|
||||||
XmuCopyISOLatin1Lowered (s, s);
|
|
||||||
|
|
||||||
if (strcmp (s, "off") == 0) {
|
|
||||||
return PPOS_OFF;
|
|
||||||
} else if (strcmp (s, "on") == 0) {
|
|
||||||
return PPOS_ON;
|
|
||||||
} else if (strcmp (s, "non-zero") == 0 ||
|
|
||||||
strcmp (s, "nonzero") == 0) {
|
|
||||||
return PPOS_NON_ZERO;
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
@ -193,7 +193,6 @@ typedef struct ScreenInfo
|
|||||||
int ButtonIndent; /* amount to shrink buttons on each side */
|
int ButtonIndent; /* amount to shrink buttons on each side */
|
||||||
int NumAutoRaises; /* number of autoraise windows on screen */
|
int NumAutoRaises; /* number of autoraise windows on screen */
|
||||||
short NoDefaults; /* do not add in default UI stuff */
|
short NoDefaults; /* do not add in default UI stuff */
|
||||||
short UsePPosition; /* what do with PPosition, see values below */
|
|
||||||
short AutoRelativeResize; /* start resize relative to position in quad */
|
short AutoRelativeResize; /* start resize relative to position in quad */
|
||||||
short FocusRoot; /* is the input focus on the root ? */
|
short FocusRoot; /* is the input focus on the root ? */
|
||||||
short WarpCursor; /* warp cursor on de-iconify ? */
|
short WarpCursor; /* warp cursor on de-iconify ? */
|
||||||
@ -210,7 +209,6 @@ typedef struct ScreenInfo
|
|||||||
short DecorateTransients; /* put title bars on transients */
|
short DecorateTransients; /* put title bars on transients */
|
||||||
short BackingStore; /* use backing store for menus */
|
short BackingStore; /* use backing store for menus */
|
||||||
short SaveUnder; /* use save under's for menus */
|
short SaveUnder; /* use save under's for menus */
|
||||||
short RandomPlacement; /* randomly place windows that no give hints */
|
|
||||||
short StackMode; /* should we honor stack mode requests */
|
short StackMode; /* should we honor stack mode requests */
|
||||||
short MoveDelta; /* number of pixels before f.move starts */
|
short MoveDelta; /* number of pixels before f.move starts */
|
||||||
short ZoomCount; /* zoom outline count */
|
short ZoomCount; /* zoom outline count */
|
||||||
@ -231,10 +229,4 @@ extern ScreenInfo **ScreenList;
|
|||||||
extern ScreenInfo *Scr;
|
extern ScreenInfo *Scr;
|
||||||
extern int FirstScreen;
|
extern int FirstScreen;
|
||||||
|
|
||||||
#define PPOS_OFF 0
|
|
||||||
#define PPOS_ON 1
|
|
||||||
#define PPOS_NON_ZERO 2
|
|
||||||
/* may eventually want an option for having the PPosition be the initial
|
|
||||||
location for the drag lines */
|
|
||||||
|
|
||||||
#endif /* _SCREEN_ */
|
#endif /* _SCREEN_ */
|
||||||
|
@ -703,7 +703,6 @@ InitVariables(void)
|
|||||||
Scr->UnknownHeight = 0;
|
Scr->UnknownHeight = 0;
|
||||||
Scr->NumAutoRaises = 0;
|
Scr->NumAutoRaises = 0;
|
||||||
Scr->NoDefaults = FALSE;
|
Scr->NoDefaults = FALSE;
|
||||||
Scr->UsePPosition = PPOS_OFF;
|
|
||||||
Scr->FocusRoot = TRUE;
|
Scr->FocusRoot = TRUE;
|
||||||
Scr->Focus = NULL;
|
Scr->Focus = NULL;
|
||||||
Scr->WarpCursor = FALSE;
|
Scr->WarpCursor = FALSE;
|
||||||
@ -720,7 +719,6 @@ InitVariables(void)
|
|||||||
Scr->DecorateTransients = FALSE;
|
Scr->DecorateTransients = FALSE;
|
||||||
Scr->BackingStore = TRUE;
|
Scr->BackingStore = TRUE;
|
||||||
Scr->SaveUnder = TRUE;
|
Scr->SaveUnder = TRUE;
|
||||||
Scr->RandomPlacement = FALSE;
|
|
||||||
Scr->StackMode = TRUE;
|
Scr->StackMode = TRUE;
|
||||||
Scr->MoveDelta = 1; /* so that f.deltastop will work */
|
Scr->MoveDelta = 1; /* so that f.deltastop will work */
|
||||||
Scr->ZoomCount = 8;
|
Scr->ZoomCount = 8;
|
||||||
|
Loading…
Reference in New Issue
Block a user