Get snapping to character grid working again, avoid crashes when attempting
to resize below 1x1 character cell, only redraw when size actually changes.
Also, rename window_get_child_rectangle() to window_get_child_allocation().
Fix several bugs in the previous patches. Fix inverse inverse video
with bold attribute, incorrect duplication of attributes when scrolling
up, underline aliasing, bottom scroll margin adjustment when resizing,
and unnecessary sleep when sending terminal reports. Change TERM
environment variable to xterm-256color to better reflect terminal
capabilities (although it still doesn't emulate all of xterm).
Signed-off-by: Callum Lowcay <callum@callumscode.com>
Implements support for function, cursor, and editing keys, with
modifiers. Partially implements application keypad mode. Expands
control key support.
Signed-off-by: Callum Lowcay <callum@callumscode.com>
Includes the 3 vt100 character sets. Some of the graphic symbols don't
display because they are not included in the default font. Apparantly
the cairo toy font API doesn't do font substitution.
Signed-off-by: Callum Lowcay <callum@callumscode.com>
Upgrade and refactor terminal_data to properly handle non-csi escape
codes, control characters in escape codes, and invalid escape sequences.
Also fix a buffer overflow in the escape sequence buffer.
Signed-off-by: Callum Lowcay <callum@callumscode.com>
Use TIOCSWINSZ ioctl to set window size on terminal resize.
This causes applications to be notified of the resize event.
Signed-off-by: Callum Lowcay <callum@callumscode.com>
Includes bold, underline, inverse, and blink attributes. Blink is
rendered bold as in xterm. Supports xterm's 256 color palette.
Signed-off-by: Callum Lowcay <callum@callumscode.com>
The new map_toplevel() request no longer specifies a position and takes
the size from the attached buffer. The attach request now takes a
position relative to the top-left corner of the old buffer to let
clients specify the relative position of the new buffer.
This is an example of how to animate window resizing. The size is
animated by a simple physics model that allows the user to cancel the
animation halfway and still look good.
or if that check is removed - crash (unsurprisingly).
This patch relieves this assumption, and allow some clients (terminal,
image, flower) to run in a non-DRM environment
The dnd client now sends a mime type of
application/x-wayland-dnd-flower instead of text/plain. The dnd
message is just the position and random seed that lets the drop source
add the flower to its grid.
These two functions are just wrappers around display_create_*_surface
but weren't forwarding along the result of those calls as is implied by
their return value type.
This fixes a compile-time warning.
Signed-off-by: Bryce Harrington <bryce@canonical.com>
In theory, it was possible for an undefined 'surface' to be passed to
window_set_surface(). Instead, explicitly pass NULL.
Signed-off-by: Bryce Harrington <bryce@canonical.com>