xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.


Changes between Initial Version and Version 1 of Ticket #349


Ignore:
Timestamp:
06/04/13 10:45:40 (8 years ago)
Author:
Antoine Martin
Comment:

The patch is probably not correct. There may be more than one screen, and we want to send the full display size, not just the screen that has changed.


Also, from the logs, I see that we correctly set the screen size to 1650x1050 on connection (circa 2013-06-03 21:25:16,***) and then we are notified that the screen resolution has changed (at around 2013-06-03 21:25:28,***) and we correctly update the vfb size to 640x480. But I see no trace in this log sample of the change back to 1650x1050, having the /trimmed/ client debug log would help. I would expect to see "sending updated screen size to server: WxH", twice: one for each resolution change... Unless the log is not from the test case described in the ticket?

If, for whatever reason, the root window size is not updated by the time we get our size changed event, this would help:

--- src/xpra/client/gtk2/client.py	(revision 3560)
+++ src/xpra/client/gtk2/client.py	(working copy)
@@ -176,11 +176,13 @@
                 i += 1
 
     def _screen_size_changed(self, *args):
-        root_w, root_h = self.get_root_size()
-        log.debug("sending updated screen size to server: %sx%s", root_w, root_h)
-        self.send("desktop_size", root_w, root_h, self.get_screen_sizes())
-        #update the max packet size (may have gone up):
-        self.set_max_packet_size()
+        def update_server():
+            root_w, root_h = self.get_root_size()
+            log.debug("sending updated screen size to server: %sx%s", root_w, root_h)
+            self.send("desktop_size", root_w, root_h, self.get_screen_sizes())
+            #update the max packet size (may have gone up):
+            self.set_max_packet_size()
+        self.idle_add(update_server)
 
     def get_screen_sizes(self):
         display = gdk.display_get_default()

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #349

    • Property Owner changed from Antoine Martin to Antoine Martin
    • Property Status changed from new to assigned
  • Ticket #349 – Description

    initial v1  
    11Here is another bug from Timo (with patch) reported as is from
    22
    3 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710991
     3[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710991]
    44
    55Steps to reproduce:
    6 
    7 1) xpra attach ssh:server.example.com:7
    8 
    9 2) change resolution of the client machine to 640x480 temporarily
     6* {{{xpra attach ssh:server.example.com:7}}}
     7* change resolution of the client machine to 640x480 temporarily
    108   (e.g. in gnome System->Preferences->Monitors)
    11 3) change the resolution back to normal
     9* change the resolution back to normal
    1210
    1311Expected results:
    14 3) all parts of xpra windows can be accessed with mouse
     12all parts of xpra windows can be accessed with mouse
    1513
    1614Actual results:
    17 3) only a 640x480 pixel area in the upper left corner of each window
    18 is accessible.
     15only a 640x480 pixel area in the upper left corner of each window is accessible.
    1916
    2017More info:
    21 1) The only workaround I have found so far is to disconnect and
    22    reattach xpra.
     18The only workaround I have found so far is to disconnect and reattach xpra.
    2319
    24 2) The xpra server log shows how xpra continues to think that the
    25    resolution is 640x480 even after it has been set back to normal:
     20The xpra server log shows how xpra continues to think that the resolution is 640x480 even after it has been set back to normal:
    2621{{{
    27222013-06-03 21:25:16,371 New connection received: SocketConnection(/home/lindi/.xpra/sauna-7)
     
    3833}}}
    3934
    40 3) It seems that when I change the resolution from R1 to R2 xpra sets
    41    the screen size to R1 and not R2! Here is a patch that fixes the
    42    problem for me:
     35* It seems that when I change the resolution from R1 to R2 xpra sets the screen size to R1 and not R2! Here is a patch that fixes the problem for me:
    4336{{{
    4437--- /usr/share/pyshared/xpra/client.py    2013-05-27 07:21:53.000000000 +0300