Commit graph

519 commits

Author SHA1 Message Date
Daniel Eklöf
3d6bbf0fe8
meson: remove unused wayland protocols 2019-08-17 12:02:05 +02:00
Daniel Eklöf
d21c4a02a0
Merge branch 'pixman' 2019-08-17 11:59:52 +02:00
Daniel Eklöf
72d3cbca26
shm/render: there's no need to have one pixman image per thread 2019-08-16 22:54:05 +02:00
Daniel Eklöf
f45e5c6aef
Remove all references to cairo; we now use pixman only 2019-08-16 22:11:22 +02:00
Daniel Eklöf
81107753bf
render: replace all usage of cairo with pixman 2019-08-16 22:06:06 +02:00
Daniel Eklöf
bed7b34c28
wip: render background and glyphs using pixman 2019-08-16 20:40:32 +02:00
Daniel Eklöf
9259696b18
meson: add pixman dependency 2019-08-16 18:07:04 +02:00
Daniel Eklöf
ece09cc76f
vt: remove support for urxvt 'extended' line drawing character set 2019-08-16 18:04:03 +02:00
Daniel Eklöf
8586c9cb91
vt: there is no default charset for \e0 and \eB 2019-08-16 18:01:24 +02:00
Daniel Eklöf
30d5847d06
font: fix broken debug log 2019-08-16 18:00:56 +02:00
Daniel Eklöf
6f1cf8af34
input: remove debug output 2019-08-15 20:09:24 +02:00
Daniel Eklöf
f7f3d4d5b5
Merge branch 'meta-modifier' 2019-08-15 20:08:32 +02:00
Daniel Eklöf
b8c552a5b7
keymap: add meta modifier mappings for keypad keys 2019-08-15 20:07:33 +02:00
Daniel Eklöf
2c16ec2687
keymap: add meta modifier mappings for non-keypad keys 2019-08-15 19:56:14 +02:00
Daniel Eklöf
44112e5591
input: handle meta modifier when modifying "other" keys
When handling keys without a specific map defined (i.e. keys
corresponding roughly to xterm's "otherKeys"), recognize the meta
modifier and report the correct modifier code.
2019-08-15 19:38:50 +02:00
Daniel Eklöf
9ca01436ee
input: track meta modifier 2019-08-15 19:38:28 +02:00
Daniel Eklöf
c5747fbd7d
keymap: don't ESC prefix return when 'shift' is held down 2019-08-15 19:24:46 +02:00
Daniel Eklöf
d45af7fd76
doc: document how to specify command to execute instead of shell 2019-08-15 19:17:51 +02:00
Daniel Eklöf
9fe6e8cc48
Add background alpha support 2019-08-15 18:15:43 +02:00
Daniel Eklöf
9e7106018e
font: don't bother creating a cairo surface for zero-width glyphs 2019-08-13 20:44:30 +02:00
Daniel Eklöf
8035bbfbdb
font: handle invalid glyphs correctly
*All* glyphs are cached.

But we never set the 'wc' member of failed glyphs, causing a later
cache lookup of the same glyph miss in the cache, and thus re-generate
yet another glyph (that is inserted into the cache). I.e. if the
same (invalid) glyph is rendered over and over again, we'll end up
growing the cache indefinitely.

Fix by setting the 'wc' member of invalid glyphs. This causes a cache
lookup to hit. But, we must also check the glyphs validity, and return
NULL if the glyph isn't valid.

Finally, when destroying a font, skip invalid glyphs, since they have
no resources that needs to be freed.
2019-08-13 20:41:21 +02:00
Daniel Eklöf
c2451e2a80
output: track output we're mapped on, and use maximum scale
Our surface may be on multiple outputs at the same time. In this case,
we use the largest scale factor, and let the compositor down scale on
the "other" output(s).
2019-08-12 21:49:17 +02:00
Daniel Eklöf
4b06360681
input: free previous XKB state when we get a new one 2019-08-12 21:33:24 +02:00
Daniel Eklöf
05e91fa9df
output: resize on scale changes 2019-08-12 21:33:24 +02:00
Daniel Eklöf
74f723e0cf
output: initial support for output scaling
* Not updated run-time; only scale at start up used
* Multiple monitors (outputs) not supported, as we can't track which
  output we're on (yet).
2019-08-12 21:33:24 +02:00
Daniel Eklöf
c6640adde3
render: fix foreground color for non-block cursor
When rendering either the 'bar' or 'underline' cursor styles, only use
the configured "cursor color" if it has actually been configured.

If it hasn't, use the current foreground color.
2019-08-12 20:00:28 +02:00
Daniel Eklöf
9855d18ba7
doc: add foot.5 (configuration) 2019-08-12 20:00:09 +02:00
Daniel Eklöf
4b81fa3eab
config: set to NULL before calling getline()
This fixes a crash on musl-based distros
2019-08-12 19:31:56 +02:00
Daniel Eklöf
ca5e693524
config: don't log a NULL path 2019-08-12 19:31:21 +02:00
Daniel Eklöf
d405c7022f
doc: add foot.1 man page 2019-08-11 20:54:28 +02:00
Daniel Eklöf
1060c8e892
main: add -h,--help and -v,--version command line options 2019-08-11 16:03:29 +02:00
Daniel Eklöf
a78765a36f
README: add description of mouse middle click 2019-08-11 15:55:55 +02:00
Daniel Eklöf
9235738ea1
READNE: fontconfig's fallback _can_ be used, but isn't preferred 2019-08-11 15:55:23 +02:00
Daniel Eklöf
00b6948d9f
font: cleanup 2019-08-10 21:10:56 +02:00
Daniel Eklöf
92319d1570
font: initial support for fontconfig font fallback
When we've exhausted our own fallback list, try the font list provided
by fontconfig.

This means, the user's fallback fonts have priority, but in case all
of them fail, we hopefully get lucky with fontconfig...
2019-08-10 20:34:22 +02:00
Daniel Eklöf
75830ba016
selection: regression: last cell wasn't included in copied text 2019-08-10 20:22:02 +02:00
Daniel Eklöf
15afd26716
osc: implement copy/paste to/from primary 2019-08-09 21:27:51 +02:00
Daniel Eklöf
70b6d9d7d2
input: don't paste from primary if client is mouse tracking 2019-08-09 21:26:34 +02:00
Daniel Eklöf
356c5a28b5
README: remove empty lines in between list items 2019-08-08 22:37:00 +02:00
Daniel Eklöf
caeda96b05
README: initial readme 2019-08-08 22:35:55 +02:00
Daniel Eklöf
d4a25f7f96
config: remove old, commented out code 2019-08-08 22:20:58 +02:00
Daniel Eklöf
14d4a0a1c6
term: don't send mouse events if shift is being pressed 2019-08-08 17:58:50 +02:00
Daniel Eklöf
28a8b18c5e
selection: allow selection when mouse tracking is enabled *if* shift is pressed 2019-08-08 17:58:24 +02:00
Daniel Eklöf
2a8962fd1a
render: selection may not be "ordered", since it may not have been finalized 2019-08-08 17:58:06 +02:00
Daniel Eklöf
83a10402af
font: improve logging 2019-08-08 17:57:58 +02:00
Daniel Eklöf
bab6f1d6bf
csi: cancel selection *before* switching grid
This fixes an occasional SIGSEGV
2019-08-08 17:57:21 +02:00
Daniel Eklöf
481a1cd678
selection/input: triple click selects an entire row 2019-08-06 19:32:06 +02:00
Daniel Eklöf
ae84f0ee00
main: make all polled FDs non-blocking
And handle read() returning EAGAIN.

This fixes an issue with the keyboard repeat timer, which sometimes
would return EAGAIN.

Most likely because POLLIN was set on it, but then before we get to
handle it, the timer was canceled (by a key up event).
2019-08-05 20:30:06 +02:00
Daniel Eklöf
c06f141189
term: cancel selection when scrolling wraps
If we scroll enough, we'll eventually end up wrapping around the
entire scrollback buffer. At this point, a selection is no longer
valid, so cancel it.

Note: this was very obvious when scrolling in the alt screen, since
its scrollback buffer is what you see on the screen (i.e. it has no
scrollback).
2019-08-05 20:16:17 +02:00
Daniel Eklöf
1e08d93528
selection: ensure start < end in finalize
When the selection is finalized, swap start/end if necessary, to make
sure start <= end.
2019-08-05 20:15:18 +02:00