# This file is part of Xpra. # Copyright (C) 2008 Nathaniel Smith <*****@*****.**> # Copyright (C) 2012-2015 Antoine Martin <*****@*****.**> # Xpra is released under the terms of the GNU GPL v2, or, at your option, any # later version. See the file COPYING for details. from xpra.gtk_common.gobject_compat import import_gdk, import_gobject, import_pixbufloader, import_cairo gdk = import_gdk() gobject = import_gobject() cairo = import_cairo() PixbufLoader = import_pixbufloader() from xpra.gtk_common.gtk_util import cairo_set_source_pixbuf, gdk_cairo_context from xpra.client.gtk_base.gtk_window_backing_base import GTKWindowBacking from xpra.codecs.loader import get_codec from xpra.os_util import BytesIOClass, memoryview_to_bytes, strtobytes from xpra.log import Logger log = Logger("paint", "cairo") FORMATS = {-1: "INVALID"} for x in (f for f in dir(cairo) if f.startswith("FORMAT_")): FORMATS[getattr(cairo, x)] = x.replace("FORMAT_", "") """ Superclass for gtk2 and gtk3 cairo implementations. """ class CairoBackingBase(GTKWindowBacking):
menulog = Logger("menu") from xpra.os_util import memoryview_to_bytes from xpra.util import AdHocStruct, bytestostr, typedict, WORKSPACE_UNSET, WORKSPACE_ALL, WORKSPACE_NAMES from xpra.gtk_common.gobject_compat import import_gtk, import_gdk, import_cairo, import_pixbufloader, get_xid from xpra.gtk_common.gobject_util import no_arg_signal from xpra.gtk_common.gtk_util import get_pixbuf_from_data, get_default_root_window, is_realized, WINDOW_POPUP, WINDOW_TOPLEVEL from xpra.gtk_common.keymap import KEY_TRANSLATIONS from xpra.client.client_window_base import ClientWindowBase from xpra.platform.gui import set_fullscreen_monitors, set_shaded from xpra.codecs.argb.argb import unpremultiply_argb, bgra_to_rgba #@UnresolvedImport from xpra.platform.gui import add_window_hooks, remove_window_hooks gtk = import_gtk() gdk = import_gdk() cairo = import_cairo() PixbufLoader = import_pixbufloader() CAN_SET_WORKSPACE = False HAS_X11_BINDINGS = False if os.name=="posix" and os.environ.get("XPRA_SET_WORKSPACE", "1")!="0": try: from xpra.x11.gtk_x11.prop import prop_get, prop_set from xpra.x11.bindings.window_bindings import constants, X11WindowBindings, SHAPE_KIND #@UnresolvedImport from xpra.x11.bindings.core_bindings import X11CoreBindings from xpra.gtk_common.error import xsync from xpra.x11.gtk_x11.send_wm import send_wm_workspace X11Window = X11WindowBindings() X11Core = X11CoreBindings() HAS_X11_BINDINGS = True