Commit graph

1672 commits

Author SHA1 Message Date
Daniel Eklöf
6c6e3da7e2
term: init: no need to roundtrip 2020-03-09 18:46:50 +01:00
Daniel Eklöf
3e5f011f75
wayland: make a missing presentation time interface an error
If the user wanted to do presentation timing, and the interface isn't
there, then this is an error.
2020-03-09 18:46:09 +01:00
Daniel Eklöf
404365ec56
wayland: register FDM hook early, to avoid unregister errors when failing 2020-03-09 18:45:43 +01:00
Daniel Eklöf
217f16e434
.desktop: 'terminal' is not a common icon name
Not all icon themes have a 'terminal' icon. 'utilities-terminal' on
the other hand is a standardized icon name.
2020-03-09 18:44:43 +01:00
Daniel Eklöf
18313dcbec
config: csd: error out on invalid key 2020-03-08 14:08:48 +01:00
Daniel Eklöf
3bc6db1e8c
scripts/generate-alt-random-writes: use TIOCGWINSZ instead of shutil 2020-03-08 13:52:59 +01:00
Daniel Eklöf
8cf3cec920
README: only the bundled PKGBUILD requires tllist+fcft to be installed system-wide 2020-03-06 23:22:42 +01:00
Daniel Eklöf
d30449a36f
README: font size adjustments are in half point steps 2020-03-06 23:12:45 +01:00
Daniel Eklöf
b7959859f2
README: space separate AUR packages 2020-03-06 21:41:48 +01:00
Daniel Eklöf
bab11a3d38
README: fix markdown markup of AUR links 2020-03-06 21:41:17 +01:00
Daniel Eklöf
c02cde6401
README: add links to Arch AUR packages 2020-03-06 21:40:10 +01:00
Daniel Eklöf
52784c51ea
PKGBUILD: add '-git' postfix to package names 2020-03-06 21:36:36 +01:00
Daniel Eklöf
c33c7e6607
Merge branch 'releases/1.2' 2020-03-06 21:28:50 +01:00
Daniel Eklöf
07002bb941
meson/PKGBUILD/changelog: bump to 1.2.1 2020-03-06 21:21:34 +01:00
Daniel Eklöf
f5ceb958cd
generate-version: check for .git directory in *src* dir
Instead of trying to run `git --rev-parse --is-inside-work-tree`,
check if there's a .git directory under the source directory.

This should fix an issue where we incorrectly decided we where in a
foot git clone when we're just a subdirectory under another
repository.
2020-03-06 21:18:31 +01:00
Daniel Eklöf
c1e996c06c
README: add link to keyboard+mouse bindings issue 2020-03-06 20:25:49 +01:00
Daniel Eklöf
4c56c8c63d
meson/PKGBUILD/changelog: prepare for 1.2.0 2020-03-06 20:11:50 +01:00
Daniel Eklöf
6bc6bf4fb4
changelog: add all major changes for 1.2.0 2020-03-06 20:10:27 +01:00
Daniel Eklöf
f1c6ca8338
README: fix backtick 2020-03-06 20:10:04 +01:00
Daniel Eklöf
81b4f67d99
changelog: template 2020-03-06 19:45:04 +01:00
Daniel Eklöf
a98eb771fa
PKGBUILD: only do a PGO build if we have a Wayland session 2020-03-06 19:33:42 +01:00
Daniel Eklöf
e0ef500045
README: mention that configurable keyboard shortcuts are coming 2020-03-06 19:27:14 +01:00
Daniel Eklöf
965bf789da
README: "server" -> server/daemon 2020-03-06 19:26:29 +01:00
Daniel Eklöf
6f290ad7a9
README: remove 'todo' - let's just ignore this for now 2020-03-06 19:26:02 +01:00
Daniel Eklöf
e4436e84df
Merge branch 'csd'
This implements client side decorations and have been tested on GNOME
and Weston.

They also render correctly in KWin, but cannot be used to move or
resize the window. I believe this is a bug in KWin's handling of
sub-surfaces positioned outside the parent surface. Luckily, KWin uses
server side decorations.

This merge also contains a lot of bug fixes related to resizing and
rendering of sub-surfaces in general (i.e. the scrollback search box).
2020-03-06 19:21:57 +01:00
Daniel Eklöf
e6feed5311
wayland: remove debug logs 2020-03-06 19:19:18 +01:00
Daniel Eklöf
4f90cbda59
wayland: log: say 'requesting' instead of 'referring' client/server decorations 2020-03-06 19:18:59 +01:00
Daniel Eklöf
c5a1af4e53
render: never render CSD and/or search box "immediately"
Handle the CSDs and the search box the same way we handle the main
grid; when we need to redraw them, call
render_refresh_{csd,search}(). This sets a flag that is checked after
each FDM iteration. All actual rendering is done here.

This also ties the commits of the Wayland sub-surfaces to the commit
of the main surface.
2020-03-06 19:16:54 +01:00
Daniel Eklöf
e5540a0d2e
render: csd: improved look of minimize/maximize/close buttons
* minimize: a downward triangle
* maximize (window): an upward triangle
* maximize (already maximized): a hollow square
* close: a filled square

The glyphs are now rendered using the default background color instead
of hardcoded to black.
2020-03-06 19:15:09 +01:00
Daniel Eklöf
f434933824
render: CSD: use *default* foreground, not current foreground
Applications may temporarily change the foreground color. Don't use
this when rendering the CSD title bar - use the default
foreground (i.e the default default one, or the one configured by the
user in footrc).
2020-03-06 19:13:10 +01:00
Daniel Eklöf
0dddb5d119
sixel: don't try to dirty an un-allocated row
This may happen e.g. when resizing a grid
2020-03-06 19:11:57 +01:00
Daniel Eklöf
27ef5b472a
config: change default CSD button width from 22 -> 26 2020-03-06 19:11:31 +01:00
Daniel Eklöf
a78cca74a0
render: oops, add missing '}' 2020-03-03 18:29:46 +01:00
Daniel Eklöf
b81b1b6ff7
render: configure a clip region to exclude the grid margins
This ensures content in the last column doesn't flow over into the
margins (where they are typically never erased, unless the window is
resized).
2020-03-03 18:27:59 +01:00
Daniel Eklöf
d76484ae50
wayland: set window geometry to exclude the invisible CSD borders
But it *does* include the title bar. This simplifies the 'adjustment'
needed to be done to the configured window size.

It also fixes a number of issues:

* the compositor will now properly snap the window to screen
  edges (before, there was an empty space between the edge and the
  window - the CSD border).
* This also removes the need for the mutter 'commit' workaround. We
  must be doing something right now.
2020-03-03 18:26:15 +01:00
Daniel Eklöf
044556ef3e
render: csd: render surfaces in reverse order
This ensures the inner most child surfaces are rendered and comitted
before the parent surfaces.
2020-03-03 18:24:51 +01:00
Daniel Eklöf
da91a9de4b
render: csd: assert surfaces exist before trying to use them 2020-03-03 18:24:31 +01:00
Daniel Eklöf
09bb9bef33
render: csd: center 'close' button's cross 2020-03-03 18:24:09 +01:00
Daniel Eklöf
c9659ecd14
render: csd: don't even try to render CSDs when we're in fullscreen mode 2020-03-03 18:23:52 +01:00
Daniel Eklöf
c10f1d5459
render: don't try to render CSDs when the terminal is shutting down 2020-03-03 18:23:37 +01:00
Daniel Eklöf
264acd6463
input: do a full CSD repaint on pointer motion over CSD buttons
This fixes repainting issues on mutter.
2020-03-03 18:22:32 +01:00
Daniel Eklöf
f0892988c0
wayland: don't destroy keyboard/pointer if they haven't been removed
When the seat capabilities change, we used to destroy all pointers and
keyboards, and then re-creating them as necessary.

This caused a crash on mutter - probably because we removed a keyboard
device the compositor had already sent an event for (or was about to).

Now, we only destroy and create devices when it's needed.
2020-03-03 18:20:53 +01:00
Daniel Eklöf
e077290c56
quirks: add shortcut for flipping all CSD surfaces sync/desync state 2020-03-03 18:20:09 +01:00
Daniel Eklöf
c90d70b2bf
config: CSD borders are always invisible
That is, remove all configuration options and always draw them fully
transparent.
2020-03-03 18:18:59 +01:00
Daniel Eklöf
cb6616ef8a
render: csd: maximize: change default color to a lighter green 2020-03-02 21:11:17 +01:00
Daniel Eklöf
63a3d6ce03
render: csd: close: change default color to a lighter blue 2020-03-02 21:10:25 +01:00
Daniel Eklöf
b14c217fb6
render: csd: minimize: change default color to a lighter blue 2020-03-02 21:09:21 +01:00
Daniel Eklöf
20eaa15271
render: initial minimize/maximize/close glyphs
These are really ugly, but is meant to get something up there, that
can be polished afterwards.
2020-03-02 21:06:15 +01:00
Daniel Eklöf
9699c9b8bf
csd: initial implementation of minimize/maximize/close buttons 2020-03-02 20:29:28 +01:00
Daniel Eklöf
c845c90835
README: CSDs have been implemented 2020-03-02 18:50:21 +01:00