Fix --noutf, fix onAction being called to many times, lot of small fixes
[jvcard.git] / src / be / nikiroo / jvcard / tui / TuiLauncher.java
index efaa68939421e8f24e89a4d5aa02672a34fdf310..7bee3e7bc87eb89163de7aebd677990f2641e867 100644 (file)
@@ -2,6 +2,7 @@ package be.nikiroo.jvcard.tui;
 
 import java.io.IOException;
 
+import com.googlecode.lanterna.TerminalSize;
 import com.googlecode.lanterna.TextColor;
 import com.googlecode.lanterna.gui2.DefaultWindowManager;
 import com.googlecode.lanterna.gui2.EmptySpace;
@@ -10,11 +11,12 @@ import com.googlecode.lanterna.gui2.Window;
 import com.googlecode.lanterna.screen.Screen;
 import com.googlecode.lanterna.screen.TerminalScreen;
 import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
+import com.googlecode.lanterna.terminal.ResizeListener;
 import com.googlecode.lanterna.terminal.Terminal;
 
 /*
  * 
- * Change in Lanterna3 (issue and fix reported to GitHub):
+ * Change in Lanterna 3.0.0-beta2 (issue and fix reported to GitHub):
  * 
  * java.lang.StringIndexOutOfBoundsException: String index out of range: 83
  * at java.lang.String.charAt(String.java:686)
@@ -24,8 +26,7 @@ import com.googlecode.lanterna.terminal.Terminal;
  */
 
 public class TuiLauncher {
-       public static void start(Boolean textMode, Window win)
-                       throws IOException {
+       public static void start(Boolean textMode, Window win) throws IOException {
                Terminal terminal = null;
 
                DefaultTerminalFactory factory = new DefaultTerminalFactory();
@@ -38,6 +39,17 @@ public class TuiLauncher {
                        terminal = factory.createTerminalEmulator();
                }
 
+               if (win instanceof MainWindow) {
+                       MainWindow mwin = (MainWindow) win;
+                       mwin.refresh(terminal.getTerminalSize());
+                       terminal.addResizeListener(new ResizeListener() {
+                               @Override
+                               public void onResized(Terminal terminal, TerminalSize newSize) {
+                                       mwin.refresh(newSize);
+                               }
+                       });
+               }
+
                Screen screen = new TerminalScreen(terminal);
                screen.startScreen();