Ticket #460 (closed usability: fixed)

Opened 2 years ago

Last modified 2 years ago

XQuartz 2.6.0 multi-head screen size updating issue.

Reported by: rjvbertin@… Owned by: jeremyhu@…
Priority: Expected Milestone: 2.6.1
Component: xserver Version: 2.6.0 (xserver-1.9.3)
Keywords: multi-head, configuration updating Cc:

Description

All X11 servers I've used until now under OS X updated their display info when I changed the external display on my laptop (Powerbook and now MBP), without action on my part. XQuartz 2.6.0 no longer does this correctly, which is quite annoying. The information returned by xwininfo -root is correct, as is the size information available via Xinerama. However, xdpyinfo will report the size information that was valid for the screen configuration that existed when the X11 server was started. It appears that it is this information that is also used by XParseGeometry, judging how position co-ordinates relative to the right and/or bottom edges are not interpreted relative to the actual screen configuration.

My procedure for changing screens:

1- use FUS to go to the login screen
2- disconnect screen
(usually the computer goes through a sleep/wake cycle at this point)
3- reconnect a different screen
4- log in.

This has the big advantage that the OS X window manager doesn't collect all my windows on the principal screen (laptop's own screen in step 2, and then the external in step 3).

Change History

comment:1 Changed 2 years ago by jeremyhu@…

  • Status changed from new to assigned
  • Priority changed from Not Set to Expected
  • Version set to 2.6.0 (xserver-1.9)
  • Milestone set to 2.6.1

comment:2 Changed 2 years ago by jeremyhu@…

Verified with 2.6.0:

~ $ xwininfo -root | egrep '(Width|Height|geometry)'                           
  Width: 1440
  Height: 878
  -geometry 1440x878+0+0
~ $ xdpyinfo | grep dimensions                                                 
  dimensions:    1440x878 pixels (381x232 millimeters)

<plug in external monitor>

~ $ xwininfo -root | egrep '(Width|Height|geometry)'                           
  Width: 3360
  Height: 1200
  -geometry 3360x1200+0+0
~ $ xdpyinfo | grep dimensions                                                 
  dimensions:    1440x878 pixels (381x232 millimeters)

So the root window is being resized, but xdpyinfo is showing the old size. xrandr is printing out something odd as well:

~ $ xrandr                                                                     
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 3360 x 1200, current 1440 x 878, maximum 3360 x 1222
default connected 3360x1200+0+0 0mm x 0mm
   3360x1200       1.0* 
   3360x1222       2.0  

so for some reason, the screen size isn't getting set right.

Doing the following will fix the issue (by changing to another RandR config and back):

$ xrandr -s 1 && xrandr -s 0

comment:3 Changed 2 years ago by jeremyhu@…

  • Status changed from assigned to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.