X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fbackend%2FGenericBackend.java;h=8d8fb3752243161eed12545ce3ebba9c5cfd4ba2;hb=abb84744979f74e96ec604357895fc3130aec913;hp=bb9ae9f95af83a52c618541f121df6cbb0faecc5;hpb=d36057dfab8def933a64be042b039d76708ac5ba;p=fanfix.git diff --git a/src/jexer/backend/GenericBackend.java b/src/jexer/backend/GenericBackend.java index bb9ae9f..8d8fb37 100644 --- a/src/jexer/backend/GenericBackend.java +++ b/src/jexer/backend/GenericBackend.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2017 Kevin Lamonte + * Copyright (C) 2019 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -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)); + } + } + } } } @@ -137,4 +151,11 @@ public abstract class GenericBackend implements Backend { terminal.setListener(listener); } + /** + * Reload backend options from System properties. + */ + public void reloadOptions() { + terminal.reloadOptions(); + } + }