def get_ui_info(self, proto, wids=None, *args): import threading log("do_get_info thread=%s", threading.current_thread()) info = GTKServerBase.get_ui_info(self, proto, wids, *args) #this is added here because the server keyboard config doesn't know about "keys_pressed".. info.setdefault("keyboard", {}).update({ "state": { "keys_pressed": list(self.keys_pressed.keys()) }, "fast-switching": True, }) sinfo = info.setdefault("server", {}) try: from xpra.x11.gtk2.composite import CompositeHelper sinfo["XShm"] = CompositeHelper.XShmEnabled except: pass #cursor: log("do_get_info: adding cursor=%s", self.last_cursor_data) info.setdefault("cursor", {}).update(self.get_cursor_info()) with xswallow: sinfo.update({ "Xkb": X11Keyboard.hasXkb(), "XTest": X11Keyboard.hasXTest(), }) #randr: try: with xsync: sizes = RandR.get_screen_sizes() if self.randr and len(sizes) >= 0: sinfo["randr"] = {"options": list(reversed(sorted(sizes)))} except: pass return info
def get_ui_info(self, proto, wids=None, *args): import threading log("do_get_info thread=%s", threading.current_thread()) info = GTKServerBase.get_ui_info(self, proto, wids, *args) #this is added here because the server keyboard config doesn't know about "keys_pressed".. if not self.readonly: with xsync: info.setdefault("keyboard", {}).update({ "state": { "keys_pressed": tuple(self.keys_pressed.keys()) }, "fast-switching": True, "layout-group": X11Keyboard.get_layout_group(), }) sinfo = info.setdefault("server", {}) try: from xpra.x11.gtk_x11.composite import CompositeHelper sinfo["XShm"] = CompositeHelper.XShmEnabled except ImportError: pass #cursor: log("do_get_info: adding cursor=%s", self.last_cursor_image) info.setdefault("cursor", {}).update(self.get_cursor_info()) with xswallow: sinfo.update({ "Xkb": X11Keyboard.hasXkb(), "XTest": X11Keyboard.hasXTest(), }) #randr: try: with xsync: sizes = RandR.get_xrr_screen_sizes() if self.randr and len(sizes) >= 0: sinfo["randr"] = { "": True, "options": tuple(reversed(sorted(sizes))), "exact": self.randr_exact_size, } except XError: log("failed to query randr screen sizes", exc_info=True) return info