layout: include Expanded sizes in Stack size calculation

Signed-off-by: Elias Naur <>
app/internal/log: add logger for Windows DebugView

Signed-off-by: mural <>
text: add io.Reader Layout method to Shaper

use them for Editor, which is no longer required to construct a string
for laying out its content.

Signed-off-by: Elias Naur <>
text: remove String, Layout and add Glyph

In preparation for using Shaper with an io.Reader, rework the API to not refer
to strings. In particular, introduce Glyph for holding the rune in addition to
the advance. For fast traversing of the underlying text, add Len to Line with
the UTF8 length.

Layout is a useless wrapper around []Line; remove it while we're

Signed-off-by: Elias Naur <>
text: make Shaper an interface

And rename out the caching implementation to FontRegistry.

Signed-off-by: Elias Naur <>
text: correct Shaper comment about the default face

Signed-off-by: Elias Naur <>
cmd/gogio: don't hang on some e2e test errors

For example, if the test app fails to start on wayland, we'd block
~forever (ten minutes) waiting for it to render its first frame.

We don't have a good solution right now. But at least we can use a
relatively short timeout, to help out the human who rightfully expects
a result within ten seconds.

While at it, remove a sway "get_seats" command, which was a leftover
from my debugging of what input devices are available when running

Signed-off-by: Daniel Martí <>
example/go.*: update gio version

Signed-off-by: Elias Naur <>
app/internal/egl: try EGL_DEFAULT_DISPLAY is eglGetDisplay fails

Fixes #77

Signed-off-by: Elias Naur <>
Revert "app/internal/egl: accept zero EGLDisplay values as valid"

This reverts commit 66138e78904aff7e9aa2d1e01f6d52e4985eb0ca.

Reason: According to #77, it didn't work and the proposed fix
(retry when EGL_NO_DISPLAY is returned) is correct.
op/paint: correct image loading

Corrected the use of draw.Draw in paint.NewImageOp as the old use only works for images starting at the origin

Signed-off-by: Axel Paulander <>
example/go.*: update gio version

Signed-off-by: Elias Naur <>
app/internal/egl: accept zero EGLDisplay values as valid

Issue #77 seems to be caused by eglGetDisplay returning a zero
EGLDisplay, yet eglGetError returns EGL_SUCCESS. Since EGLDisplay
is not necessary a pointer type, the zero value may be valid.

Updates #77

Signed-off-by: Elias Naur <>
example/go.*: update Gio version

Updates #40

Signed-off-by: Elias Naur <>
app/internal/window: add errno to wl_display_connect errors

Updates #40

Signed-off-by: Elias Naur <>
3dd7c812 — Greg Pomerantz a month ago
font/opentype: add Collection type and methods

The Collection type wraps sfnt.Collection and allows lazy-loading
of fonts from SFNT collections.

Signed-off-by: Greg Pomerantz <>
COPYING: extract licensing information into COPYING

This is hopefully clear enough for license detectors and lawyers.

Signed-off-by: Elias Naur <>
font/opentype: fix typo

Signed-off-by: Elias Naur <>
widget: add some rudimentary exported editing methods


Move the Editor.command method up above all the functions it calls.

Signed-off-by: Larry Clapp <>
8a4d0007 — Greg Pomerantz a month ago
app: clarify documentation of app.Main()

Signed-off-by: Greg Pomerantz <>