Commit graph

9 commits

Author SHA1 Message Date
obache
81006570cc Update ctwm to 3.8a.
Patch provided by maintainer, Rhialto in PR 35637.

    Changes from version 3.7 to 3.8
    -------------------------------

    1 - Global cleanup

	There were some variables shadowing others, things not being
	safely initialized, that sort of thing.
	[Richard Levitte]

    2 - Fixed several memory leaks found by
	"Nadav Har'El" <nyh@math.technion.ac.il>.
	[Olaf "Rhialto" Seibert]

    3 - Merged in the f.movetitlebar command. By default this is bound to
        alt-left-click in the titlebar.
	[Olaf "Rhialto" Seibert]

    4 - Fixed the following issues:
	Poking at the code, it looks like InitVirtualScreens() is called
	before the configuration file is parsed which would explain what
	I see since there's no attempt to create them after the config
	file read.

	Moving the call after the config parsing causes things to work.

	I've run into a few other issues that I fixed with the attached
	patch:

		- shadow menus on the right screen open the shadow on
		  the left screen
		- shadow menus on the left screen open on top of the
		  window
		- windows on the right screen disappear after startup
	[Todd Kover]

    5 - Adjustments to ctwm.man:
	I noticed a couple of small errors.

	One is that the window list arguments for the opaque
	keywords are now optional, are listed with square brackets
	in the man page.  The other is that the two Threshold
	keywords are shown in the man page as requiring curly-
	brackets, but they are not required or accepted in
	configuration files.
	[Ross Combs]

    6 - improve algoritm to deal with mismatched geometry of virtual
	screens

      - allow windows to be dragged from one virtual screen to another and
	have them switch workspaces appropriately

      - handle restarts properly with virtual screens, including preserving
	where windows were placed within workspaces regardless of which
	virtual screen a window was on; preserve across restarts
	[Todd Kover]

    7 - WMapCreateCurrentBackGround() and WMapCreateDefaultBackGround()
	would skip remaining virtual screens if not all parameters are present.

      - small type errors. [Olaf "Rhialto" Seibert].

    8 - There were some directives in the config file that wanted to set some
	setting for all virtual screens. However since that list is (now) only
	set up after parsing the config file, they failed to work.  Moreover,
	these settings were basically meant to be global to all virtual
	screens, so a better place for them is somewhere in *Scr.  They all
	related to the Workspace Manager, so I moved them from struct
	WorkSpaceWindow to struct WorkSpaceMgr.

	The affected directives are StartInMapState, WMgrVertButtonIndent,
	WMgrHorizButtonIndent, MapWindowCurrentWorkSpace,
	MapWindowDefaultWorkSpace.  The window and icon_name, even though not
	user-settable, were also moved.

	This is basically change #7 above done right.
	[Olaf "Rhialto" Seibert]

    9 - Re-introduced TwmWindow.oldvs, used to avoid calling
	XReparentWindow() when possibe (it messed up the stacking order
	of windows). However, maybe the use of .vs should be rethought a
	bit: in Vanish() it is now set to NULL with the old value kept
	in .oldvs.  However the window is still a child of the same vs.
	Maybe it is better not to set it to NULL and then, when *really*
	changing the virtual screen, .vs can be used instead of .oldvs.

	This whole "virtual screen" thing is unexplained in the manual,
	which even uses it as a synonym for "workspace" already in the
	introduction paragraph. (There also does not seem to be a way
	now to test virtual screens in captive windows) I suspect that
	all this causes lots of confusion, and when cleared up, can
	simplify the code a lot.

	I also fixed up the horrible indentation in the functions
	where I changed something.
	[Olaf "Rhialto" Seibert]

   10 - Fixed interaction between "inner" and "outer" workspace
	selection with "captive" windows. This was because the Gnome
	"_WIN_WORKSPACE" property is used in 2 conflicting ways: for
	client windows it indicates which workspace they are in, for
	root windows it indicates which workspace they show. Captive
	windows are both. Also, the initially selected inner workspace
	is now the first, not the same as the outer workspace (this had
	a different cause).
	[Olaf "Rhialto" Seibert]

   11 - Introduce Scr->XineramaRoot to store the root window that
	encompasses all virtual screen rootwindows. This further reduces
	any need to use RealRoot and/or CaptiveRoot.
	Add a schematic drawing that clarifies the relation between the
	various root-type windows.
	[Olaf "Rhialto" Seibert]

   12 - Get rid of all non-locale code and make I18N the silent default
	(doesn't have to be mentioned any more).
	THIS WILL BREAK CTWM ON OLDER (PRE-LOCALE) ENVIRONMENTS.
	I strongly recommend an upgrade to "post-locale" standards.
	[Richard Levitte]

   13 - Enhance RandomPlacement with a displacement argument, so the
	pseudo-radomness can be of displacements other than +30+30.
	Here's an example for a pretty funky displacement:

		RandomPlacement "on" "-30-100"

	[Richard Levitte]

   14 - Extend the Info window with the geometry seen from the lower
	right corner as well.
	[Richard Levitte]

   15 - Extend the pointer button specification for title buttons
	to take modifiers.
	As part of this change, the following title pointer button
	specification is deprecated:

		Button {j} : {function}

	in favor of the following, for consistency:

		Button {j} = {function}

	The old way still works, but is considered bad form and will
	be removed in ctwm 4.0.
	[Richard Levitte]

   16 - Fix position of buttons in Occupy window, to make them centered.
	(and spread the remaining space evenly in 4).
	[Olaf "Rhialto" Seibert]

   17 - "TwmWindow.group" was once apparently set to 0 when a window had
	no group leader but this was changed to pointing to its own
	window.  This resulted however in many places checking for both
	conditions, and several checking only for 0 which could not
	occur anymore. Changed it back to 0 (so we can now distinguish
	again windows that really indicate themselves as group leader,
	if we wish) and this gave rise to some simplifications.

	Also, there were various loops through all TwmWindows looking
	for a group leader (or a transientfor), I replaced them with
	GetTwmWindow() which uses the Xlib function XFindContext() which
	uses a hash table lookup. This should be more efficient.

	When you change the occupation of a group member window, it is
	now applied to the group leader (which in turn affects all
	members).

	I tried this with ExMH, the only program that uses a real group
	leader that I could find. Iconifying the leader unmaps the
	members. What should "squeezing" do? ExMH also has an icon
	window (see ICCCM 4.1.9, 3rd option) which behaves weirdly; this
	may be a bug in ExMH (see exmh-2.7.2/exmh.BUGS) even though fvwm
	somehow handles it better.
	[Olaf "Rhialto" Seibert]

   18 - When Squeezing a window group leader, unmap the member windows,
	just like happens with iconification.
	[Olaf "Rhialto" Seibert]

   19 - Simplifications c.q. de-duplications of code regarding the
	WorkSpaceManager and Occupation windows. This includes coding
	the layout of these windows only once instead of twice (at
	initialisation and when resizing). If it's wrong now at least it
	should be consistent.
	When changing occupation via functions like
	f.movetonextworkspace, also move complete window groups (just
	like when you do it via the Occupation window).
	Also fixed changing the occupation of the Occupation window.
	Documented (so far) undocumented possibility to edit the labels
	of workspaces on the fly (what use this is, I'm not sure).
	Removed some unused variables.
	[Olaf "Rhialto" Seibert]

   20 - Get rid of the USE_SESSION and X11R6 macros and make them the
	silent default.  Also cleaned out a few references to the macro
	X11R4, which hasn't been used for ages.
	THIS WILL BREAK CTWM ON OLDER (PRE-X11R6) ENVIRONMENTS.
	I strongly recommend an upgrade to a newer X11 release.
	[Richard Levitte]

   21 - Modified the random placement so a negative X displacement has
	the first "random" window start near the right edge instead of
	the right and a negative Y displacement has the first "random"
	window start near the bottom edge instead of the top.
	[Richard Levitte]
2007-02-17 08:27:11 +00:00
jdc
1c50f6538e Fix a long versus int botch that made ctwm dump core on sparc64.
Patch also mailed to the ctwm bugs list.
2006-12-15 18:30:15 +00:00
rillig
b339c27a4b Bumped PKGREVISION to 1.
Made the package build on Solaris.
2005-10-13 20:20:55 +00:00
reed
ed53684b5b Update to 3.7 from PR #30804.
Rhialto is the new MAINTAINER. Thank you!
Enable pkgviews.
Installs some example configurations. (Should CONF_FILES also be used?)
Now depend on jpeg too.


Remove patch-aa, patch-ab and patch-ad.

According to CHANGES file, there are 50 changes.
(I see it includes some bug fixes from pkgsrc users.)
2005-10-06 17:28:41 +00:00
grant
5130ce322f remove an extraneous ; from a grammar rule which was causing yacc(1)
on Solaris to barf.
2004-05-09 14:36:27 +00:00
grant
1933dd3c6b ; is used to terminate a yacc rule, and is not valid within a rule.
appeases bison on Linux.
2003-10-19 07:06:33 +00:00
simonb
9800316630 Bring back the original patch-aa that was lost with the 3.6 update:
Fix a memory leak (patch sent to and accepted by the ctwm folks).
2003-07-30 05:42:15 +00:00
wiz
f123b358c3 Update to 3.6, based on PR 20648 by Rhialto.
Changes:
    1 - Fix line numbers for errors when using m4 preprocessor. Send thanks
	to Josh Wilmes.

    2 - Fix the way menu entries are selected with the keyboard. Now
	when you type a letter, the pointer moves to the next entry
	whose first letter is this letter, but does not activate it.
	The new keyword IgnoreCaseInMenuSelection, can be used to
	ignore case for this delection.

    3 - New keyword : DontSave, Takes a window list as argument. All listed
	windows won't have their characteristics saved for the session manager.
	Patch from Matthias Baake

    4 - Also from Matthias Baake. I let him speak :
	With the new keywords BorderLeft, BorderRight, BorderBottom and BorderTop
	(each of them is optional with a default value of 0 and takes a
	nonnegative integer as argument) you can declare a border "off limits" for
	f.move etc.. These borders act the same way as the real borders of the
	screen when moving windows; you can use f.forcemove to override them.

    5 - Sloppy Focus added with keyword "SloppyFocus" in configuration file
	(DINH V. Hoa).

    6 - the keyword "ClickToFocus" has been correctly implemented (DINH V. Hoa).

    7 - the keyword "IgnoreModifier" has been added,
	to use this feature, you have to add a line
	"IgnoreModifier { lock m2 }" in the configuration file.
	All bindings (buttons and keys) will ignore the modifiers
	you specified. It is useful when you use caps locks or
	num locks. You don't need IgnoreLockModifier any more with this option.
	(DINH V. Hoa).

    8 - New keyword : WindowBox : creates a new window called a box, where
        all the client windows that match the windows list are opened in,
	instead of the roor window. This is useful to group small windows
	in the same box (xload for instance) :

WindowBox "xloadbox" "320x100+0-0" {
    "xload"
}

    9 - New function : f.fittocontent. Can be used only with window boxes.
	The result is to have the box have the minimal size that contains
	all its children windows.

   10 - New keyword : WindowGeometries. Used to give a default geometry to some
	clients :

WindowGeometries {
    "Mozilla*"       "1000x800+10+10"
    "jpilot*"        "800x600-0-0"
}

   11 - New keyword : IconMenuDontShow. Don't show the name of these windows
	in the TwmIcons menu.

    And, as usual, a few bug fixes here and there.
2003-06-10 07:40:52 +00:00
simonb
33e97d5663 Fix a memory leak (patch sent to and accepted by the ctwm folks). 2003-06-04 04:36:56 +00:00