Add 'src/jexer/' from commit 'cf01c92f5809a0732409e280fb0f32f27393618d'
[nikiroo-utils.git] / src / jexer / TWindow.java
index 222efbcde7484867b2266e399a3bd5f56076b1e8..58195c915f1ae885485891f159539f53ece7b474 100644 (file)
@@ -608,6 +608,15 @@ public class TWindow extends TWidget {
     @Override
     public void onKeypress(final TKeypressEvent keypress) {
 
+        if (inWindowMove || inWindowResize) {
+            // ESC or ENTER - Exit size/move
+            if (keypress.equals(kbEsc) || keypress.equals(kbEnter)) {
+                inWindowMove = false;
+                inWindowResize = false;
+                return;
+            }
+        }
+
         if (inKeyboardResize) {
 
             // ESC or ENTER - Exit size/move
@@ -863,8 +872,15 @@ public class TWindow extends TWidget {
                 if ((child instanceof TSplitPane)
                     || (child instanceof TPanel)
                 ) {
-                    child.onResize(new TResizeEvent(TResizeEvent.Type.WIDGET,
+                    if (this instanceof TDesktop) {
+                        child.onResize(new TResizeEvent(
+                            TResizeEvent.Type.WIDGET,
+                            resize.getWidth(), resize.getHeight()));
+                    } else {
+                        child.onResize(new TResizeEvent(
+                            TResizeEvent.Type.WIDGET,
                             resize.getWidth() - 2, resize.getHeight() - 2));
+                    }
                 }
                 return;
             }
@@ -1424,4 +1440,16 @@ public class TWindow extends TWidget {
         this.hideMouse = hideMouse;
     }
 
+    /**
+     * Generate a human-readable string for this window.
+     *
+     * @return a human-readable string
+     */
+    @Override
+    public String toString() {
+        return String.format("%s(%8x) \'%s\' position (%d, %d) geometry %dx%d" +
+            " hidden %s modal %s", getClass().getName(), hashCode(), title,
+            getX(), getY(), getWidth(), getHeight(), hidden, isModal());
+    }
+
 }