Age | Commit message (Collapse) | Author | Files | Lines |
|
If there are several SpiceDisplay widgets, only one will have the grab,
but the pointer may need to be drawn on another of the displays. We
thus need to track the grab status on SpiceSession, not just
per-display.
This solves the following bug:
https://bugs.freedesktop.org/show_bug.cgi?id=38024
|
|
Let's avoid confusion of multiple pointers visible on the client
desktop: hide the guest pointer if the spice client doesn't have the
grab, display it again when the grab is taken back.
|
|
Let's make use of the priv members in the structs, which are much much
faster. Also, to keep the type-safety, the SPICE_IS_* macros were added
in the public methods affected by this patch.
Patch based on an old patch from Alexander Larsson (alexl@redhat.com).
|
|
There are gtk+ version checks in several source files to add
compatibility implementations of gtk3 functions not available
in gtk2. This commit gathers all of them in a gtk-compat.h header,
similar to what is done for glib-compat.h
|
|
This is recommended by autoconf documentation
http://nondot.org/sabre/Mirrored/autoconf-2.12/autoconf_3.html#SEC15
and some #defines in config.h can change what happens in system headers,
so config.h has to be included first.
The only file which does not get this treatment is
gtk/spice-client-gtk-module.c as this breaks the build on gtk+2:
CC SpiceClientGtk_la-spice-client-gtk-module.lo
In file included from /usr/include/python2.7/pyconfig.h:6:0,
from /usr/include/python2.7/Python.h:8,
from /usr/include/pygtk-2.0/pygobject.h:5,
from spice-client-gtk-module.c:20:
/usr/include/python2.7/pyconfig-64.h:1182:0: error: "_POSIX_C_SOURCE" redefined [-Werror]
#define _POSIX_C_SOURCE 200112L
^
In file included from /usr/include/limits.h:25:0,
from /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/limits.h:168,
from /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/syslimits.h:7,
from /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include/limits.h:34,
from /usr/lib64/glib-2.0/include/glibconfig.h:11,
from /usr/include/glib-2.0/glib/gtypes.h:34,
from /usr/include/glib-2.0/glib/galloca.h:34,
from /usr/include/glib-2.0/glib.h:32,
from /usr/include/glib-2.0/gobject/gbinding.h:30,
from /usr/include/glib-2.0/glib-object.h:25,
from ./glib-compat.h:24,
from ../config.h:201,
from spice-client-gtk-module.c:18:
/usr/include/features.h:228:0: note: this is the location of the previous definition
# define _POSIX_C_SOURCE 200809L
^
cc1: all warnings being treated as errors
|
|
cairo_surface_finish() doesn't remove the reference,
cairo_surface_destroy() does and will call surface_finish().
Thanks to Uli Schlachter for noticing that in:
https://bugs.freedesktop.org/show_bug.cgi?id=61876
|
|
When switching between client mode and server mode, the pointer is
being invalidated on each display and the cursor will end up being
drawn on both. Since there is no information on which display the
cursor is supposed to be until a move is received, hide the cursor
until it actually moves.
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
The X11 backend allocates the "image" with X11 and needs the widget to
be realized before calling spicex_image_create().
https://bugs.freedesktop.org/show_bug.cgi?id=54310
|
|
For some reason the way we remove the "inner" area
when clearing the background doesn't work on one computer.
I don't really know why, but the current approach does seems a
little fragile.
This replaces it with a solid region operation that works on
all my machines.
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
This moves all the handling of scaling calculations and
positioning of the display inside the widget into one place.
This makes it easier to later change how scaling works.
Also, the new scaling only support aspect-ratio-keeping
scaling.
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
Each spice widget can now restrict the area of the primary
surface they show and interact with by setting the private
area member.
A nice clean-up would be to seperate an area object that
would deal with clipping, input translation and color
conversion, but the resulting code would be similar anyway
|
|
When the cursor shape is changed, all the cursor channels are
updated. The current code assumed that the "set" of the shape should
show the cursor, but it should stay hidden instead.
Also, when the cursor is hidden, we must invalidate its current
region to redraw display.
Fix: https://bugzilla.redhat.com/show_bug.cgi?id=804308
|
|
|
|
|
|
The only one left is related to GOptionGroup, which is not boxed.
|
|
|
|
In GTK2 world there is an expose_event handler, so a choice
of the X11 or cairo backends can be used.
In GTK3 world only the draw_event exists, which must use
cairo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|