Thanks a lot for your efforts Derek. commited to trunk, Chris
----- original Nachricht -------- Betreff: Re: [IMPORTANT] Docs decision Gesendet: Di 17 Feb 2009 07:41:57 CET Von: [email protected] > Here's a patch against 1.3.5.1 sawfish.texi for the following > patches. (I happened to grab 1.3.5.1 from Sourceforge; I don't > anticipate problems applying it to 1.5.0.) The patch > itself is attached to the bottom. I split the Viewports node up into > sub-nodes. > > Derek > > [1.3.4] > > http://sawfish.wikia.com/wiki/Cycle-hook > > Looks like this got turned into 'after-cycle-step-hook', which is > documented as of 1.3.5.1. > > http://sawfish.wikia.com/wiki/Enter-Click_Focus_Mode > > Added. > > http://sawfish.wikia.com/wiki/Negative-property-p > > Already added by 1.3.5.1. > > http://sawfish.wikia.com/wiki/Stacking-visibility > > Added > > http://sawfish.wikia.com/wiki/Window_prop_list_%26_prop_del > > Already added as of 1.3.5.1. 'window-prop-del' renamed to > 'window-remprop'. > > [1.3.5] > > http://sawfish.wikia.com/wiki/Honoring_ICCCM_aspect_ratio > > Added note about behavior. > > http://sawfish.wikia.com/wiki/Scroll_viewport_patch > > Added. > > http://sawfish.wikia.com/wiki/Slide-window-hook > > Already added as of 1.3.5.1. > > http://sawfish.wikia.com/wiki/Viewport_boundary > > Added. > > [1.5.0] > > http://sawfish.wikia.com/wiki/Warp-if-necessary_when_cycling > http://sawfish.wikia.com/wiki/Warp-if-necessary_when_unmaximizing > > Not explicitly mentioned, but I did add some additional comments on > when we warp the pointer and what variable governs it. > > ------------------------------ cut here ------------------------------ > > --- sawfish-1.3.5.1-orig/man/sawmill.texi 2008-12-17 10:37:22.000000000 > -0800 > +++ sawfish-1.3.5.1/man/sawmill.texi 2009-02-16 22:36:56.000000000 -0800 > @@ -1085,11 +1085,35 @@ > @code{border-size}. > @end defun > > -...@defun window-visibility window > +...@defun stacking-visibility window > +Returns @code{unobscured} if @code{window} is unobscured, > +...@code{fully-obscured} if one or more windows completely obscure > +...@code{window}, or @code{partially-obscured} if one or more window > +partially obscure @code{window}. > + > +Deciding between fully and partially obscured can be expensive. If > +...@code{window-obscured} satisfies your needs, use that in preference to > +...@code{stacking-visibility}. > +...@end defun > + > +...@defun window-obscured window > +Returns @code{nil} if @code{window} is unobscured, @code{t} if > +...@code{window} is completely obscured by exactly one other window, or a > +list of windows that partially obscure @code{window}. > + > +If a list of partially obscuring windows is returned, taken together > +they may or may not fully obscure @code{window}. > +...@end defun > + > +...@deffn {Obsolete Function} window-visibility window > Returns a symbol defining the current visibility of @var{window}. > Possible returned symbols are @code{fully-obscured}, > @code{partially-obscured} or @code{unobscured}. > -...@end defun > + > +...@code{window-visibility} is deprecated. It is unreliable when using > +the Composite extention, as every window is reported unobscured. Use > +...@code{window-obscured} and @code{stacking-visibility} instead. > +...@end deffn > > @defun window-urgent-p window > Return @code{t} if the ``Urgency'' hint of the window associated with > @@ -1131,9 +1155,17 @@ > > @defvar focus-modes > A list containing all names of focus modes. The built-in values are > -...@code{enter-exit}, @code{enter-only} and @code{click}. > +...@code{enter-exit}, @code{enter-only}, @code{enter-click} and @code{click}. > @end defvar > > +Focus mode @code{enter-exit} changes focus when the pointer enters a > +window or leaves the focused window. Focus mode @code{enter-only} > +changes focus when the pointer enters a window, but not when it leaves > +the focused window. Focus mode @code{click} changes focus when you > +click on a window. Focus mode @code{enter-click} is the union of > +...@code{enter-only} and @code{click}, and changes focus on any > +of their conditions. > + > It is possible to add additional focus modes by defining your own > handler function. The handler function must obey a > ``focus-mode-handler'' protocol. > @@ -1185,6 +1217,9 @@ > window. In @code{enter-only} mode, we warp the cursor if it is in > another window, but not if it is over the desktop---a window would not > lose focus when the cursor moved from it to the desktop. > + > +This event is implemented via @code{warp-cursor-to-window}, so Sawfish > +will not warp unless @code{warp-to-window-enabled} is true. > @end table > > The protocol allows for any number of additional arguments, but does > @@ -1210,8 +1245,11 @@ > @end defun > > @defun warp-pointer-if-necessary window > -Generate a @code{warp-if-necessary} event and send it to the window's > +Generate a @code{warp-if-necessary} event and sends it to the window's > focus function. > + > +Various functions call @code{warp-pointer-if-necessary} if they move > +the focused window out from underneath the pointer. > @end defun > > @defvar focus-click-through > @@ -1660,6 +1698,9 @@ > then either the window that received the current event or the currently > focused window. > > +Sawfish honors the @code{min-aspect} and @code{max-aspect} window > +hints when interactively resizing a window. > + > @deffn Command move-window-interactively window > Move @var{window} interactively using the mouse. Releasing any mouse > button places the window at its current position. > @@ -2424,7 +2465,8 @@ > > @defvar cycle-raise-windows t > If true, Sawfish raises windows while they're temporarily selected > -during cycling. Defaults to true. > +during cycling, and invokes @code{warp-pointer-if-necessary}. > +Defaults to true. > @end defvar > > It is also possible for you to define your own stacking cycle > @@ -3699,10 +3741,10 @@ > using ``viewports''. > > When viewports are enabled, the Sawfish logical display becomes > -infinitely large in the two directions ``across'' and ``down'' (to the > -maximum representable size of integers). Sawfish divides this logical > -display into a potentially infinite grid of cells. Each cell of the > -grid is the same size of the virtual display. > +potentially infinitely large in the two directions ``across'' and > +``down'' (to the maximum representable size of integers). Sawfish > +divides this logical display into a potentially infinite grid of > +cells. Each cell of the grid is the same size of the virtual display. > > @defvar viewport-dimensions > The current number of viewports across and down the virtual display. > @@ -3715,14 +3757,23 @@ > @code{(@var{width} . @var{height})}. > @end defun > > -The user then tells Sawfish to move the physical display from cell to > -cell. On a cell change, windows in previous cells are removed, and > -windows in the current cell appear. Windows that span two or more > -cells will appear in each cell, appropriately displaced. > - > Note that cell indices start at zero in each dimension. Indices are > never negative. > > +...@menu > +* Switching Viewports:: > +* Windows and Viewports:: > +...@end menu > + > +...@node Switching Viewports, Windows and Viewports, Viewports, Viewports > +...@section Switching Viewports > + > +A user switches viewports by telling Sawfish to move the physical > +display from cell to cell. On a cell change, windows in previous > +cells are removed, and windows in the current cell appear. Windows > +that span two or more cells will appear in each cell, appropriately > +displaced. > + > @defun screen-viewport > Returns the currently displayed viewport as a pair @code{(@var{x}, > @var{y})}. > @@ -3738,41 +3789,50 @@ > @var{down} slots down. Either argument may be zero or negative. > @end defun > > -...@defun set-window-viewport window col row > -Move @var{window} to the cell at @code{(@var{col}, @var{row})}. The > -relative position of the window within the cells is preserved. > -...@end defun > +...@defvar viewport-boundary-mode > +How to act when switching via @code{set-screen-viewport} to a viewport > +that is outside of @code{viewport-dimensions}. When set to > +...@code{wrap-around}, it loops in the vertical and horizontal axes > +enough times to keep the viewport within the defined dimensions. When > +set to @code{stop}, it refuses to switch to a viewport outside of > +...@code{viewport-dimensions}. Defaults to @code{wrap-around}. > +...@end defvar > > -...@defun move-window-viewport window col-delta row-delta > -Move @var{window} to the cell @var{col-delta} positions across and > -...@var{row-delta} positions down from its current cell. The relative > -position of the window with its cells its preserved. > +...@defun warp-viewport x y > +Change the position of the physical display, such that location > +...@code{(@var{x}, @var{y})} is at the top-left of the display. The > +physical display may be showing more than one cell at this point. > +All windows are redisplayed as appropriate. > @end defun > > -...@defun move-viewport-to-window window > -Move the viewport to a cell that shows window @var{window}. For a > -window that spans multiple cells, this function will pick the cell > -showing the window's top-left corner. > -...@end defun > +...@defun set-viewport x y > +Change the position of the physical display, such that location > +...@code{(@var{x}, @var{y})} is at the top-left of the display. The > +physical display may be showing more than one cell at this point. > > -...@defun move-window-to-current-viewport window > -Move @var{window} from its existing viewport to the current viewport. > -The window's relative position in the existing viewport is preserved > -after the move. > +Unlike @code{warp-viewport}, the change takes place by dividing the > +motion into @code{scroll-viewport-steps} steps, and redisplaying after > +each step in the motion. > @end defun > > +...@defvr Customizable scroll-viewport-steps > +Number of steps in which to divide a viewport change for > +...@code{set-viewport}. Each step requires a redisplay. Defaults to 1, > +which causes an instantaneous change to the new viewport. The > +customization limit is 50. > +...@end defvr > + > +...@node Windows and Viewports, , Switching Viewports, Viewports > +...@section Windows and Viewports > + > @defun window-viewport window > Returns a cons cell @code{(@var{col} . @var{row})} of the viewport > holding the top-left corner of @var{window}. > @end defun > > @defun window-outside-viewport-p window > -...@defunx window-outside-workspace-p window > Returns true if @var{window} is completely outside the current > -viewport in any direction. The @code{window-outside-workspace-p} > -function is an obsolete alias for the first function; the > -``workspace'' term is now used for another concept > -(@pxref{Workspaces}). > +viewport in any direction. > @end defun > > @defun window-absolute-position window > @@ -3781,11 +3841,27 @@ > or may not be the current viewport. > @end defun > > -...@defun set-viewport x y > -Change the position of the physical display, such that location > -...@code{(@var{x}, @var{y})} is at the top-left of the display. The > -physical display may be showing more than one cell at this point. > -All windows are redisplayed as appropriate. > +...@defun set-window-viewport window col row > +Move @var{window} to the cell at @code{(@var{col}, @var{row})}. The > +relative position of the window within the cells is preserved. > +...@end defun > + > +...@defun move-window-viewport window col-delta row-delta > +Move @var{window} to the cell @var{col-delta} positions across and > +...@var{row-delta} positions down from its current cell. The relative > +position of the window with its cells its preserved. > +...@end defun > + > +...@defun move-window-to-current-viewport window > +Move @var{window} from its existing viewport to the current viewport. > +The window's relative position in the existing viewport is preserved > +after the move. > +...@end defun > + > +...@defun move-viewport-to-window window > +Move the viewport to a cell that shows window @var{window}. For a > +window that spans multiple cells, this function will pick the cell > +showing the window's top-left corner. > @end defun > > @defvar uniconify-to-current-viewport > @@ -5355,6 +5431,9 @@ > > If @var{x} and @var{y} are @code{nil}, then they are taken as the > top-left corner of the window's frame. > + > +If @code{warp-to-window-enabled} is @code{nil}, this function does > +nothing. > @end defun > > @defvar warp-to-window-offset > --- original Nachricht Ende ---- #adBox3 {display:none;}
