mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-10-01 18:50:16 +03:00
Move eterm emulation off the UI thread and add tabbed frontend
- introduce a per-terminal worker controller with ordered command queues,
coalesced events, immutable snapshots, and deterministic shutdown
- move PTY reads, parsing, history, selection, resize, reflow, and process
status handling onto the terminal worker
- publish terminal snapshots at the host refresh rate while preserving
immediate idle, resize, interaction, and final-exit presentation
- migrate TerminalDisplay, UITerminal, eterm, ecode, debugger, and ACP
integrations away from direct mutable emulator access
- synchronize scrollbar updates with acknowledged scroll commands
- preserve title, clipboard, bell, prompt, color, restart, keep-alive,
selection, input, and buffered process-exit behavior
- add bounded synchronous selection requests and idempotent worker shutdown
- make POSIX process launch safe after fork in multithreaded hosts and mark
original PTY descriptors close-on-exec
- add an UIApplication-based tabbed eterm with legacy CLI parity, tab
lifecycle handling, close warnings, and default navigation shortcuts
- add premake targets and deterministic controller, snapshot, lifecycle,
concurrency, presentation, and exit-drain tests
This commit is contained in:
@@ -149,8 +149,7 @@ void inputCallback( InputEvent* event ) {
|
||||
}
|
||||
|
||||
bool onCloseRequestCallback( EE::Window::Window* ) {
|
||||
if ( warnBeforeClose &&
|
||||
Sys::processHasChildren( terminal->getTerminal()->getProcess()->pid() ) ) {
|
||||
if ( warnBeforeClose && Sys::processHasChildren( terminal->getProcessId() ) ) {
|
||||
displayingWarnBeforeClose = true;
|
||||
needsRedraw = true;
|
||||
return false;
|
||||
@@ -366,7 +365,7 @@ EE_MAIN_FUNC int main( int argc, char* argv[] ) {
|
||||
terminal->setFontHinting( fontHinting.Get() );
|
||||
terminal->setFontAntialiasing( fontAntialiasing.Get() );
|
||||
|
||||
terminal->getTerminal()->setAllowMemoryTrimnming( true );
|
||||
terminal->setAllowMemoryTrimming( true );
|
||||
terminal->setCursorMode( cursorStyle.Get() );
|
||||
terminal->pushEventCallback( [&closeOnExit]( const TerminalDisplay::Event& event ) {
|
||||
if ( event.type == TerminalDisplay::EventType::TITLE ) {
|
||||
|
||||
Reference in New Issue
Block a user