X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fbackend%2FGenericBackend.java;h=8d8fb3752243161eed12545ce3ebba9c5cfd4ba2;hb=abb84744979f74e96ec604357895fc3130aec913;hp=fa72956c8e27c6c247005816ff8f3489b505d070;hpb=d4bcb88c528504f04821e5c7b4c5e23b05843cb4;p=fanfix.git diff --git a/src/jexer/backend/GenericBackend.java b/src/jexer/backend/GenericBackend.java index fa72956..8d8fb37 100644 --- a/src/jexer/backend/GenericBackend.java +++ b/src/jexer/backend/GenericBackend.java @@ -31,6 +31,8 @@ package jexer.backend; import java.util.List; import jexer.event.TInputEvent; +import jexer.event.TCommandEvent; +import static jexer.TCommand.*; /** * This abstract class provides a screen, keyboard, and mouse to @@ -108,6 +110,18 @@ public abstract class GenericBackend implements Backend { public void getEvents(final List queue) { if (terminal.hasEvents()) { terminal.getEvents(queue); + + // This default backend assumes a single user, and if that user + // becomes disconnected we should terminate the application. + if (queue.size() > 0) { + TInputEvent event = queue.get(queue.size() - 1); + if (event instanceof TCommandEvent) { + TCommandEvent command = (TCommandEvent) event; + if (command.equals(cmBackendDisconnect)) { + queue.add(new TCommandEvent(cmAbort)); + } + } + } } }