Esempio n. 1
0
 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
Esempio n. 2
0
 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