Daniel Eklöf
e9c3d03837
config: add colors.jump_labels and colors.urls
...
* colors.jump_labels configures the foreground and background colors
used when rendering URL jump labels. Defaults to “regular0
regular3” (i.e. black on yellow).
* colors.urls configures the color to use when highlighting URLs in
URL mode. Note that we aren’t currently doing any
highlighting... Defaults to regular3 (i.e. yellow).
2021-02-07 16:33:33 +01:00
Daniel Eklöf
fcbb5a0bf7
config: use a packed bitfield for “use custom color” flags
2021-02-07 16:33:33 +01:00
Daniel Eklöf
0d17fd6a5d
foot.ini: fix default values for csd.button-*-color
2021-02-07 16:33:33 +01:00
Daniel Eklöf
ef3ce530ba
url-mode: refactor: break out URL activation to a separate function
2021-02-07 16:33:33 +01:00
Daniel Eklöf
607ee63b77
url-mode: auto-detect: use wcsncasecmp() instead of towlower()
...
When matching the URI scheme, use wcsncasecmp() when comparing the
strings, instead of calling towlower() on each cell.
2021-02-07 16:33:33 +01:00
Daniel Eklöf
6b7003bcc3
url-mode: auto-detect: don’t store the lower-cased URL; use original casing
2021-02-07 16:33:33 +01:00
Daniel Eklöf
93181649b3
config: add show-urls-copy action
...
This works just like show-urls-launch, except that instead of opening
the URL (typically using xdg-open), it is placed in the clipboard when
activated.
2021-02-07 16:33:32 +01:00
Daniel Eklöf
b17a392b8c
config: show-urls-launch: change default key binding to ctrl+shift+u
2021-02-07 16:33:32 +01:00
Daniel Eklöf
0a1c5e44c4
config: rename ‘show-urls’ to ‘show-urls-launch’
2021-02-07 16:33:32 +01:00
Daniel Eklöf
013b26d212
render: urls: tweak positioning
...
Don’t offset the labels too much vertically, _or_ horizontally.
2021-02-07 16:33:32 +01:00
Daniel Eklöf
d69497efe4
render: reduce URL jump label margins
2021-02-07 16:33:32 +01:00
Daniel Eklöf
82e2541760
config: add ctrl+d as (yet another) default binding url-bindings.cancel
2021-02-07 16:33:32 +01:00
Daniel Eklöf
65caa33084
url-mode: auto-detect: don’t line-wrap URL is row isn’t line-wrapped
2021-02-07 16:33:32 +01:00
Daniel Eklöf
eb0b244c89
render: url labels: don’t position outside window
2021-02-07 16:33:32 +01:00
Daniel Eklöf
f61f7c131f
url-mode: auto-detect: heuristics for parenthesis and brackets
...
While parenthesis and brackets _are_ valid URL characters, there are
many times when we do *not* want them to be part of the URL.
For example, in markdown we write “[text](url)”, or even
“[](url-2)”.
Here, the URLs are clearly *not* “url)” or “url-1)](url2)”.
2021-02-07 16:33:32 +01:00
Daniel Eklöf
9d8ec857ce
url-mode: use ‘url-launch’ from config to open URLs
2021-02-07 16:33:32 +01:00
Daniel Eklöf
06aba59430
notify: break out command template expansion to spawn_expand_template()
2021-02-07 16:33:32 +01:00
Daniel Eklöf
4233c806c3
config: add ‘url-launch’ option, defaulting to “xdg-open ${url}”
2021-02-07 16:33:31 +01:00
Daniel Eklöf
0cbdf657a7
term: destroy: set term->window = NULL after destroying it
...
This fixes a crash in urls_reset() on destroy, where we tried to
access an already free:d window pointer in order to destroy the jump
label surfaces.
2021-02-07 16:33:31 +01:00
Daniel Eklöf
44b7758416
render: urls: positioning: place a bit further away from the starting position
2021-02-07 16:33:31 +01:00
Daniel Eklöf
2315aba458
url-mode: urls_reset() do an early return if we don’t have any URLs
2021-02-07 16:33:31 +01:00
Daniel Eklöf
d75688b0bd
url-mode: fix ‘n’ parameter to wcstombs()
2021-02-07 16:33:31 +01:00
Daniel Eklöf
2cc84db979
urls: initial support for detecting URLs and rendering jump-labels
...
The jump labels work, but is currently hardcoded to use xdg-open
2021-02-07 16:33:31 +01:00
Daniel Eklöf
b255aea3ed
config: free URL bindings
2021-02-07 16:33:31 +01:00
Daniel Eklöf
ee39966ded
config: add infrastructure to handle URL mode specific key bindings
...
* Add “show-urls” action to regular key bindings
* Add url-bindings section to foot.ini
* Add “cancel” action to URL mode key bindings
2021-02-07 16:33:31 +01:00
Daniel Eklöf
8f4a8cd8ce
Merge branch 'xassert-performance-regression-2'
2021-02-07 16:32:03 +01:00
Daniel Eklöf
cb60ddd090
vt: remove xassert(), that cannot be optimized out, from action_print()
...
action_print() is in the hot path, and having if-statement here *does*
have an impact on performance.
Much more so when that if-statement involves a functional call to
wcwidth().
Closes #330
2021-02-07 11:14:07 +01:00
Daniel Eklöf
7cb49681e7
ime: enter(): remove assertion on surface kind being TERM_SURF_GRID
...
The main surface is the *only* IME capable surface we have. If the
compositor is sending an ime::enter event for another surface, it is a
compositor bug, not a foot bug.
2021-02-07 11:11:58 +01:00
Daniel Eklöf
0d012db3a8
main: include uname.sysname when logging host architecture
2021-02-07 10:24:48 +01:00
Daniel Eklöf
1d9cd8cc04
Merge branch 'mouse-events-never-sent-to-client'
2021-02-04 19:28:40 +01:00
Daniel Eklöf
5a2e44e24e
changelog: some mouse events never being sent to the client application
2021-02-02 09:53:24 +01:00
Daniel Eklöf
eff8481cdc
selection: remove selection_enabled()
...
Its name did not reflect its semantics. Since it was only used in a
single place, “inline” it there, and get rid of it.
2021-02-02 09:52:22 +01:00
Daniel Eklöf
d6b1dbf8d9
input: don’t execute mouse bindings when the application is grabbing the mouse
...
When the application is grabbing the mouse, we require ‘shift’ to be
pressed to be able to use foot’s mouse bindings. Otherwise the mouse
event is sent to the application.
This wasn’t being enforced consistently; each and every mouse **only**
action was checking the mouse grab state, but e.g. *primary
paste* (which can be used as both a key binding and a mouse binding)
was not.
The fix is actually quite simple: don’t even try to execute *any*
mouse bindings when the application is grabbing the mouse (unless
shift is pressed).
This fixes an issue where e.g. middle mouse button events (using the
default mouse bindings) were never seen by any mouse grabbing client
applications.
2021-02-02 09:52:05 +01:00
Daniel Eklöf
f8da14eed5
term: term_mouse_grabbed: return true if mouse tracking is disabled
2021-02-02 09:51:22 +01:00
Daniel Eklöf
e1eed7bafc
Merge branch 'reset-term-ime-on-text-input-leave'
2021-01-31 12:12:16 +01:00
Daniel Eklöf
48270187ca
notify: repair debug log: the parameter has been renamed: msg -> body
2021-01-31 10:26:36 +01:00
Tadeo Kondrak
1515b7e44b
ime: Reset terminal's IME state on text_input.leave
...
To reproduce issue:
- Launch an IME from inside foot
- Type in some preedit text
- Use Ctrl-C to close the IME
- IME text stays in terminal until focus is changed
2021-01-30 12:24:12 -07:00
Daniel Eklöf
c4363ef336
Merge branch 'releases/1.6'
2021-01-29 20:12:32 +01:00
Daniel Eklöf
4c168b84cf
meson/pkgbuild: bump version to 1.6.3
2021-01-29 19:53:10 +01:00
Daniel Eklöf
efd1e05b48
changelog: prepare for 1.6.3
2021-01-29 19:52:27 +01:00
Tadeo Kondrak
8f0a3ee7a9
Send text_input_rectangle requests for text-input
2021-01-29 19:39:48 +01:00
Daniel Eklöf
87d6739c03
Merge branch 'text-input-rectangle'
...
Closes #309
2021-01-29 19:32:59 +01:00
Daniel Eklöf
9411054b50
ci: freebsd: don’t need -Wno-missing-braces anymore
...
builds.sr.ht has been updated to FreeBSD-12.2
2021-01-29 10:57:32 +01:00
Daniel Eklöf
44ebb14ffb
Merge branch 'drop-wno-missing-braces-from-freebsd'
2021-01-29 10:57:10 +01:00
Tadeo Kondrak
95c0c89cac
Send text_input_rectangle requests for text-input
2021-01-28 22:22:01 -07:00
Daniel Eklöf
0a645d67a7
ci: freebsd: don’t need -Wno-missing-braces anymore
...
builds.sr.ht has been updated to FreeBSD-12.2
2021-01-28 07:34:44 +01:00
Daniel Eklöf
7049c95b62
selection: don’t replace \r\n and \n with \r in bracketed paste mode
2021-01-27 10:54:37 +01:00
Daniel Eklöf
4c0c972726
Merge branch 'selection-no-newline-replace-in-bracketed-paste'
2021-01-27 10:54:10 +01:00
Daniel Eklöf
81fb756ea7
selection: don’t replace \r\n and \n with \r in bracketed paste mode
2021-01-27 10:44:28 +01:00
Daniel Eklöf
567071e48a
selection: no xassert() in the releases/1.6 branch
2021-01-26 20:48:56 +01:00