xpra icon
Bug tracker and wiki

Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#1193 closed defect (fixed)

DPI is doubled when specified on the client command line

Reported by: nathan-renniewaldock Owned by: nathan-renniewaldock
Priority: major Milestone: 1.0
Component: client Version: trunk
Keywords: Cc:

Description (last modified by Antoine Martin)

Since v0.16.0, DPI is being doubled for Windows clients.

v0.15.10-r11424:

$ xpra info | grep dpi
dpi.default=0
dpi.value=96
dpi.x=0
dpi.y=0

v0.17.0-r12474:

$ xpra info | grep dpi
dpi.default=0
dpi.value=192
dpi.x=0
dpi.y=0

Possibly introduced in r10953?

Change History (7)

comment:1 Changed 4 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to nathan-renniewaldock

Are you sure that the DPI is wrong and that you aren't just seeing desktop scaling in action? (#976)
I am seeing correct values, that adjust as I scale up or down (either via tray or ctrl shift +, ctrl shift -)
Please include distro info, dummy driver / vfb info, client and server screen settings and resolution, etc.

comment:2 Changed 4 years ago by nathan-renniewaldock

It's reporting a dpi of 192 and everything is bigger than it should be, scaling is set to none.
Server is Ubuntu 16.04, xpra 0.17.0, dummy driver is 0.3.7 with the patches from repo.
Clients, Windows 10, tested xpra 0.16.0 and 0.17.0 (3 different systems, resolutions 1280x800, 1366x768, 14490x900), scaling is wrong with them. Xpra 0.15.10 displays as expected with no changes to server.
If I remove dpi from my client config (then it uses auto), it's correct, dpi = 48 is also correct, reports 96 and UI is the correct size. My xpra.conf had dpi = 96 as that used to be the default.
In ui_client_base.py, the provided dpi (either command line or xpra.conf) is being doubled.

#use command line value supplied, but scale it:
            xdpi = self.cx(self.cy(2.0*self.dpi))
            ydpi = xdpi

Logs:
Client:

2016-05-02 18:22:39,680  screen 0: ('1\\WinSta0\\Default', 1280, 800, 338, 211, [('\\\\.\\DISPLAY1', 0, 0, 1280, 800, 287, 180, 0, 0, 1280, 770)], 0, 0, 1280, 770)
2016-05-02 18:22:39,680  desktop size is 1280x800 with 1 screen:
2016-05-02 18:22:39,680   Default (338x211 mm - DPI: 96x96) workarea: 1280x770
2016-05-02 18:22:39,680     DISPLAY1 (287x180 mm - DPI: 113x112)
2016-05-02 18:22:39,680 dpi: 192, xdpi=192, ydpi=192

Server:

2016-05-02 18:22:46,777  client root window size is 1280x800 with 1 display:
2016-05-02 18:22:46,777   Default (338x211 mm - DPI: 96x96) workarea: 1280x770
2016-05-02 18:22:46,777     DISPLAY1 (287x180 mm - DPI: 113x112)
2016-05-02 18:22:46,777 maximum client resolution is 1280x800 (current server resolution is 1280x800)
2016-05-02 18:22:46,777 set_screen_size(1280, 800) xdpi=192, ydpi=192
2016-05-02 18:22:46,777 set_dpi(192, 192)

comment:3 Changed 4 years ago by Antoine Martin

Hah, I was missing the fact that you're using the "--dpi=" command line option.
You're totally right, the doubling is a mistake (in other places we average xdpy and ydpi, I must have cut&pasted it wrong).

Fixed in r12516. Will be in the next stable update.
Feel free to close.

comment:4 Changed 4 years ago by Antoine Martin

Summary: DPI is doubled for Windows clientsDPI is doubled when specified on the client command line

(editing ticket title - I don't think this is specific to MS Windows clients at all, this same code is used by all platforms)

comment:5 Changed 4 years ago by nathan-renniewaldock

Resolution: fixed
Status: newclosed

comment:6 Changed 4 years ago by Antoine Martin

Found another place that needed fixing: r12668.

comment:7 Changed 4 years ago by Antoine Martin

Milestone: 0.181.0

Milestone renamed

Note: See TracTickets for help on using tickets.