Commit Graph

1627 Commits

Author SHA1 Message Date
0d19d78fff Merge branch 'obsd-master' 2017-01-11 16:01:16 +00:00
458b6eb600 Some tidying and tweaks to options code. 2017-01-11 14:56:44 +00:00
2c862b04af Merge branch 'obsd-master' 2017-01-09 22:01:12 +00:00
844f2eacf4 Add simple comparisons in formats: #{==:a,b} and #{!=:a,b} ("a" and "b"
are expanded so can compare formats). And expand the condition to
#{?a,b,c} (the "a" part) if it doesn't work as a simple lookup.

Also add FORMAT_NOJOBS flag to disable jobs in a format.
2017-01-09 21:03:25 +00:00
95f5d406e5 Merge branch 'obsd-master' 2017-01-09 20:01:12 +00:00
5330a2a85d Run the source-file pattern through glob(3). 2017-01-09 19:27:00 +00:00
29e64a8c64 Merge branch 'obsd-master' 2017-01-07 16:01:17 +00:00
314e933914 Add support for the OSC 4 and OSC 104 palette setting escape sequences,
from S Gilles.
2017-01-07 15:28:13 +00:00
a3428487a7 Merge branch 'obsd-master' 2017-01-06 14:01:15 +00:00
461217d0f0 Incremental search in copy mode (on for emacs keys by default) - much
the same as normal searching but updates the cursor position and marked
search terms as you type. C-r and C-s in the prompt repeat the search,
once finished searching (with Enter), N and n work as before.
2017-01-06 11:57:03 +00:00
58642011df Merge branch 'obsd-master' 2017-01-05 10:01:11 +00:00
9a56671a75 Highlight all occurrences of search string after searching in copy mode. 2017-01-05 09:07:15 +00:00
d3328a3b1e Merge branch 'obsd-master' 2016-12-28 12:01:14 +00:00
70ba3c147f Fix the prefer unattached session behaviour of
attach-session/switch-client, reported by Thomas Sattle.
2016-12-28 10:34:34 +00:00
2864a31311 Merge branch 'obsd-master' 2016-11-24 20:01:10 +00:00
6f8cedb1bc The mouse valid flag needs to be correct before we fire the dragging
callback, so move the callback outside of server_client_check_mouse and
use a new special key code to indicate it.
2016-11-24 18:45:45 +00:00
a02d95a313 Merge branch 'obsd-master' 2016-11-24 16:01:11 +00:00
7e6c2cb238 Make the selection able to exist independent of the cursor position, so
that it is not affected by scrolling. If MouseDragEnd1Pane is bound to
the new "stop-selection" command:

    bind -Tcopy-mode MouseDragEnd1Pane stop-selection

A selection made with the mouse will stay as it is after button 1 is
released. (It also works bound to a key.)

From Artem Fokin.
2016-11-24 13:38:44 +00:00
8a8001350d Merge branch 'obsd-master' 2016-11-23 18:01:19 +00:00
6de466cf8b For mouse keys, use the mouse pane as the default current pane. 2016-11-23 17:01:24 +00:00
12c49fa3bd Merge branch 'obsd-master' 2016-11-16 02:01:11 +00:00
e88b74350f The target validity check used window_pane_visible but that may be false
if the pane is zoomed, so instead add a new function to just check if
the pane is actually on screen (most commands still want to accept panes
invisible by zoom). Also reject panes outside the window for various
special targets. Problem reported by Sean Haugh.
2016-11-16 00:24:03 +00:00
1afe9e98de Merge branch 'obsd-master' 2016-11-15 16:01:10 +00:00
c34a79b152 Turn on margins, with a couple of fixes (only limit to the pane for line
feeds, and do not move cursor to end for full width panes).
2016-11-15 15:17:28 +00:00
0ace779cde Initial attempt to make use of left and right margins if the terminal
supports them (that is, if it advertises itself as a VT420 - probably
just xterm). These are the vertical equivalent of the scroll region and
allow much faster scrolling of panes that do not take up the full width
of the terminal.
2016-11-15 14:02:32 +00:00
1de107c405 Merge branch 'obsd-master' 2016-11-04 16:01:11 +00:00
353439acee enum values need to fit in 32 bits; we only use enum for numbering and
Unicode characters fit in 24 bits, so we can leave key_code as 64 bits
and change KEYC_BASE down to 0x10000000.
2016-11-04 14:47:38 +00:00
28a31201d3 Merge branch 'obsd-master' 2016-10-19 12:01:11 +01:00
899e629bf0 Alerts are too slow, so rather than walking all sessions and windows,
add a link of winlinks to each window and a pointer to the session to
each winlink. Also rewrite the alerts processing to return to the old
behaviour (alert in any window sets the flag on any winlink).
2016-10-19 09:22:07 +00:00
8576ecaf32 Merge branch 'obsd-master' 2016-10-18 12:01:10 +01:00
2e5c49a1fd Give each item on queue a name for better logging. 2016-10-18 08:46:43 +00:00
d54e990c4f Merge branch 'obsd-master' 2016-10-17 00:01:11 +01:00
fe106842c8 Use notifys for alerts too. 2016-10-16 22:18:04 +00:00
41e633acf5 Use the notify name string instead of going via an enum and change
existing hooks to use notifys instead.
2016-10-16 22:06:40 +00:00
1a6e696b08 Merge branch 'obsd-master' 2016-10-16 22:01:14 +01:00
3f35b5299f Provide a way for hooks to tag formats onto the commands they fire so
that the user can get at additional information - now used for the
"hook" format, more to come.
2016-10-16 19:36:37 +00:00
026ad08b56 Notifys can go via the command queue instead of using their own queue. 2016-10-16 19:15:02 +00:00
b342bd0b46 Mass rename struct cmd_q to struct cmdq_item and related. 2016-10-16 19:04:05 +00:00
c67b702588 Merge branch 'obsd-master' 2016-10-16 20:01:10 +01:00
ddc4512d2e Rewrite command queue handling. Each client still has a command queue,
but there is also now a global command queue. Instead of command queues
being dispatched on demand from wherever the command happens to be
added, they are now all dispatched from the top level server
loop. Command queues may now also include callbacks as well as commands,
and items may be inserted after the current command as well as at the end.

This all makes command queues significantly more predictable and easier
to use, and avoids the complex multiple nested command queues used by
source-file, if-shell and friends.

A mass rename of struct cmdq to a better name (cmdq_item probably) is
coming.
2016-10-16 17:55:14 +00:00
59d1147469 Merge branch 'obsd-master' 2016-10-15 12:01:14 +01:00
e7990375cb Give window_create and window_create1 better names. 2016-10-15 09:27:52 +00:00
623e54788e Merge branch 'obsd-master' 2016-10-15 02:01:12 +01:00
3f138dc40c Rename a function for consistency and some spacing nits. 2016-10-15 00:12:58 +00:00
63b2547a02 Fire hooks on the simple notifys (window-renamed and session-renamed),
the complicated ones get no hooks for now (more to come).
2016-10-15 00:09:30 +00:00
9b3ae84993 Drain notifys once at the end of the server loop instead of doing it
from the end of every command queue (which could be nested).
2016-10-15 00:01:01 +00:00
117737c6ca Merge branch 'obsd-master' 2016-10-14 02:01:14 +01:00
4289a1ebfa Trying to do hooks generically is way too complicated and unreliable and
confusing, particularly trying to automatically figure out what target
hooks should be using. So simplify it:

- drop before hooks entirely, they don't seem to be very useful;

- commands with special requirements now fire their own after hook (for
  example, if they change session or window, or if they have -t and -s
  and need to choose which one the hook uses as current target);

- commands with no special requirements can have the CMD_AFTERHOOK flag
  added and they will use the -t state.

At the moment new-session, new-window, split-window fire their own hook,
and display-message uses the flag. The remaining commands still need to
be looked at.
2016-10-13 22:48:51 +00:00
ad5a561adb Merge branch 'obsd-master' 2016-10-13 22:01:12 +01:00
4179b42424 Add support for BCE (background colour erase). This makes various escape
sequences (notable EL and ED but also IL, DL, ICH, DCH) create blank
cells using the current background colour rather than the default
colour.

On modern systems BCE doesn't really have many benefits, but most other
terminals now support it, some (lazy) applications rely on it, and it is
not hard to include now that we have pane background colours anyway.

Mostly written by Sean Haugh.
2016-10-13 20:27:27 +00:00