Skip to content
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

When connecting with "unusual" desktop-scaling options, xterms are not respecting horizontal resizings #1098

Closed
totaam opened this issue Jan 25, 2016 · 8 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Jan 25, 2016

Issue migrated from trac ticket # 1098

component: server | priority: minor | resolution: fixed

2016-01-25 20:01:39: afarr created the issue


Running a 0.17.0 r11729 fedora 23 server, with either a 0.17.0 r11738 win32 client or a 0.17.0 r11715 osx client... when I use unusual desktop-scaling values (for instance --desktop-scaling=1.34,1.57) then any time I resize the x-axis of an xterm, the xterm "automatically un-resizes" back to its initial size. (Resizing on y-axis behaves as expected, however).

Re-testing with default desktop-scaling, I can't reproduce.

Testing with desktop-scaling=1.37 (with the same for x and y axis) it is also easy to reproduce.

Testing with desktop-scaling=1.3 it is harder to reproduce, but very much reproducible (oddly, by making the xterm smaller).

Looks like this is probably related to #976.

I managed to capture a relatively short clip of server-side logs with -d metadata, at a point where I'm resizing to bigger, and then the server promptly begins resizing smaller-ward again.

2016-01-25 10:37:35,272 get(tray, False) returning default value=False
2016-01-25 10:37:35,272 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,272 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:35,272 set_window_state: changes=[]
2016-01-25 10:37:35,272 window state changes: []
2016-01-25 10:37:35,273 updateprop(geometry, (2132, 38, 655, 316)) previous value=(2132, 38, 649, 316)
2016-01-25 10:37:35,273 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,273 get(tray, False) returning default value=False
2016-01-25 10:37:35,274 window client properties updates: {'screen': 0}
2016-01-25 10:37:35,276 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,276 get(tray, False) returning default value=False
2016-01-25 10:37:35,276 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,276 get(tray, False) returning default value=False
2016-01-25 10:37:35,296 get(tray, False) returning default value=False
2016-01-25 10:37:35,296 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,296 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:35,296 set_window_state: changes=[]
2016-01-25 10:37:35,296 window state changes: []
2016-01-25 10:37:35,296 updateprop(geometry, (2132, 38, 667, 316)) previous value=(2132, 38, 655, 316)
2016-01-25 10:37:35,297 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,297 get(tray, False) returning default value=False
2016-01-25 10:37:35,298 window client properties updates: {'screen': 0}
2016-01-25 10:37:35,299 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,300 get(tray, False) returning default value=False
2016-01-25 10:37:35,331 get(tray, False) returning default value=False
2016-01-25 10:37:35,331 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,331 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:35,331 set_window_state: changes=[]
2016-01-25 10:37:35,331 window state changes: []
2016-01-25 10:37:35,332 updateprop(geometry, (2132, 38, 673, 316)) previous value=(2132, 38, 667, 316)
2016-01-25 10:37:35,332 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,332 get(tray, False) returning default value=False
2016-01-25 10:37:35,333 window client properties updates: {'screen': 0}
2016-01-25 10:37:35,335 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,335 get(tray, False) returning default value=False
2016-01-25 10:37:35,686 get(tray, False) returning default value=False
2016-01-25 10:37:35,687 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,687 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:35,687 set_window_state: changes=[]
2016-01-25 10:37:35,687 window state changes: []
2016-01-25 10:37:35,688 updateprop(geometry, (2132, 38, 667, 316)) previous value=(2132, 38, 673, 316)
2016-01-25 10:37:35,688 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,688 get(tray, False) returning default value=False
2016-01-25 10:37:35,690 window client properties updates: {'screen': 0}
2016-01-25 10:37:35,693 get(override-redirect, False) returning default value=False
2016-01-25 10:37:35,693 get(tray, False) returning default value=False
2016-01-25 10:37:36,045 get(tray, False) returning default value=False
2016-01-25 10:37:36,045 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,046 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:36,046 set_window_state: changes=[]
2016-01-25 10:37:36,046 window state changes: []
2016-01-25 10:37:36,047 updateprop(geometry, (2132, 38, 661, 316)) previous value=(2132, 38, 667, 316)
2016-01-25 10:37:36,048 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,048 get(tray, False) returning default value=False
2016-01-25 10:37:36,053 window client properties updates: {'screen': 0}
2016-01-25 10:37:36,056 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,056 get(tray, False) returning default value=False
2016-01-25 10:37:36,329 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,330 get(tray, False) returning default value=False
2016-01-25 10:37:36,404 get(tray, False) returning default value=False
2016-01-25 10:37:36,404 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,405 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:36,405 set_window_state: changes=[]
2016-01-25 10:37:36,405 window state changes: []
2016-01-25 10:37:36,406 updateprop(geometry, (2132, 38, 655, 316)) previous value=(2132, 38, 661, 316)
2016-01-25 10:37:36,406 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,407 get(tray, False) returning default value=False
2016-01-25 10:37:36,409 window client properties updates: {'screen': 0}
2016-01-25 10:37:36,412 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,413 get(tray, False) returning default value=False
2016-01-25 10:37:36,761 get(tray, False) returning default value=False
2016-01-25 10:37:36,761 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,761 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:36,761 set_window_state: changes=[]
2016-01-25 10:37:36,761 window state changes: []
2016-01-25 10:37:36,761 updateprop(geometry, (2132, 38, 649, 316)) previous value=(2132, 38, 655, 316)
2016-01-25 10:37:36,762 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,762 get(tray, False) returning default value=False
2016-01-25 10:37:36,764 window client properties updates: {'screen': 0}
2016-01-25 10:37:36,765 get(override-redirect, False) returning default value=False
2016-01-25 10:37:36,765 get(tray, False) returning default value=False
2016-01-25 10:37:37,119 get(tray, False) returning default value=False
2016-01-25 10:37:37,119 get(override-redirect, False) returning default value=False
2016-01-25 10:37:37,119 set_window_state(2, WindowModel(0x800022), {})
2016-01-25 10:37:37,119 set_window_state: changes=[]
2016-01-25 10:37:37,120 window state changes: []
2016-01-25 10:37:37,120 updateprop(geometry, (2132, 38, 643, 316)) previous value=(2132, 38, 649, 316)
2016-01-25 10:37:37,120 get(override-redirect, False) returning default value=False
2016-01-25 10:37:37,120 get(tray, False) returning default value=False
2016-01-25 10:37:37,122 window client properties updates: {'screen': 0}
2016-01-25 10:37:37,123 get(override-redirect, False) returning default value=False
2016-01-25 10:37:37,123 get(tray, False) returning default value=False
@totaam
Copy link
Collaborator Author

totaam commented Apr 10, 2016

2016-04-10 07:35:27: antoine changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Apr 10, 2016

2016-04-10 07:35:27: antoine commented


There are also rounding issues, mostly visible when using xterm.
This could be solved by using per-window scaling values, so that the window is scaled to the exact client side window size.

@totaam
Copy link
Collaborator Author

totaam commented Oct 21, 2016

2016-10-21 12:47:31: antoine changed status from assigned to new

@totaam
Copy link
Collaborator Author

totaam commented Oct 21, 2016

2016-10-21 12:47:31: antoine changed owner from antoine to afarr

@totaam
Copy link
Collaborator Author

totaam commented Oct 21, 2016

2016-10-21 12:47:31: antoine commented


Related to #1327. Should be fixed in r14248: the window will not honour the size increments and it will be padded instead.

A better solution would be to implement our own window size tracking function so that we can implement our own scaling-aware logic.
This will have to do for now.

@totaam
Copy link
Collaborator Author

totaam commented Dec 26, 2016

2016-12-26 09:17:35: antoine changed status from new to closed

@totaam
Copy link
Collaborator Author

totaam commented Dec 26, 2016

2016-12-26 09:17:35: antoine set resolution to fixed

@totaam
Copy link
Collaborator Author

totaam commented Dec 26, 2016

2016-12-26 09:17:35: antoine commented


Not heard back, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant