X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTTerminalWindow.java;h=e96c50c9921d99603da342e80802c27d0da02e86;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=9a24305a7b9bb252714ed1a2f043985dc4f64afd;hpb=955c55b766a8aebb528d5af5f7582a857c72e2f5;p=nikiroo-utils.git diff --git a/src/jexer/TTerminalWindow.java b/src/jexer/TTerminalWindow.java index 9a24305..e96c50c 100644 --- a/src/jexer/TTerminalWindow.java +++ b/src/jexer/TTerminalWindow.java @@ -234,7 +234,9 @@ public class TTerminalWindow extends TScrollableWindow { */ @Override public void draw() { - setTitle(terminal.getTitle()); + if (terminal != null) { + setTitle(terminal.getTitle()); + } reflowData(); super.draw(); } @@ -247,8 +249,10 @@ public class TTerminalWindow extends TScrollableWindow { @Override public void onResize(final TResizeEvent resize) { if (resize.getType() == TResizeEvent.Type.WIDGET) { - terminal.onResize(new TResizeEvent(TResizeEvent.Type.WIDGET, - getWidth() - 2, getHeight() - 2)); + if (terminal != null) { + terminal.onResize(new TResizeEvent(TResizeEvent.Type.WIDGET, + getWidth() - 2, getHeight() - 2)); + } // Resize the scroll bars reflowData(); @@ -263,11 +267,13 @@ public class TTerminalWindow extends TScrollableWindow { @Override public void reflowData() { // Vertical scrollbar - terminal.reflowData(); - setTopValue(terminal.getTopValue()); - setBottomValue(terminal.getBottomValue()); - setVerticalBigChange(terminal.getVerticalBigChange()); - setVerticalValue(terminal.getVerticalValue()); + if (terminal != null) { + terminal.reflowData(); + setTopValue(terminal.getTopValue()); + setBottomValue(terminal.getBottomValue()); + setVerticalBigChange(terminal.getVerticalBigChange()); + setVerticalValue(terminal.getVerticalValue()); + } } /** @@ -277,7 +283,7 @@ public class TTerminalWindow extends TScrollableWindow { */ @Override public void onKeypress(final TKeypressEvent keypress) { - if (terminal.isReading()) { + if ((terminal != null) && (terminal.isReading())) { terminal.onKeypress(keypress); } else { super.onKeypress(keypress); @@ -314,6 +320,13 @@ public class TTerminalWindow extends TScrollableWindow { } super.onMouseUp(mouse); + + if (mouse.isMouse1() && mouseOnVerticalScroller(mouse)) { + // Clicked on vertical scrollbar + if (terminal != null) { + terminal.setVerticalValue(getVerticalValue()); + } + } } /** @@ -330,6 +343,13 @@ public class TTerminalWindow extends TScrollableWindow { } super.onMouseMotion(mouse); + + if (mouse.isMouse1() && mouseOnVerticalScroller(mouse)) { + // Clicked/dragged on vertical scrollbar + if (terminal != null) { + terminal.setVerticalValue(getVerticalValue()); + } + } } // ------------------------------------------------------------------------ @@ -345,7 +365,10 @@ public class TTerminalWindow extends TScrollableWindow { */ @Override public boolean hasHiddenMouse() { - return terminal.hasHiddenMouse(); + if (terminal != null) { + return terminal.hasHiddenMouse(); + } + return false; } /**