Adds support for 'normal' and 'focus' Style Boxes to Terminal node.
Changes default background color to transparent, with background to be
set by StyleBox.
If background color is not transparent, will draw a background color
rect to cover the entire control over the top of any stylebox. This is
consistent with the behavior of the TextEdit node with regards to theme
colors and styleboxes.
Property can be set to the NodePath of a Terminal node. Doing so will
conveniently set up the neccessary signals between Terminal and PTY for
them to function together.
Ensures we have both the linux and wasm binaries when exporting to web.
The linux binaries are required as the host system uses linux and will
fail to identify the GDExtension node types (PTY, Terminal) leading to
the export not including them.
Also removes the retry action as the initial export command was not
returning an error exit code anyway.
Turns out the 32bit tests were actually using 64bit Godot and testing
the 64bit binaries.
This commit ensures that the tests use the correct builds and adds
32bit linux to the gdextension file.
Ensures that 'wait-for-check' will wait for builds of the same run
regardless of if there have been successful builds for other runs of the
same comit (e.g. when changes are menged in to main causing the branch
to be fast-forward and hence running CI for the same commit).
The wait for action is not reliable, so tests are running before builds
have completed. By adding the explicit needs, tests will run at the
right time, but it will make workflow runs a bit slower.
Implements the copy_all() method which copies all text in the screen
including text in the scrollback buffer.
Includes a fix to an upstream bug in libtsm that resulted in double the
number of '\n' characters being copied for each row.
The godot-cpp and libtsm dependecies are built via the SConstruct file
and therefore can be handled by the SCons cache. By caching the
seperately, changes to the submodules were being overwritten.
Implements the copy_selection() method, which returns the selected text.
Adds a copy_on_selection property. When this property is enabled, the
selected text will automatically be copied to the primary clipboard
(Linux X11/Wayland only).
Adds additional tests for the interface. Creates a new base test class
GodotXtermTest that adds some additional assert methods. Tests
inheriting from this should override the got_described_class() method.
Add instance of the described class named 'subject' will be created and
added to the scene tree before each test.
Changes blink_on_time and blink_off_time to use double rather than
float. When float was used, the default blink_off_time of 0.3 was being
converted to 0.30000001192093 in GDScript.
Adds the option `use_threads` to PTY (enabled by default) which improves
performance when enabled. For example, running `time cat file.txt` where
file is ~4.5MB will take ~0.250s with threads enabled, versus >20s when
disabled.