Esempio n. 1
0
 def __init__(self):
     self.screen_number = display_get_default().get_default_screen(
     ).get_number()
     self.root_window = get_default_root_window()
     self.pointer_device = XTestPointerDevice()
     self.last_mouse_user = None
     GTKServerBase.__init__(self)
Esempio n. 2
0
 def init(self, opts):
     GTKServerBase.init(self, opts)
     ShadowServerBase.init(self, opts)
     self.tray = opts.tray
     self.tray_icon = opts.tray_icon
     if self.tray:
         self.setup_tray()
Esempio n. 3
0
 def init(self, opts):
     self.randr = opts.resize_display
     self.fake_xinerama = opts.fake_xinerama
     self.current_xinerama_config = None
     with xsync:
         self.x11_init()
     GTKServerBase.init(self, opts)
Esempio n. 4
0
 def cleanup(self):
     tw = self.tray_widget
     traylog("cleanup() tray_widget=%s", tw)
     if tw:
         self.tray_widget = None
         tw.cleanup()
     GTKServerBase.cleanup(self)
Esempio n. 5
0
 def __init__(self):
     #TODO: root should be a wrapper for the win32 system metrics bits?
     #(or even not bother passing root to ShadowServerBase?
     import gtk.gdk
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
     self.keycodes = {}
Esempio n. 6
0
 def init(self, opts):
     self.randr = opts.resize_display
     self.fake_xinerama = False  #only enabled in seamless server
     self.current_xinerama_config = None
     with xsync:
         self.x11_init()
     GTKServerBase.init(self, opts)
Esempio n. 7
0
 def last_client_exited(self):
     log("last_client_exited() mapped=%s", self.mapped)
     for wid in tuple(self.mapped):
         self.stop_refresh(wid)
     #revert to default icon:
     if not self.tray_icon:
         self.set_tray_icon("server-notconnected")
     GTKServerBase.last_client_exited(self)
Esempio n. 8
0
 def cleanup(self):
     self.cleanup_tray()
     #root window models aren't like regular window models
     #(which get cleaned up using the unmanage signal)
     for model in self._id_to_window.values():
         model.cleanup()
     ShadowServerBase.cleanup(self)
     GTKServerBase.cleanup(self)
Esempio n. 9
0
 def __init__(self):
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
     #for managing the systray
     self.tray_menu = None
     self.tray_menu_shown = False
     self.tray_widget = None
     self.tray = False
     self.tray_icon = None
Esempio n. 10
0
 def init(self, opts):
     self.fake_xinerama = opts.fake_xinerama
     self.current_xinerama_config = None
     if self.fake_xinerama:
         self.libfakeXinerama_so = find_libfakeXinerama()
     else:
         self.libfakeXinerama_so = None
     self.x11_init()
     GTKServerBase.init(self, opts)
Esempio n. 11
0
 def __init__(self):
     import gtk.gdk
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
     self.keycodes = {}
     from xpra.net.bytestreams import set_continue_wait
     #on win32, we want to wait just a little while,
     #to prevent servers spinning wildly on non-blocking sockets:
     set_continue_wait(5)
Esempio n. 12
0
 def add_listen_socket(self, socktype, sock):
     log("add_listen_socket(%s, %s)", socktype, sock)
     if socktype=="named-pipe":
         #named pipe listener uses a thread:
         sock.new_connection_cb = self._new_connection
         self.socket_types[sock] = socktype
         sock.start()
     else:
         GTKServerBase.add_listen_socket(self, socktype, sock)
Esempio n. 13
0
 def __init__(self):
     import gtk.gdk
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
     self.keycodes = {}
     from xpra.net.bytestreams import set_continue_wait
     #on win32, we want to wait just a little while,
     #to prevent servers spinning wildly on non-blocking sockets:
     set_continue_wait(5)
Esempio n. 14
0
 def add_listen_socket(self, socktype, sock):
     log("add_listen_socket(%s, %s)", socktype, sock)
     if socktype == "named-pipe":
         #named pipe listener uses a thread:
         sock.new_connection_cb = self._new_connection
         self.socket_types[sock] = socktype
         sock.start()
     else:
         GTKServerBase.add_listen_socket(self, socktype, sock)
Esempio n. 15
0
 def __init__(self):
     #sanity check:
     image = CG.CGWindowListCreateImage(CG.CGRectInfinite,
                 CG.kCGWindowListOptionOnScreenOnly,
                 CG.kCGNullWindowID,
                 CG.kCGWindowImageDefault)
     if image is None:
         raise Exception("cannot grab test screenshot - maybe you need to run this command whilst logged in via the UI")
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
Esempio n. 16
0
 def __init__(self):
     #sanity check:
     image = CG.CGWindowListCreateImage(CG.CGRectInfinite,
                 CG.kCGWindowListOptionOnScreenOnly,
                 CG.kCGNullWindowID,
                 CG.kCGWindowImageDefault)
     if image is None:
         raise Exception("cannot grab test screenshot - maybe you need to run this command whilst logged in via the UI")
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
Esempio n. 17
0
 def __init__(self):
     from xpra.gtk_common.gtk_util import get_default_root_window
     ShadowServerBase.__init__(self, get_default_root_window())
     GTKServerBase.__init__(self)
     #for managing the systray
     self.tray_menu = None
     self.tray_menu_shown = False
     self.tray_widget = None
     self.tray = False
     self.tray_icon = None
Esempio n. 18
0
 def __init__(self):
     from xpra.gtk_common.gtk_util import get_default_root_window
     ShadowServerBase.__init__(self, get_default_root_window())
     GTKServerBase.__init__(self)
     self.session_type = "shadow"
     self.pointer_position_timer = None
     #for managing the systray
     self.tray_menu = None
     self.tray_menu_shown = False
     self.tray_widget = None
     self.tray = False
     self.tray_icon = None
Esempio n. 19
0
 def __init__(self):
     self.screen_number = display_get_default().get_default_screen(
     ).get_number()
     self.root_window = get_default_root_window()
     self.pointer_device = XTestPointerDevice()
     self.touchpad_device = None
     self.pointer_device_map = {}
     self.keys_pressed = {}
     self.last_mouse_user = None
     self.x11_filter = False
     GTKServerBase.__init__(self)
     log("XShape=%s", X11Window.displayHasXShape())
Esempio n. 20
0
 def __init__(self):
     self.screen_number = Gdk.Screen.get_default().get_number()
     self.root_window = get_default_root_window()
     self.pointer_device = XTestPointerDevice()
     self.touchpad_device = None
     self.pointer_device_map = {}
     self.keys_pressed = {}
     self.last_mouse_user = None
     self.libfakeXinerama_so = None
     self.x11_filter = False
     self.randr_sizes_added = []
     GTKServerBase.__init__(self)
     log("XShape=%s", X11Window.displayHasXShape())
Esempio n. 21
0
 def do_get_info(self, proto, server_sources, window_ids):
     info = GTKServerBase.do_get_info(self, proto, server_sources, window_ids)
     info["server.type"] = "Python/gtk/x11"
     try:
         from xpra.x11.gtk_x11.composite import CompositeHelper
         info["server.XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     #randr:
     try:
         sizes = RandR.get_screen_sizes()
         if self.randr and len(sizes)>=0:
             info["server.randr.options"] = list(reversed(sorted(sizes)))
     except:
         pass
     try:
         from xpra.scripts.server import find_fakeXinerama
         fx = find_fakeXinerama()
     except:
         fx = None
     info["server.fakeXinerama"] = self.fake_xinerama and bool(fx)
     info["server.libfakeXinerama"] = fx or ""
     #this is added here because the server keyboard config doesn't know about "keys_pressed"..
     info["keyboard.state.keys_pressed"] = list(self.keys_pressed.keys())
     return info
Esempio n. 22
0
 def make_hello(self, source):
     capabilities = GTKServerBase.make_hello(self, source)
     capabilities["server_type"] = "Python/gtk/x11"
     if source.wants_features:
         capabilities["resize_screen"] = self.randr
         capabilities["force_ungrab"] = True
     return capabilities
Esempio n. 23
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. 24
0
 def do_get_info(self, proto, server_sources, window_ids):
     start = time.time()
     info = GTKServerBase.do_get_info(self, proto, server_sources, window_ids)
     if self.opengl_props:
         info["opengl"] = self.opengl_props
     #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", {})
     sinfo.update({"type"                : "Python/gtk/x11",
                   "fakeXinerama"        : self.fake_xinerama and bool(self.libfakeXinerama_so),
                   "libfakeXinerama"     : self.libfakeXinerama_so or "",
                   "Xkb"                 : X11Keyboard.hasXkb(),
                   "XTest"               : X11Keyboard.hasXTest(),
                   })
     try:
         from xpra.x11.gtk2.composite import CompositeHelper
         sinfo["XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     #randr:
     try:
         sizes = RandR.get_screen_sizes()
         if self.randr and len(sizes)>=0:
             sinfo["randr"] = {"options" : list(reversed(sorted(sizes)))}
     except:
         pass
     log("X11ServerBase.do_get_info took %ims", (time.time()-start)*1000)
     return info
Esempio n. 25
0
 def do_get_info(self, proto, server_sources, window_ids):
     start = time.time()
     info = GTKServerBase.do_get_info(self, proto, server_sources, window_ids)
     if self.opengl_props:
         info["opengl"] = self.opengl_props
     #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", {})
     sinfo.update({"type"                : "Python/gtk/x11",
                   "fakeXinerama"        : self.fake_xinerama and bool(self.libfakeXinerama_so),
                   "libfakeXinerama"     : self.libfakeXinerama_so or "",
                   "Xkb"                 : X11Keyboard.hasXkb(),
                   "XTest"               : X11Keyboard.hasXTest(),
                   })
     try:
         from xpra.x11.gtk2.composite import CompositeHelper
         sinfo["XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     #randr:
     try:
         sizes = RandR.get_screen_sizes()
         if self.randr and len(sizes)>=0:
             sinfo["randr"] = {"options" : list(reversed(sorted(sizes)))}
     except:
         pass
     log("X11ServerBase.do_get_info took %ims", (time.time()-start)*1000)
     return info
Esempio n. 26
0
 def make_hello(self, source):
     capabilities = GTKServerBase.make_hello(self, source)
     capabilities["server_type"] = "Python/gtk/x11"
     if source.wants_features:
         capabilities["resize_screen"] = self.randr
         capabilities["force_ungrab"] = True
     return capabilities
Esempio n. 27
0
 def do_get_info(self, proto, server_sources, window_ids):
     info = GTKServerBase.do_get_info(self, proto, server_sources,
                                      window_ids)
     info["server.type"] = "Python/gtk/x11"
     try:
         from xpra.x11.gtk_x11.composite import CompositeHelper
         info["server.XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     #randr:
     try:
         sizes = RandR.get_screen_sizes()
         if self.randr and len(sizes) >= 0:
             info["server.randr.options"] = list(reversed(sorted(sizes)))
     except:
         pass
     try:
         from xpra.scripts.server import find_fakeXinerama
         fx = find_fakeXinerama()
     except:
         fx = None
     info["server.fakeXinerama"] = self.fake_xinerama and bool(fx)
     info["server.libfakeXinerama"] = fx or ""
     #this is added here because the server keyboard config doesn't know about "keys_pressed"..
     info["keyboard.state.keys_pressed"] = list(self.keys_pressed.keys())
     return info
Esempio n. 28
0
 def make_hello(self, source):
     capabilities = GTKServerBase.make_hello(self, source)
     capabilities["server_type"] = "Python/gtk/x11"
     if source.wants_features:
         capabilities.update({
             "resize_screen":
             self.randr,
             "resize_exact":
             self.randr_exact_size,
             "force_ungrab":
             True,
             "keyboard.fast-switching":
             True,
             "wheel.precise":
             self.pointer_device.has_precise_wheel(),
             "touchpad-device":
             bool(self.touchpad_device),
         })
         if self.randr:
             sizes = RandR.get_xrr_screen_sizes()
             if len(sizes) > 1:
                 capabilities["screen-sizes"] = sizes
         if self.default_cursor_image and source.wants_default_cursor:
             capabilities["cursor.default"] = self.default_cursor_image
     return capabilities
Esempio n. 29
0
 def _new_connection(self, listener, *args):
     socktype = self.socket_types.get(listener)
     log("_new_connection(%s) socktype=%s", listener, socktype)
     if socktype!="named-pipe":
         return GTKServerBase._new_connection(self, listener)
     pipe_handle = args[0]
     conn = NamedPipeConnection(listener.pipe_name, pipe_handle)
     return self.make_protocol(socktype, conn, frominfo=" on %s" % conn.target)
Esempio n. 30
0
 def get_info(self, proto):
     info = GTKServerBase.get_info(self, proto)
     info.setdefault("features", {})["shadow"] = True
     info.setdefault("server", {
                                "type"       : "Python/gtk2/win32-shadow",
                                "tray"       : self.tray,
                                "tray-icon"  :self.tray_icon or ""})
     return info
Esempio n. 31
0
 def get_child_env(self):
     #adds fakexinerama:
     env = GTKServerBase.get_child_env(self)
     if self.fake_xinerama:
         libfakeXinerama_so = self.find_fakeXinerama()
         if libfakeXinerama_so:
             env["LD_PRELOAD"] = libfakeXinerama_so
     return env
Esempio n. 32
0
 def get_info(self, proto):
     info = GTKServerBase.get_info(self, proto)
     info.setdefault("features", {})["shadow"] = True
     info.setdefault("server", {
                                "type"       : "Python/gtk2/win32-shadow",
                                "tray"       : self.tray,
                                "tray-icon"  :self.tray_icon or ""})
     return info
Esempio n. 33
0
 def _new_connection(self, listener, *args):
     socktype = self.socket_types.get(listener)
     log("_new_connection(%s) socktype=%s", listener, socktype)
     if socktype!="named-pipe":
         return GTKServerBase._new_connection(self, listener)
     pipe_handle = args[0]
     conn = NamedPipeConnection(listener.pipe_name, pipe_handle)
     return self.make_protocol(socktype, conn, frominfo=" on %s" % conn.target)
Esempio n. 34
0
 def do_get_info(self, proto, server_sources, window_ids):
     info = GTKServerBase.do_get_info(self, proto, server_sources, window_ids)
     info["server.type"] = "Python/gtk/x11"
     try:
         from xpra.x11.gtk_x11.composite import CompositeHelper
         info["server.XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     return info
Esempio n. 35
0
 def do_get_info(self, proto, server_sources, window_ids):
     info = GTKServerBase.do_get_info(self, proto, server_sources,
                                      window_ids)
     info["server.type"] = "Python/gtk/x11"
     try:
         from xpra.x11.gtk_x11.composite import CompositeHelper
         info["server.XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     return info
Esempio n. 36
0
 def make_hello(self, source):
     capabilities = GTKServerBase.make_hello(self, source)
     capabilities["server_type"] = "Python/gtk/x11"
     if source.wants_features:
         capabilities.update({
                 "resize_screen"             : self.randr,
                 "force_ungrab"              : True,
                 "keyboard.fast-switching"   : True,
                 })
     return capabilities
Esempio n. 37
0
 def get_info(self, proto):
     info = GTKServerBase.get_info(self, proto)
     info.setdefault("features", {})["shadow"] = True
     info.setdefault("server", {})["type"] = "Python/gtk2/osx-shadow"
     info.setdefault("damage", {}).update({
                                           "notifications"   : self.refresh_registered,
                                           "count"           : self.refresh_count,
                                           "rectangles"      : self.refresh_rectangle_count,
                                           })
     return info
Esempio n. 38
0
 def get_info(self, proto):
     info = GTKServerBase.get_info(self, proto)
     info.setdefault("features", {})["shadow"] = True
     info.setdefault("server", {})["type"] = "Python/gtk2/osx-shadow"
     info.setdefault("damage", {}).update({
                                           "notifications"   : self.refresh_registered,
                                           "count"           : self.refresh_count,
                                           "rectangles"      : self.refresh_rectangle_count,
                                           })
     return info
Esempio n. 39
0
 def make_hello(self, source):
     capabilities = GTKServerBase.make_hello(self, source)
     capabilities["server_type"] = "Python/gtk/x11"
     if source.wants_features:
         capabilities.update({
             "resize_screen": self.randr,
             "force_ungrab": True,
             "keyboard.fast-switching": True,
         })
     return capabilities
Esempio n. 40
0
 def get_info(self, proto, *_args):
     info = GTKServerBase.get_info(self, proto)
     info.update(GTKShadowServerBase.get_info(self, proto))
     info.setdefault("features", {})["shadow"] = True
     info.setdefault("server", {
                                "pixel-depth": self.pixel_depth,
                                "type"       : "Python/gtk2/win32-shadow",
                                "tray"       : self.tray,
                                "tray-icon"  : self.tray_icon or ""
                                })
     return info
Esempio n. 41
0
 def do_get_info(self, proto, server_sources):
     start = monotonic_time()
     info = GTKServerBase.do_get_info(self, proto, server_sources)
     if self.opengl_props:
         info["opengl"] = self.opengl_props
     sinfo = info.setdefault("server", {})
     sinfo.update({
         "type"                  : "Python/gtk/x11",
         "fakeXinerama"          : self.fake_xinerama and bool(self.libfakeXinerama_so),
         "libfakeXinerama"       : self.libfakeXinerama_so or "",
         })
     log("X11ServerBase.do_get_info took %ims", (monotonic_time()-start)*1000)
     return info
Esempio n. 42
0
 def do_get_info(self, proto, server_sources, window_ids):
     info = GTKServerBase.do_get_info(self, proto, server_sources, window_ids)
     info["server.type"] = "Python/gtk/x11"
     try:
         from xpra.x11.gtk2.composite import CompositeHelper
         info["server.XShm"] = CompositeHelper.XShmEnabled
     except:
         pass
     #randr:
     try:
         sizes = RandR.get_screen_sizes()
         if self.randr and len(sizes)>=0:
             info["server.randr.options"] = list(reversed(sorted(sizes)))
     except:
         pass
     info["server.fakeXinerama"] = self.fake_xinerama and bool(self.libfakeXinerama_so)
     info["server.libfakeXinerama"] = self.libfakeXinerama_so or ""
     #this is added here because the server keyboard config doesn't know about "keys_pressed"..
     info["keyboard.state.keys_pressed"] = list(self.keys_pressed.keys())
     info["keyboard.fast-switching"] = True
     info["server.Xkb"] = X11Keyboard.hasXkb()
     info["server.XTest"] = X11Keyboard.hasXTest()
     return info
Esempio n. 43
0
 def init(self, opts):
     GTKServerBase.init(self, opts)
     self.keycodes = {}
Esempio n. 44
0
 def get_info(self, proto):
     info = GTKServerBase.get_info(self, proto)
     info["features.shadow"] = True
     info["server.type"] = "Python/gtk2/win32-shadow"
     return info
Esempio n. 45
0
 def do_cleanup(self, *args):
     GTKServerBase.do_cleanup(self)
     cleanup_fakeXinerama()
Esempio n. 46
0
 def __init__(self):
     import gtk.gdk
     ShadowServerBase.__init__(self, gtk.gdk.get_default_root_window())
     GTKServerBase.__init__(self)
     self.keycodes = {}
Esempio n. 47
0
 def make_hello(self):
     capabilities = GTKServerBase.make_hello(self)
     capabilities["shadow"] = True
     capabilities["server_type"] = "Python/gtk2/win32-shadow"
     return capabilities
Esempio n. 48
0
 def client_startup_complete(self, ss):
     GTKServerBase.client_startup_complete(self, ss)
     if not self.tray_icon:
         self.set_tray_icon("server-connected")
Esempio n. 49
0
 def last_client_exited(self):
     self.stop_refresh()
     #revert to default icon:
     if not self.tray_icon:
         self.set_tray_icon("server-notconnected")
     GTKServerBase.last_client_exited(self)
Esempio n. 50
0
 def init(self, opts):
     GTKServerBase.init(self, opts)
     self.tray = opts.tray
     self.tray_icon = opts.tray_icon
     if self.tray:
         self.setup_tray()
Esempio n. 51
0
 def get_window_info(self, window):
     info = GTKServerBase.get_window_info(self, window)
     info["XShm"] = window.uses_XShm()
     return info
Esempio n. 52
0
 def get_child_env(self):
     #adds fakeXinerama:
     env = GTKServerBase.get_child_env(self)
     if self.fake_xinerama and self.libfakeXinerama_so:
         env["LD_PRELOAD"] = self.libfakeXinerama_so
     return env
Esempio n. 53
0
 def init_packet_handlers(self):
     GTKServerBase.init_packet_handlers(self)
     self._authenticated_ui_packet_handlers["force-ungrab"] = self._process_force_ungrab
Esempio n. 54
0
 def __init__(self, clobber):
     self.clobber = clobber
     self.screen_number = gtk.gdk.display_get_default().get_default_screen().get_number()
     self.root_window = gtk.gdk.get_default_root_window()
     GTKServerBase.__init__(self)
Esempio n. 55
0
 def make_hello(self, source):
     capabilities = GTKServerBase.make_hello(self, source)
     capabilities["shadow"] = True
     capabilities["server_type"] = "Python/gtk2/osx-shadow"
     return capabilities
Esempio n. 56
0
 def init_keyboard(self):
     GTKServerBase.init_keyboard(self)
     #clear all modifiers
     clean_keyboard_state()