xpra icon
Bug tracker and wiki

Ticket #826: debug-window-title-v2.patch

File debug-window-title-v2.patch, 5.0 KB (added by Antoine Martin, 5 years ago)

patch for both branches

  • xpra/client/client_window_base.py

     
    127127        log("set_metadata(%s)", metadata)
    128128        if "title" in metadata:
    129129            try:
     130                log.info("title update, title string=%s", self._client.title)
    130131                title = u(self._client.title).replace("\0", "")
     132                log.info("cleaned up title string=%s", title)
     133                import binascii
    131134                if title.find("@")>=0:
    132135                    #perform metadata variable substitutions:
    133136                    default_values = {"title" : u("<untitled window>"),
     
    134137                                      "client-machine" : u("<unknown machine>")}
    135138                    def metadata_replace(match):
    136139                        atvar = match.group(0)          #ie: '@title@'
     140                        log.info("metadata_replace atvar=%s", atvar)
    137141                        var = atvar[1:len(atvar)-1]     #ie: 'title'
     142                        log.info("metadata_replace var=%s", var)
    138143                        default_value = default_values.get(var, u("<unknown %s>") % var)
     144                        log.info("metadata_replace default_value=%s", default_value)
    139145                        value = self._metadata.strget(var, default_value)
     146                        log.info("metadata_replace type(%s)=%s", value, type(value))
     147                        log.info("metadata_replace value=%s", binascii.hexlify(value))
     148                        log.info("metadata_replace value=%s", value)
    140149                        if sys.version<'3':
    141150                            value = value.decode("utf-8")
     151                        log.info("metadata_replace=%s", value)
    142152                        return value
    143153                    title = re.sub("@[\w\-]*@", metadata_replace, title)
     154                log.info("title after substitution=%s", title)
    144155                utf8_title = title.encode("utf-8")
     156                log.info("utf8_title=%s", utf8_title)
     157                log.info("title after substitution=%s", binascii.hexlify(title))
    145158            except Exception, e:
    146159                log.error("error parsing window title: %s", e)
    147160                utf8_title = ""
  • ../../../trunk/src/xpra/client/client_window_base.py

     
    146146        metalog("set_metadata(%s)", metadata)
    147147        if b"title" in metadata:
    148148            try:
     149                metalog("title update, title string=%s", self._client.title)
    149150                title = bytestostr(self._client.title).replace("\0", "")
     151                metalog("cleaned up title string=%s", title)
    150152                if title.find("@")>=0:
    151153                    #perform metadata variable substitutions:
    152154                    #full of py3k unicode headaches that don't need to be
    153155                    default_values = {"title"           : "<untitled window>",
    154156                                      "client-machine"  : "<unknown machine>"}
     157                    import binascii
    155158                    def metadata_replace(match):
    156159                        atvar = match.group(0)          #ie: '@title@'
     160                        metalog("metadata_replace atvar=%s", atvar)
    157161                        var = atvar[1:len(atvar)-1]     #ie: 'title'
     162                        metalog("metadata_replace var=%s", var)
    158163                        default_value = default_values.get(var, "<unknown %s>" % var)
     164                        metalog("metadata_replace default_value=%s", default_value)
    159165                        value = self._metadata.strget(var, default_value)
     166                        metalog("metadata_replace str value=%s", value)
     167                        value = self._metadata.get(var, default_value)
     168                        metalog("metadata_replace value=%s", binascii.hexlify(value))
     169                        metalog("metadata_replace value=%s", value)
     170                        metalog("metadata_replace type(%s)=%s", value, type(value))
    160171                        if sys.version<'3':
    161172                            value = value.decode("utf-8")
     173                        metalog("metadata_replace=%s", value)
    162174                        return value
    163175                    title = re.sub("@[\w\-]*@", metadata_replace, title)
     176                    metalog("title after substitution=%s", title)
    164177                    if sys.version<'3':
    165178                        utf8_title = title.encode("utf-8")
    166179                    else:
    167180                        utf8_title = title
     181                    metalog("utf8_title=%s", utf8_title)
     182                    metalog("title after substitution=%s", binascii.hexlify(title))
    168183            except Exception as e:
    169184                log.error("error parsing window title: %s", e)
    170185                utf8_title = b""