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 Version 2 and Version 3 of Ticket #654, comment 12


Ignore:
Timestamp:
11/07/14 01:41:01 (7 years ago)
Author:
Antoine Martin
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #654, comment 12

    v2 v3  
    55The second change was when the window started to crash the client.
    66
    7 Disabling of transparency happened in revision r7972 with the following patch:
     7Disabling of transparency happened in revision r7972.
    88
    9 {{{
    10 --- xpra/server/source.py       (revision 7971)
    11 +++ xpra/server/source.py       (revision 7972)
    12 @@ -21,7 +21,6 @@
    13  
    14  from xpra.server import ClientException
    15  from xpra.server.source_stats import GlobalPerformanceStatistics
    16 -from xpra.server.window_source import WindowSource, HAS_ALPHA
    17  from xpra.server.window_video_source import WindowVideoSource
    18  from xpra.server.batch_config import DamageBatchConfig
    19  from xpra.simple_stats import add_list_stats, std_unit
    20 @@ -506,7 +505,6 @@
    21          self.system_tray = c.boolget("system_tray")
    22          self.notify_startup_complete = c.boolget("notify-startup-complete")
    23          self.control_commands = c.strlistget("control_commands")
    24 -        self.supports_transparency = HAS_ALPHA and c.boolget("encoding.transparency")
    25          self.vrefresh = c.intget("vrefresh", -1)
    26          self.double_click_time = c.intget("double_click.time")
    27          self.double_click_distance = c.intpair("double_click.distance")
    28 @@ -1494,15 +1492,7 @@
    29          ws = self.window_sources.get(wid)
    30          if ws is None:
    31              batch_config = self.make_batch_config(wid, window)
    32 -            wclass = WindowSource
    33 -            #don't use video for system trays
    34 -            #or for transparent windows (if the client supports transparency) since video doesn't do alpha (yet?)
    35 -            if not window.is_tray() and (not window.has_alpha() or not self.supports_transparency):
    36 -                wts = get_generic_window_type(window, strip_net=True)
    37 -                if set(("NORMAL", "DIALOG", "DESKTOP")).intersection(wts):
    38 -                    wclass = WindowVideoSource
    39 -
    40 -            ws = wclass(self.idle_add, self.timeout_add, self.source_remove,
    41 +            ws = WindowVideoSource(self.idle_add, self.timeout_add, self.source_remove,
    42                                self.queue_size, self.queue_damage, self.queue_packet, self.compressed_wrapper,
    43                                self.statistics,
    44                                wid, window, batch_config, self.auto_refresh_delay,
    45 }}}
    46 
    47 And the crash started to occur (at least for me) with revision r8017:
    48 
    49 {{{
    50 Index: xpra/server/window_source.py
    51 ===================================================================
    52 --- xpra/server/window_source.py        (revision 8016)
    53 +++ xpra/server/window_source.py        (revision 8017)
    54 @@ -562,6 +562,9 @@
    55                  return self.encoding_is_rgb24
    56              elif "rgb32" in self.common_encodings:
    57                  return self.encoding_is_rgb32
    58 +        return self.get_best_encoding_impl_default()
    59 +
    60 +    def get_best_encoding_impl_default(self):
    61          #stick to what is specified or use rgb for small regions:
    62          return self.get_current_or_rgb
    63  
    64 Index: xpra/server/window_video_source.py
    65 ===================================================================
    66 --- xpra/server/window_video_source.py  (revision 8016)
    67 +++ xpra/server/window_video_source.py  (revision 8017)
    68 @@ -260,11 +260,7 @@
    69          self.non_video_encodings = [x for x in PREFERED_ENCODING_ORDER if x in nv_common]
    70          log("do_set_client_properties(%s) csc_modes=%s, full_csc_modes=%s, video_scaling=%s, video_subregion=%s, uses_swscale=%s, non_video_encodings=%s, scaling_control=%s", prop
    71 erties, self.csc_modes, self.full_csc_modes, self.supports_video_scaling, self.supports_video_subregion, self.uses_swscale, self.non_video_encodings, self.scaling_control)
    72  
    73 -    def get_best_encoding_impl(self):
    74 -        #if we're here, the window does not have any alpha (or the client does not support it)
    75 -        #and it is a normal window (not a POPUP or other)
    76 -        if self.strict or self.encoding not in self.video_encodings:
    77 -            return WindowSource.get_best_encoding_impl(self)
    78 +    def get_best_encoding_impl_default(self):
    79          return self.get_best_encoding_video
    80 }}}
     9And the crash started to occur (at least for me) with revision r8017.