New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
window manipulation issues #899
Comments
Seeing the same type of results - screen 1920x1200 - window 120x60+210+120:
maximized:
looks like e.g. twips is being rounded up to 8 pixels but is incrementing the sizes by 8 - missing a decrement before a divide and multiply - something like |
Works fine for me, except with option
Fixed the negative case (modulo ushort).
That accounts for the border which is outside the screen in this case. |
Hello, going to tag along on this issue. While testing Jexer, mintty's response to "CSI 14 t" is "CSI 4; 336; 544 t". This is on a 80x24 window, resulting in text cell width of 6.8 pixels by 14 pixels. This is on mintty 3.0.2 which shipped with today's cygwin 32-bit installer. When I use "CSI 16 t" mintty reports text cell dimensions of 7x14. Furthermore, when I run mintty against Jexer, open an image, and drag the image window to a new position, the image jumps/stutters on the screen even when Jexer is emitting no new sixel output. If I exit the Jexer demo app, and launch it again, mintty crashes (even before loading any images) with a stackdump file generated. I'm testing mintty by ssh to a Linux VM, 'java -jar /path/to/jexer.jar'. |
CSI 14 t report would include outer padding if I interpret xterm's ctlseqs.txt correctly. About sixel display, I've just fixed a bug that would occur when you output a really large number of sixel images. Maybe that's in fact possible when dragging around an image with such a framework. |
When run with 'mintty -o Padding=200':
Looking into xterm's charproc.c source, I think you are correct: case ewGetWinSizePixels: /* Report the window's size in pixels */
if (AllowWindowOps(xw, ewGetWinSizePixels)) {
ParmType high = (ParmType) Height(screen);
ParmType wide = (ParmType) Width(screen);
TRACE(("...get window size in pixels\n"));
init_reply(ANSI_CSI);
reply.a_pintro = 0;
reply.a_nparam = 3;
reply.a_param[0] = 4;
switch (zero_if_default(1)) {
case 2: /* report the shell-window's size */
xtermGetWinAttrs(screen->display,
WMFrameWindow(xw),
&win_attrs);
high = (ParmType) win_attrs.height;
wide = (ParmType) win_attrs.width;
/* FALLTHRU */
default:
reply.a_param[1] = high;
reply.a_param[2] = wide;
break;
}
reply.a_inters = 0;
reply.a_final = 't';
unparseseq(xw, &reply);
}
break; Other calls to Height(screen) in the source looks like it used as a measure of the entire rectangle except border insets/decorations. So I think if someone adds padding that padding would be included in the total count. However, mintty is currently reporting a number smaller than the text area. For 14x7 character cells, mintty should be reporting at minimum 560x366 pixels vs 544x336. I'm not sure how Padding works, when I set Padding=200 I appear to get about ~10 pixels of padding on all four sides. I will make another issue for the sixel crash. |
If I scale down an 80x24 window to 14x7 cell size (as reported via CSI 16 t), CSI 14 t reports 336x560 for me which looks correct. |
See my previous comment above for my xterm_info output: CSI 14;2 t includes padding for window size; CSI 14 t is text size; font DejaVu Sans Mono 9. |
Released 3.0.3. |
Mintty doesn't handle a few of the \e[ ... t options correctly. I'll use row,col aka y,x for all notations.
My display resolution: 1080, 1920
Easiest issue to test is moving the terminal.
echo -e "\e[3;0;0t"
Instead of moving the terminal to position 0,0 it moves the terminal to position 0,8
When requesting the position of a maximized screen using:
echo -e "\e[13t"
Mintty returns: \e[3;-8;-8t
This should of course return \e[3;0;0t. I assume mintty justifies the screen to the right, this should probably be changed to justifying to the left to address this problem.
There is also an issue with mintty reporting the screen dimensions while maximized:
echo -e "\e[14;2t"
Mintty returns: \e[4;1066;1936t acknowledge the width is larger than 1920.
Mintty reports a correct width of 1920 while in full screen (alt+enter) mode.
Awesome terminal by the way, keep up the great work. :)
The text was updated successfully, but these errors were encountered: