aboutsummaryrefslogtreecommitdiff
path: root/layout.c
Commit message (Collapse)AuthorAge
* Merge branch 'obsd-master'Thomas Adam2014-05-13
|\ | | | | | | | | | | Conflicts: format.c window.c
| * Both the two previous ways of navigating panes by direction havenicm2014-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | irritating flaws: a) The old way of always using the top or left if the choice is ambiguous is annoying when the layout is unbalanced. b) The new way of remembering the last used pane is annoying if the layout is balanced and the leftmost is obvious to the user (because clearly if we go right from the top-left in a tiled set of four we want to end up in top-right, even if we were last using the bottom-right). So instead, use a combination of both: if there is only one possible pane alongside the current pane, move to it, otherwise choose the most recently used of the choice.
* | Merge branch 'obsd-master'Thomas Adam2014-02-22
|\|
| * Fix crash due to uninitialized lastwp member of layout_cell, reported bynicm2014-02-22
| | | | | | | | Balazs Kezes.
| * mouse-resize-pane: Only resize on border selectnicm2013-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | The current behaviour of mouse-resize-pane is such that if the mouse button is held down and a selection takes place within a pane, that if the mouse pointer then hits a border edge, that pane-resize would initiate. This seems counter-intuitive; instead, check for a resize condition if the border of a pane is selected, and in the case of mouse selection within a pane, no longer resize the pane if edge of the border is hit. By Thomas Adam.
| * Add resize-pane -Z to temporary zoom the active pane to occupy the fullNicholas Marriott2013-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | window or unzoom (restored to the normal layout) if it already zoomed, bound to C-b z by default. The pane is unzoomed on pretty much any excuse whatsoever. We considered making this a new layout but the requirements are quite different from layouts so decided it is better as a special case. Each current layout cell is saved, a temporary one-cell layout generated and all except the active pane set to NULL. Prompted by suggestions and scripts from several. Thanks to Aaron Jensen and Thiago Padilha for testing an earlier version.
| * Add resize-pane -x and -y for absolute pane size (much requested).Nicholas Marriott2013-03-22
| |
* | mouse-resize-pane: Only resize on border selectThomas Adam2013-10-02
| | | | | | | | | | | | | | | | | | | | The current behaviour of mouse-resize-pane is such that if the mouse button is held down and a selection takes place within a pane, that if the mouse pointer then hits a border edge, that pane-resize would initiate. This seems counter-intuitive; instead, check for a resize condition if the border of a pane is selected, and in the case of mouse selection within a pane, no longer resize the pane if edge of the border is hit.
* | layout-resize-pane-mouse: Consider visible panes onlyThomas2013-09-30
| | | | | | | | | | | | When a pane is maximized, and text is selected, we end up checking if a pane switch is needed. This therefore means we might end up selecting panes which aren't visible.
* | Add resize-pane -Z to temporary zoom the active pane to occupy the full windowNicholas Marriott2013-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | or unzoom (restored to the normal layout) if it already zoomed, bound to C-b z by default. The pane is unzoomed on pretty much any excuse whatsoever. We considered making this a new layout but the requirements are quite different from layouts so decided it is better as a special case. Each current layout cell is saved, a temporary one-cell layout generated and all except the active pane set to NULL. Prompted by suggestions and scripts from several. Thanks to Aaron Jensen and Thiago Padilha for testing an earlier version.
* | Add resize-pane -x and -y for absolute pane size.Nicholas Marriott2013-02-18
| |
* | Merge branch 'obsd-master'Thomas Adam2013-01-17
|\|
| * Remove the layout undo/redo code which never really worked.Nicholas Marriott2013-01-17
| |
* | Merge branch 'obsd-master'Thomas Adam2012-10-26
|\| | | | | | | Sync from OpenBSD.
| * Make mouse event structure clearer by defining events (up, click, drag)Nicholas Marriott2012-10-26
| | | | | | | | | | and simplifying how buttons and wheels are represented, from Ailin Nemui. Should be no functional changes.
| * xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott2012-07-10
| |
| * Fix some indentation.Nicholas Marriott2012-04-01
| |
| * Fix option name.Nicholas Marriott2012-04-01
| |
| * Add a layout history which can be stepped through with select-layout -uNicholas Marriott2012-04-01
| | | | | | | | and -U commands (bound to 'u' and 'U' by default).
| * Add notify hooks for various events, the functions are currently emptyNicholas Marriott2012-03-17
| | | | | | | | stubs but will be filled in for control mode later. From George Nachman.
| * Add move-pane command (like join-pane but allows the same window). AlsoNicholas Marriott2012-03-03
| | | | | | | | | | -b flag to join-pane and move-pane to place the pane to the left or above. From George Nachman.
| * Add an option to move the status line to the top of the screen,Nicholas Marriott2012-01-29
| | | | | | | | requested by many.
| * Add a new option, mouse-resize-pane. When on, panes may be resized byNicholas Marriott2011-05-08
| | | | | | | | dragging their borders. From hsim at gmx.li.
| * Custom layouts. list-windows command displays the layout as a string (such asNicholas Marriott2010-06-29
| | | | | | | | | | "bb62,159x48,0,0{79x48,0,0,79x48,80,0}") and it can be applied to another window (with the same number of panes or fewer) using select-layout.
| * New command, join-pane, to split and move an existing pane into the space (likeNicholas Marriott2010-01-07
| | | | | | | | splitw then movep, or the reverse of breakp).
| * Massive spaces->tabs and trailing whitespace cleanup, hopefully for the lastNicholas Marriott2009-12-03
| | | | | | | | | | time now I've configured emacs to make them displayed in really annoying colours...
| * Improved layout code.Nicholas Marriott2009-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each window now has a tree of layout cells associated with it. In this tree, each node is either a horizontal or vertical cell containing a list of other cells running from left-to-right or top-to-bottom, or a leaf cell which is associated with a pane. The major functional changes are: - panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and vertically (splitw -v, C-b "); - panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D, bound to C-b left/right/up/down and C-b M-left/right/up/down); - layouts are now applied and then may be modified by resizing or splitting panes, rather than being fixed and reapplied when the window is resized or panes are added; - manual-vertical layout is no longer necessary, and active-only layout is gone (but may return in future); - the main-pane layouts now reduce the size of the main pane to fit all panes if possible. Thanks to all who tested.
| * Get rid of the PANE_HIDDEN flag in favour of a function, and moving theNicholas Marriott2009-07-14
| | | | | | | | | | | | | | | | decision for whether or not a pane should be drawn out of the layout code and into the redraw code. This is needed for the new layout design, getting it in now to make that easier to work on.
| * Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott2009-06-01
| | | | | | | terminal to be switched between several different windows and programs displayed on one terminal be detached from one terminal and moved to another. ok deraadt pirofti
* Sync OpenBSD patchset 1150:Tiago Cunha2012-07-11
| | | | | xfree is not particularly helpful, remove it. From Thomas Adam.
* Sync OpenBSD patchset 1089:Tiago Cunha2012-04-10
| | | | | Fix some indentation.
* Sync OpenBSD patchset 1085:Tiago Cunha2012-04-10
| | | | | Fix option name.
* Sync OpenBSD patchset 1084:Tiago Cunha2012-04-10
| | | | | | Add a layout history which can be stepped through with select-layout -u and -U commands (bound to 'u' and 'U' by default).
* Sync OpenBSD patchset 1069:Tiago Cunha2012-03-18
| | | | | | Add notify hooks for various events, the functions are currently empty stubs but will be filled in for control mode later. From George Nachman.
* Sync OpenBSD patchset 1035:Tiago Cunha2012-03-03
| | | | | | | Add move-pane command (like join-pane but allows the same window). Also -b flag to join-pane and move-pane to place the pane to the left or above. From George Nachman.
* Sync OpenBSD patchset 1015:Tiago Cunha2012-01-29
| | | | | | Add an option to move the status line to the top of the screen, requested by many.
* Expand the Id keyword. Tiago Cunha2011-07-09
|
* Sync OpenBSD patchset 905:Tiago Cunha2011-05-18
| | | | | | Add a new option, mouse-resize-pane. When on, panes may be resized by dragging their borders. From hsim at gmx.li.
* Sync OpenBSD patchset 732:Tiago Cunha2010-07-02
| | | | | | | Custom layouts. list-windows command displays the layout as a string (such as "bb62,159x48,0,0{79x48,0,0,79x48,80,0}") and it can be applied to another window (with the same number of panes or fewer) using select-layout.
* Sync OpenBSD patchset 604:Tiago Cunha2010-01-08
| | | | | | New command, join-pane, to split and move an existing pane into the space (like splitw then movep, or the reverse of breakp).
* Sync OpenBSD patchset 581:Tiago Cunha2009-12-04
| | | | | | | Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last time now I've configured emacs to make them displayed in really annoying colours...
* Sync OpenBSD patchset 142:Tiago Cunha2009-07-20
| | | | | | | | | | | | | | | | | | | | | | | | Each window now has a tree of layout cells associated with it. In this tree, each node is either a horizontal or vertical cell containing a list of other cells running from left-to-right or top-to-bottom, or a leaf cell which is associated with a pane. The major functional changes are: - panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and vertically (splitw -v, C-b "); - panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D, bound to C-b left/right/up/down and C-b M-left/right/up/down); - layouts are now applied and then may be modified by resizing or splitting panes, rather than being fixed and reapplied when the window is resized or panes are added; - manual-vertical layout is no longer necessary, and active-only layout is gone (but may return in future); - the main-pane layouts now reduce the size of the main pane to fit all panes if possible. Thanks to all who tested.
* Get rid of the PANE_HIDDEN flag in favour of a function, and moving theNicholas Marriott2009-07-15
| | | | | | | | | decision for whether or not a pane should be drawn out of the layout code and into the redraw code. This is needed for the new layout design, getting it in now to make that easier to work on.
* main-horizontal layout and main-pane-height option to match vertical.Nicholas Marriott2009-05-18
|
* left-vertical -> main-vertical.Nicholas Marriott2009-05-18
| | | | | Also update CHANGES/TODO.
* New option main-pane-width to set width of pane in left-vertical mode.Nicholas Marriott2009-05-18
|
* horizontal -> h, vertical -> v, to shorten some function names a little.Nicholas Marriott2009-05-18
|
* Behave properly when resize not supported.Nicholas Marriott2009-05-18
|
* manual -> manual-vertical.Nicholas Marriott2009-05-18
|
* Clean up manual layout code:Nicholas Marriott2009-05-18
| | | | | | | | | | | | - change the one layout function into two _refresh and _resize - create layout-manual.c for manual layout code - move the fit panes/update panes code from window.c to the new file as it is only used by manual layout now - move the resize pane code into layout-manual.c as well - get rid of the direct calls to fit/update and make them go through layout - rename a couple of variables This is mainly as a first step before reworking the manual layout code to see if anything breaks.