2.13.2 release

2005-11-19  Elijah Newren  <newren@gmail.com>

	* NEWS:	2.13.2 release
This commit is contained in:
Elijah Newren 2005-11-19 16:52:25 +00:00 committed by Elijah Newren
parent a7201d27d1
commit a5165ee24d
2 changed files with 117 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2005-11-19 Elijah Newren <newren@gmail.com>
* NEWS: 2.13.2 release
2005-11-18 Elijah Newren <newren@gmail.com>
Merge of all the changes on the constraints_experiments branch.

113
NEWS
View File

@ -1,3 +1,116 @@
2.13.2
==
This release just contains a merge of all the changes on the
constraints_experiments branch.
Thanks to Havoc Pennington for reviewing the gargantuan patch and
suggesting lots of little fixes for making it better, to Rob Adams and
Soeren Sandmann for grilling me on how some of the difficult internals work
-- allowing me to improve the documentation, to Olav Vitters for finding an
easy-to-fix crasher bug in early testing and for repeatedly extending my
deadline for switching from working on Metacity to Bugzilla, to Ray Strode
for finding two crashers and fixing one of them in early testing, to Bryan
Clark for usability advice, to Davyd Madeley and Christian Kellner for
testing Xinerama stuff, to Sebastien Bacher for packaging an early version
and finding some obscure bugs (that I unfortunately still can't duplicate
and will probably still need to fix once I can),
Bugs fixed:
unfiled - constraints.c is overly complicated[1]
unfiled - constraints.c is not robust when all constraints cannot
simultaneously be met (constraints need to be prioritized)
unfiled - keep-titlebar-onscreen constraint is decoration unaware (since
get_outermost_onscreen_positions() forgets to include
decorations)
unfiled - keyboard snap-moving and snap-resizing snap to hidden edges
109553 - gravity w/ simultaneous move & resize doesn't work
113601 - maximize vertical and horizontal should toggle and be
constrained
122196 - windows show up under vertical panels
122670 - jerky/random resizing of window via keyboard[2]
124582 - keyboard and mouse snap-resizing and snap-moving erroneously
moves the window multidimensionally
136307 - don't allow apps to resize themselves off the screen (*cough*
filechooser *cough*)
142016, 143784 - windows should not span multiple xineramas unless
placed there by the user
143145 - clamp new windows to screensize and force them onscreen, if
they'll fit
144126 - Handle pathological strut lists sanely[3]
149867 - fixed aspect ratio windows are difficult to resize[4]
152898 - make screen edges consistent; allow easy slamming of windows
into the left, right, and bottom edges of the screen too.
154706 - bouncing weirdness at screen edge with keyboard moving or
resizing
156699 - avoid struts when placing windows, if possible (nasty a11y
blocker)
302456 - dragging offscreen too restrictive
304857 - wireframe moving off the top of the screen is misleading
308521 - make uni-directional resizing easier with alt-middle-drag and
prevent the occasional super annoying resize-the-wrong-side(s)
behavior
312007 - snap-resize moves windows with a minimum size constraint
312104 - resizing the top of a window can cause the bottom to grow
319351 - don't instantly snap on mouse-move-snapping, remove
braindeadedness of having order of releasing shift and
releasing button press matter so much
[1] fixed in my opinion, anyway.
[2] Actually, it's not totally fixed--it's just annoying
instead of almost completely unusable. Matthias had a
suggestion that may fix the remainder of the problems (see
http://tinyurl.com/bwzuu).
[3] This bug was originally about not-quite-so-pathological
cases but was left open for the worse cases. The code from
the branch handles the remainder of the cases mentioned in
this bug.
[4] Actually, although it's far better there's still some minor
issues left: a slight drift that's only noticeable after
lots of resizing, and potential problems with partially
onscreen constraints due to not clearing any
fixed_directions flags (aspect ratio windows get resized in
both directions and thus aren't fixed in one of them)
New feature:
81704 - edge resistance for user move and resize operations; in
particular 3 different kinds of resistance are implemented:
Pixel-Distance: window movement is resisted when it aligns with an
edge unless the movement is greater than a threshold number of
pixels
Timeout: window movement past an edge is prevented until a certain
amount of time has elapsed during the operation since the first
request to move it past that edge
Keyboard-Buildup: when moving or resizing with the keyboard, once a
window is aligned with a certain edge it cannot move past until the
correct direction has been pressed enough times (e.g. 2 or 3 times)
Major code changes:
- constraints.c has been rewritten; very few lines of code from the old
version remain. There is a comment near the top of the function
explaining the basics of how the new framework works. A more detailed
explanation can be found in doc/how-constraints-works.txt
- edge-resistance.[ch] are new files implementing edge-resistance.
- boxes.[ch] are new files containing low-level error-prone functions
used heavily in constraints.c and edge-resistance.c, among various
places throughout the code. testboxes.c contains a thorough testsuite
for the boxes.[ch] functions compiled into a program, testboxes.
- meta_window_move_resize_internal() *must* be told the gravity of the
associated operation (if it's just a move operation, the gravity will
be ignored, but for resize and move+resize the correct value is needed)
- the craziness of different values that
meta_window_move_resize_internal() accepts has been documented in a
large comment at the beginning of the function. It may be possible to
clean this up some, but until then things will remain as they were
before--caller beware.
- screen and xinerama usable areas (i.e. places not covered by
e.g. panels) are cached in the workspace now, as are the screen and
xinerama edges. These get updated with the workarea in
src/workspace.c:ensure_work_areas_validated()
Translation
Michiel Sikkes (nl)
2.13.1
==