also check for text cell size
authorKevin Lamonte <kevin.lamonte@gmail.com>
Wed, 28 Aug 2019 01:53:40 +0000 (20:53 -0500)
committerKevin Lamonte <kevin.lamonte@gmail.com>
Wed, 28 Aug 2019 01:53:40 +0000 (20:53 -0500)
README.md
src/jexer/backend/ECMA48Terminal.java

index 7bf9afdf98c1280efd90da1dd4332e7bf61ae597..4a06a55f60486e6e9ea077ef13075d5818e897cc 100644 (file)
--- a/README.md
+++ b/README.md
@@ -145,6 +145,7 @@ The table below lists terminals tested against Jexer's Xterm backend:
 | rxvt-unicode   | X11                | yes         | yes          | no(2)  |
 | xfce4-terminal | X11                | yes         | yes          | no     |
 | kitty(3)       | X11                | yes         | yes          | no     |
+| mintty         | Windows            | yes         | yes          | no     |
 | aminal(3)      | X11                | yes         | no           | no     |
 | konsole        | X11                | yes         | no           | no     |
 | yakuake        | X11                | yes         | no           | no     |
index 3fc6c2092cb38c5aaa2b17b3a61f1e3461a68e29..9884835591adba9cfa57530cca3759ee8fb6404e 100644 (file)
@@ -2760,6 +2760,27 @@ public class ECMA48Terminal extends LogicalScreen
                             heightPixels = 400;
                         }
                     }
+                    if ((params.size() > 2) && (params.get(0).equals("6"))) {
+                        if (debugToStderr) {
+                            System.err.printf("windowOp text cell pixels: " +
+                                "height %s width %s\n",
+                                params.get(1), params.get(2));
+                        }
+                        try {
+                            widthPixels = width * Integer.parseInt(params.get(2));
+                            heightPixels = height * Integer.parseInt(params.get(1));
+                        } catch (NumberFormatException e) {
+                            if (debugToStderr) {
+                                e.printStackTrace();
+                            }
+                        }
+                        if (widthPixels <= 0) {
+                            widthPixels = 640;
+                        }
+                        if (heightPixels <= 0) {
+                            heightPixels = 400;
+                        }
+                    }
                     resetParser();
                     return;
                 default:
@@ -2794,7 +2815,9 @@ public class ECMA48Terminal extends LogicalScreen
      * @return the string to emit to xterm
      */
     private String xtermReportWindowPixelDimensions() {
-        return "\033[14t";
+        // We will ask for both window and text cell dimensions, and
+        // hopefully one of them will work.
+        return "\033[14t\033[16t";
     }
 
     /**