--- ctwm-3.5.2b/add_window.c.alwayssqueezetogravity Mon Oct 4 09:51:25 1999
+++ ctwm-3.5.2b/add_window.c Fri Apr 28 14:55:40 2000
@@ -408,6 +408,11 @@
else
tmp_win->StartSqueezed = False;
+ if (LookInList (Scr->AlwaysSqueezeToGravity, tmp_win->full_name, &tmp_win->class))
+ tmp_win->AlwaysSqueezeToGravity= True;
+ else
+ tmp_win->AlwaysSqueezeToGravity = False;
+
if (tmp_win->transient || tmp_win->group) {
TwmWindow *t;
for (t = Scr->TwmRoot.next; t != NULL; t = t->next) {
--- ctwm-3.5.2b/ctwm.c.alwayssqueezetogravity Mon Oct 4 09:51:26 1999
+++ ctwm-3.5.2b/ctwm.c Fri Apr 28 14:55:40 2000
@@ -565,6 +565,7 @@
Scr->DontSetInactive = NULL;
Scr->AutoSqueeze = NULL;
Scr->StartSqueezed = NULL;
+ Scr->AlwaysSqueezeToGravity = NULL;
Scr->MakeTitle = NULL;
Scr->AutoRaise = NULL;
Scr->AutoLower = NULL;
@@ -954,6 +955,7 @@
FreeList(&Scr->DontSetInactive);
FreeList(&Scr->AutoSqueeze);
FreeList(&Scr->StartSqueezed);
+ FreeList(&Scr->AlwaysSqueezeToGravity);
NewFontCursor(&Scr->FrameCursor, "top_left_arrow");
NewFontCursor(&Scr->TitleCursor, "top_left_arrow");
--- ctwm-3.5.2b/ctwm.man.alwayssqueezetogravity Mon Oct 4 09:51:26 1999
+++ ctwm-3.5.2b/ctwm.man Fri Apr 28 14:55:40 2000
@@ -355,6 +355,12 @@
window is always visible during the move, regardless of whether it crosses
the current workspace or not. The Shift key toggles this behaviour.
+.IP "\fBAlwaysSqueezeToGravity\fP { \fIwin-list\fP }" 8
+This variable instructs \fIctwm\fP to obey window gravity when
+squeezing the named windows even when the windows have titlebars.
+Normally, \fIctwm\fP will always squeeze a window that has a titlebar
+toward the north.
+
.IP "\fBAnimationSpeed\fP \fIspeed\fP" 8
The \fIspeed\fP argument is a non-negative integer. It determines the number of
times a second animations (if any) are updated. If \fIspeed\fP is 0, animations
--- ctwm-3.5.2b/gram.y.alwayssqueezetogravity Mon Oct 4 09:51:26 1999
+++ ctwm-3.5.2b/gram.y Fri Apr 28 14:55:40 2000
@@ -140,7 +140,7 @@
%token <num> OCCUPYALL OCCUPYLIST MAPWINDOWCURRENTWORKSPACE MAPWINDOWDEFAULTWORKSPACE
%token <num> UNMAPBYMOVINGFARAWAY OPAQUEMOVE NOOPAQUEMOVE OPAQUERESIZE NOOPAQUERESIZE
%token <num> DONTSETINACTIVE CHANGE_WORKSPACE_FUNCTION DEICONIFY_FUNCTION
ICONIFY_FUNCTION
-%token <num> AUTOSQUEEZE STARTSQUEEZED DONT_SAVE AUTO_LOWER
+%token <num> AUTOSQUEEZE STARTSQUEEZED DONT_SAVE AUTO_LOWER ALWAYSSQUEEZETOGRAVITY
%token <ptr> STRING
%type <ptr> string
@@ -293,6 +293,8 @@
| AUTOSQUEEZE { list = &Scr->AutoSqueeze; }
win_list
| STARTSQUEEZED { list = &Scr->StartSqueezed; }
+ win_list
+ | ALWAYSSQUEEZETOGRAVITY { list = &Scr->AlwaysSqueezeToGravity;
+}
win_list
| DONTSETINACTIVE { list = &Scr->DontSetInactive; }
win_list
--- ctwm-3.5.2b/menus.c.alwayssqueezetogravity Mon Oct 4 09:51:27 1999
+++ ctwm-3.5.2b/menus.c Fri Apr 28 14:55:40 2000
@@ -4017,7 +4017,7 @@
default :
south = False; break;
}
- if (tmp_win->title_height) south = False;
+ if (tmp_win->title_height && !tmp_win->AlwaysSqueezeToGravity) south = False;
tmp_win->squeezed = True;
tmp_win->actual_frame_width = tmp_win->frame_width;
--- ctwm-3.5.2b/parse.c.alwayssqueezetogravity Mon Oct 4 09:51:27 1999
+++ ctwm-3.5.2b/parse.c Fri Apr 28 14:55:40 2000
@@ -707,6 +707,7 @@
{ "alter", ALTER, 0 },
{ "alwaysontop", ALWAYS_ON_TOP, 0 },
{ "alwaysshowwindowwhenmovingfromworkspacemanager", KEYWORD,
kw0_ShowWinWhenMovingInWmgr },
+ { "alwayssqueezetogravity", ALWAYSSQUEEZETOGRAVITY, 0 },
{ "animationspeed", NKEYWORD, kwn_AnimationSpeed },
{ "autofocustotransients", KEYWORD, kw0_AutoFocusToTransients }, /* kai */
{ "autolower", AUTO_LOWER, 0 },
--- ctwm-3.5.2b/screen.h.alwayssqueezetogravity Mon Oct 4 09:51:27 1999
+++ ctwm-3.5.2b/screen.h Fri Apr 28 14:55:40 2000
@@ -207,6 +207,7 @@
name_list *DontSetInactive;
name_list *AutoSqueeze;
name_list *StartSqueezed;
+ name_list *AlwaysSqueezeToGravity;
short use3Dmenus;
short use3Dtitles;
short use3Diconmanagers;
--- ctwm-3.5.2b/twm.h.alwayssqueezetogravity Mon Oct 4 09:51:12 1999
+++ ctwm-3.5.2b/twm.h Fri Apr 28 14:55:40 2000
@@ -383,6 +383,7 @@
short UnmapByMovingFarAway;
short AutoSqueeze;
short StartSqueezed;
+ short AlwaysSqueezeToGravity;
short DontSetInactive;
Bool hasfocusvisible; /* The window has visivle focus*/
int occupation;
--- ctwm-3.6/add_window.c.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/add_window.c Tue Jun 18 13:49:19 2002
@@ -423,6 +423,11 @@
else
tmp_win->StartSqueezed = False;
+ if (LookInList (Scr->AlwaysSqueezeToGravity, tmp_win->full_name, &tmp_win->class))
+ tmp_win->AlwaysSqueezeToGravity= True;
+ else
+ tmp_win->AlwaysSqueezeToGravity = False;
+
if (tmp_win->transient || tmp_win->group) {
TwmWindow *t;
for (t = Scr->TwmRoot.next; t != NULL; t = t->next) {
--- ctwm-3.6/ctwm.c.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/ctwm.c Tue Jun 18 13:49:51 2002
@@ -568,6 +568,7 @@
Scr->DontSetInactive = NULL;
Scr->AutoSqueeze = NULL;
Scr->StartSqueezed = NULL;
+ Scr->AlwaysSqueezeToGravity = NULL;
Scr->MakeTitle = NULL;
Scr->AutoRaise = NULL;
Scr->AutoLower = NULL;
@@ -959,6 +960,7 @@
FreeList(&Scr->DontSetInactive);
FreeList(&Scr->AutoSqueeze);
FreeList(&Scr->StartSqueezed);
+ FreeList(&Scr->AlwaysSqueezeToGravity);
FreeList(&Scr->IconMenuDontShow);
--- ctwm-3.6/ctwm.man.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/ctwm.man Tue Jun 18 13:50:20 2002
@@ -360,6 +360,12 @@
window is always visible during the move, regardless of whether it crosses
the current workspace or not. The Shift key toggles this behaviour.
+.IP "\fBAlwaysSqueezeToGravity\fP { \fIwin-list\fP }" 8
+This variable instructs \fIctwm\fP to obey window gravity when
+squeezing the named windows even when the windows have titlebars.
+Normally, \fIctwm\fP will always squeeze a window that has a titlebar
+toward the north.
+
.IP "\fBAnimationSpeed\fP \fIspeed\fP" 8
The \fIspeed\fP argument is a non-negative integer. It determines the number of
times a second animations (if any) are updated. If \fIspeed\fP is 0, animations
--- ctwm-3.6/gram.y.alwayssqueezetogravity Tue Jun 18 13:47:26 2002
+++ ctwm-3.6/gram.y Tue Jun 18 13:51:12 2002
@@ -143,6 +143,7 @@
%token <num> DONTSETINACTIVE CHANGE_WORKSPACE_FUNCTION DEICONIFY_FUNCTION
ICONIFY_FUNCTION
%token <num> AUTOSQUEEZE STARTSQUEEZED DONT_SAVE AUTO_LOWER ICONMENU_DONTSHOW
WINDOW_BOX
%token <num> IGNOREMODIFIER WINDOW_GEOMETRIES
+%token <num> ALWAYSSQUEEZETOGRAVITY
%token <ptr> STRING
%type <ptr> string
@@ -304,6 +305,8 @@
win_list
| STARTSQUEEZED { list = &Scr->StartSqueezed; }
win_list
+ | ALWAYSSQUEEZETOGRAVITY { list = &Scr->AlwaysSqueezeToGravity;
+}
+ win_list
| DONTSETINACTIVE { list = &Scr->DontSetInactive; }
win_list
| ICONMGR_NOSHOW { list = &Scr->IconMgrNoShow; }
--- ctwm-3.6/menus.c.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/menus.c Tue Jun 18 13:51:31 2002
@@ -4097,7 +4097,7 @@
default :
south = False; break;
}
- if (tmp_win->title_height) south = False;
+ if (tmp_win->title_height && !tmp_win->AlwaysSqueezeToGravity) south = False;
tmp_win->squeezed = True;
tmp_win->actual_frame_width = tmp_win->frame_width;
--- ctwm-3.6/parse.c.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/parse.c Tue Jun 18 13:51:50 2002
@@ -724,6 +724,7 @@
{ "alter", ALTER, 0 },
{ "alwaysontop", ALWAYS_ON_TOP, 0 },
{ "alwaysshowwindowwhenmovingfromworkspacemanager", KEYWORD,
kw0_ShowWinWhenMovingInWmgr },
+ { "alwayssqueezetogravity", ALWAYSSQUEEZETOGRAVITY, 0 },
{ "animationspeed", NKEYWORD, kwn_AnimationSpeed },
{ "autofocustotransients", KEYWORD, kw0_AutoFocusToTransients }, /* kai */
{ "autolower", AUTO_LOWER, 0 },
--- ctwm-3.6/screen.h.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/screen.h Tue Jun 18 13:52:05 2002
@@ -207,6 +207,7 @@
name_list *DontSetInactive;
name_list *AutoSqueeze;
name_list *StartSqueezed;
+ name_list *AlwaysSqueezeToGravity;
short use3Dmenus;
short use3Dtitles;
short use3Diconmanagers;
--- ctwm-3.6/twm.h.alwayssqueezetogravity Tue Dec 11 10:38:52 2001
+++ ctwm-3.6/twm.h Tue Jun 18 13:52:26 2002
@@ -396,6 +396,7 @@
short UnmapByMovingFarAway;
short AutoSqueeze;
short StartSqueezed;
+ short AlwaysSqueezeToGravity;
short DontSetInactive;
Bool hasfocusvisible; /* The window has visivle focus*/
int occupation;