spice-gtk:spice-gtk-elmarco.git
6 years agoTHANKS: update
Marc-André Lureau [Mon, 23 May 2011 23:03:43 +0000 (01:03 +0200)]
THANKS: update

6 years agoMerge commit 'refs/merge-requests/10' of ssh://gitorious.org/spice-gtk/spice-gtk...
Marc-André Lureau [Mon, 23 May 2011 23:00:02 +0000 (01:00 +0200)]
Merge commit 'refs/merge-requests/10' of ssh://gitorious.org/spice-gtk/spice-gtk into merge-requests/10

6 years agoFix missing OS-X keymapping for letter 'A' 10
Daniel P. Berrange [Thu, 14 Apr 2011 14:12:34 +0000 (15:12 +0100)]
Fix missing OS-X keymapping for letter 'A'

The keymap-gen.pl script was not correctly distinguishing
keycodes with a value of '0', from undefined keycodes. All
were skipped. This meant that the mapping for OS-X ANSI_A
key was lost (since it has value 0).

For similar reasons the XQuartz mapping for the letter A
was also lost.

* src/keymap-gen.pl: Fix handling of 0 vs undef for keycodes
* src/keymaps.csv: Remove bogus 0x0 entry in OS-X keymap

6 years agoAdd missing keytable entry for KEY_KATAKANAHIRAGANA
Daniel P. Berrange [Fri, 17 Sep 2010 10:43:35 +0000 (11:43 +0100)]
Add missing keytable entry for KEY_KATAKANAHIRAGANA

* src/keymaps.csv: Add XT code for KEY_KATAKANAHIRAGANA

6 years agoinclude stddef.h in continuation.h
Christophe Fergeau [Sat, 30 Apr 2011 17:27:58 +0000 (19:27 +0200)]
include stddef.h in continuation.h

It uses size_t so it needs it to get a definition for this type.
If it's not there, this causes build breakage on OS X

6 years agodefine MAP_ANON as MAP_ANONYMOUS if needed
Attila Sukosd [Sat, 30 Apr 2011 16:47:05 +0000 (18:47 +0200)]
define MAP_ANON as MAP_ANONYMOUS if needed

Mac OS X doesn't have MAP_ANONYMOUS, only MAP_ANON, so use MAP_ANON
when MAP_ANONYMOUS isn't defined.

6 years agossl_verify: include <string.h>
Christophe Fergeau [Sat, 30 Apr 2011 16:20:23 +0000 (18:20 +0200)]
ssl_verify: include <string.h>

ssl_verify.c is using memcmp which comes from string.h, this was
breaking compilation with -Werror -Wall on Mac OS X

6 years agolink with gthread when appropriate 9
Christophe Fergeau [Mon, 23 May 2011 16:06:58 +0000 (18:06 +0200)]
link with gthread when appropriate

The corouting gthread code and spicy are using gthread functions
but were no linked against the gthread library. This causes build
failures on older glibs where gthread isn't mandatory when using
glib.

6 years agognome-rr: use g_object_notify instead of g_object_notify_by_spec
Christophe Fergeau [Mon, 23 May 2011 15:56:46 +0000 (17:56 +0200)]
gnome-rr: use g_object_notify instead of g_object_notify_by_spec

The latter was added in glib 2.26, and we only require glib 2.22

6 years agodisplay: fix build error GLib <2.26
Marc-André Lureau [Mon, 23 May 2011 08:43:47 +0000 (10:43 +0200)]
display: fix build error GLib <2.26

https://bugs.freedesktop.org/show_bug.cgi?id=37443

6 years agogtk/controller: correctly close namedpipe after calling close()
Marc-André Lureau [Fri, 20 May 2011 21:54:45 +0000 (23:54 +0200)]
gtk/controller: correctly close namedpipe after calling close()

6 years agogtk/controller: add some missing clean up of namedpipe
Marc-André Lureau [Fri, 20 May 2011 10:03:44 +0000 (12:03 +0200)]
gtk/controller: add some missing clean up of namedpipe

6 years agogtk/controller: forgot to dispose stream as well
Marc-André Lureau [Mon, 16 May 2011 20:07:57 +0000 (22:07 +0200)]
gtk/controller: forgot to dispose stream as well

6 years agocontroller: stick to 2.22 API
Marc-André Lureau [Fri, 20 May 2011 10:59:45 +0000 (12:59 +0200)]
controller: stick to 2.22 API

6 years agobuild: fix build with latest mingw
Marc-André Lureau [Mon, 16 May 2011 11:57:37 +0000 (13:57 +0200)]
build: fix build with latest mingw

6 years agogtk/controller: got NamedPipe basic working
Marc-André Lureau [Fri, 13 May 2011 11:55:46 +0000 (13:55 +0200)]
gtk/controller: got NamedPipe basic working

6 years agogtk/controller: start NamedPipe support (compile with mingw32)
Marc-André Lureau [Thu, 12 May 2011 20:11:04 +0000 (22:11 +0200)]
gtk/controller: start NamedPipe support (compile with mingw32)

6 years agogtk: restore correctly UI elements visibility state
Marc-André Lureau [Wed, 11 May 2011 11:53:32 +0000 (13:53 +0200)]
gtk: restore correctly UI elements visibility state

6 years agogtk: some code cleanup
Zeeshan Ali (Khattak) [Tue, 10 May 2011 16:48:30 +0000 (18:48 +0200)]
gtk: some code cleanup

6 years agogtk: spicy - leave fullscreen when grab sequence is pressed
Marc-André Lureau [Tue, 10 May 2011 16:23:59 +0000 (18:23 +0200)]
gtk: spicy - leave fullscreen when grab sequence is pressed

Workaround since accels are now disabled.. Ideally we either have a
different key sequence or we use Vinagre UI

6 years agogtk: fix spicy grab key sequence
Marc-André Lureau [Tue, 10 May 2011 16:22:51 +0000 (18:22 +0200)]
gtk: fix spicy grab key sequence

6 years agogtk: warn on invalid key sequence
Marc-André Lureau [Tue, 10 May 2011 16:22:21 +0000 (18:22 +0200)]
gtk: warn on invalid key sequence

6 years agogtk: add grab-keys-pressed signal
Marc-André Lureau [Tue, 10 May 2011 15:52:29 +0000 (17:52 +0200)]
gtk: add grab-keys-pressed signal

6 years agogtk: don't ungrab keyboard on focus-ous
Marc-André Lureau [Tue, 10 May 2011 15:44:05 +0000 (17:44 +0200)]
gtk: don't ungrab keyboard on focus-ous

Mainly to avoid the crazy loop:
focus-in > grab -> focus-out -> ungrab -> focus-in
on kde & gnome-shell.

6 years agogtk: keyboard handling improvements
Marc-André Lureau [Tue, 10 May 2011 15:25:22 +0000 (17:25 +0200)]
gtk: keyboard handling improvements

- spicy: disable accels/mnemonics when grabbed

6 years agogtk: extra check only compiled if !NDEBUG
Marc-André Lureau [Tue, 10 May 2011 14:19:26 +0000 (16:19 +0200)]
gtk: extra check only compiled if !NDEBUG

6 years agobuild: get rid of a useless warning
Marc-André Lureau [Mon, 9 May 2011 02:09:13 +0000 (04:09 +0200)]
build: get rid of a useless warning

6 years agogtk: return RGB -> BGRX color conversion for non-turbo jpeg
Marc-André Lureau [Mon, 9 May 2011 01:52:09 +0000 (03:52 +0200)]
gtk: return RGB -> BGRX color conversion for non-turbo jpeg

6 years agogtk: use faster jpeg decompression by default
Marc-André Lureau [Sun, 8 May 2011 17:00:17 +0000 (19:00 +0200)]
gtk: use faster jpeg decompression by default

6 years agogtk: warn if received invalid frame timestamp
Marc-André Lureau [Sat, 7 May 2011 12:02:02 +0000 (14:02 +0200)]
gtk: warn if received invalid frame timestamp

6 years agogtk: speed up mjpeg decompression
Marc-André Lureau [Sat, 7 May 2011 02:19:23 +0000 (04:19 +0200)]
gtk: speed up mjpeg decompression

Remove custom rgb->argb functions, and remove fancy post-proc (which I
don't think were applied, but we now do the same as spicec)

6 years agogtk: sync audio with gst backend
Marc-André Lureau [Fri, 6 May 2011 23:55:19 +0000 (01:55 +0200)]
gtk: sync audio with gst backend

6 years agobuild: update README with depedencies
Marc-André Lureau [Fri, 6 May 2011 19:24:34 +0000 (21:24 +0200)]
build: update README with depedencies

6 years agogtk: warn unsupported channel type with a description
Marc-André Lureau [Fri, 6 May 2011 19:02:51 +0000 (21:02 +0200)]
gtk: warn unsupported channel type with a description

6 years agogtk: adjust overall playback latency to 100ms
Marc-André Lureau [Fri, 6 May 2011 16:47:12 +0000 (18:47 +0200)]
gtk: adjust overall playback latency to 100ms

The previous parameters didn't adjust overall latency.  Adjusted to
100ms overall latency lower cpu load, and improve video flickering

(damn /me suck at PulseAudio client-side...)

6 years agogtk: fix SASL auth failed
Marc-André Lureau [Tue, 3 May 2011 20:04:26 +0000 (22:04 +0200)]
gtk: fix SASL auth failed

Signal correctly to the client that AUTH failed.

Before, we only had a IO error on channel disconnection.

6 years agoconfigure.ac: Use gtk+ 3.0 be default
Zeeshan Ali (Khattak) [Tue, 3 May 2011 13:21:43 +0000 (16:21 +0300)]
configure.ac: Use gtk+ 3.0 be default

Hi Zeeshan!!

6 years agoTODO: fix wrong mouse ungrabbing for dragndrop
Marc-André Lureau [Tue, 3 May 2011 14:56:42 +0000 (16:56 +0200)]
TODO: fix wrong mouse ungrabbing for dragndrop

6 years agoconfigure.ac: remove setting default C(XX)FLAGS 8
Christophe Fergeau [Wed, 27 Apr 2011 07:15:47 +0000 (09:15 +0200)]
configure.ac: remove setting default C(XX)FLAGS

automake/autoconf already set them for us to -g -O2 if there are
no flags defined.

6 years agoconfigure.ac: use AC_LANG_SOURCE
Christophe Fergeau [Wed, 27 Apr 2011 06:48:59 +0000 (08:48 +0200)]
configure.ac: use AC_LANG_SOURCE

Recent autoconf complains when AC_COMPILE_IFELSE is used without
using AC_LANG_SOURCE to generate the code snippet to compile. Add
the missing AC_LANG_SOURCE call to SPICE_CC_TRY_FLAG to make it
quiet.

6 years agoconfigure.ac rework introspection detection
Christophe Fergeau [Wed, 27 Apr 2011 06:28:08 +0000 (08:28 +0200)]
configure.ac rework introspection detection

When running autogen.sh without having gobject-introspection, this
should give a slightly nicer error message. It currently errors out
with
gtk/Makefile.am:450: HAVE_INTROSPECTION does not appear in AM_CONDITIONAL

After the patch the error will be
checking for GOBJECT_INTROSPECTION... yes
./configure: line 21307: syntax error near unexpected token `0.6.7'
./configure: line 21307: `GOBJECT_INTROSPECTION_CHECK(0.6.7)'

6 years agospicy: disable Ctrl+W/Close keyboard shortcut 7
Christophe Fergeau [Mon, 18 Apr 2011 08:52:32 +0000 (10:52 +0200)]
spicy: disable Ctrl+W/Close keyboard shortcut

The keyboard shortcut for the Close gtk action isn't disabled,
which leads to spicy closing when trying to use Ctrl+W in the guest.
All other problematic shortcuts are disabled, but in this case the
disabling was commented out. Reenable it to prevent people from
accidentally closing spicy when pressing ctrl+w

6 years agospicy: fix keyboard shortcuts in comments
Christophe Fergeau [Mon, 18 Apr 2011 08:47:33 +0000 (10:47 +0200)]
spicy: fix keyboard shortcuts in comments

The various action entries have a comment about the keyboard
shortcut that is being disabled. However, all these comments were
copied from the "Quit" action and were all referring to Ctrl-Q.
This commit puts the right keyboard shortcuts in the comments

6 years agospicy: remove non-needed keyboard shortcut disabling
Christophe Fergeau [Mon, 18 Apr 2011 08:50:20 +0000 (10:50 +0200)]
spicy: remove non-needed keyboard shortcut disabling

GTK_STOCK_CONNECT doesn't have an associated keyboard shortcut
so there is no need to explicitly disable it.

6 years agoNEWS: update for v0.6 v0.6
Marc-André Lureau [Fri, 15 Apr 2011 16:58:17 +0000 (18:58 +0200)]
NEWS: update for v0.6

6 years agoTODO: update
Marc-André Lureau [Fri, 15 Apr 2011 16:46:50 +0000 (18:46 +0200)]
TODO: update

6 years agogtk/display: move some RANDR code to X11 file
Marc-André Lureau [Fri, 15 Apr 2011 11:49:12 +0000 (13:49 +0200)]
gtk/display: move some RANDR code to X11 file

6 years agobuild: fix make distcheck
Marc-André Lureau [Fri, 15 Apr 2011 10:56:25 +0000 (12:56 +0200)]
build: fix make distcheck

6 years agoMerge commit 'refs/merge-requests/6' of git://gitorious.org/spice-gtk/spice-gtk into...
Marc-André Lureau [Wed, 13 Apr 2011 12:06:15 +0000 (14:06 +0200)]
Merge commit 'refs/merge-requests/6' of git://gitorious.org/spice-gtk/spice-gtk into merge-requests/6

6 years agogtk/map-file: fix spice_main_send_monitor_config function name
Marc-André Lureau [Wed, 13 Apr 2011 12:01:58 +0000 (14:01 +0200)]
gtk/map-file: fix spice_main_send_monitor_config function name

6 years agogtk/controller: fix build with non-default arguments
Marc-André Lureau [Mon, 11 Apr 2011 00:50:38 +0000 (02:50 +0200)]
gtk/controller: fix build with non-default arguments

6 years agogtk: fix "set but not used" gcc 4.6 warnings 6
Christophe Fergeau [Mon, 11 Apr 2011 09:26:31 +0000 (11:26 +0200)]
gtk: fix "set but not used" gcc 4.6 warnings

Since we are compiling with -Werror, this was breaking compilation.

6 years agopython_modules/codegen.py: fix indent error in an unused function
Alon Levy [Sat, 11 Dec 2010 13:55:19 +0000 (15:55 +0200)]
python_modules/codegen.py: fix indent error in an unused function

6 years agodemarshaller/marshaller fix gcc 4.6.0
Alon Levy [Mon, 24 Jan 2011 21:32:43 +0000 (23:32 +0200)]
demarshaller/marshaller fix gcc 4.6.0

python_modules/demarshal.py and marshal.py fixes for gcc 4.6.0
warning about set but unused variables. The fixes disable creating
of variables mem_size when they are not used (demarshall) and
declaring a src variable when the message doesn't use it (marshal).

You need to touch *.proto after applying this (should add a Makefile
dependency).

6 years agocodegen: avoid creating out if not used (fix gcc 4.6.0 warning)
Alon Levy [Mon, 24 Jan 2011 20:07:55 +0000 (22:07 +0200)]
codegen: avoid creating out if not used (fix gcc 4.6.0 warning)

6 years agomingw32 build: python_modules/marshal: use unsigned for for_loop index variable
Alon Levy [Mon, 6 Dec 2010 16:02:34 +0000 (18:02 +0200)]
mingw32 build: python_modules/marshal: use unsigned for for_loop index variable

6 years agogtk/spicy: do not show again toolbar when going full-screen, if mark received
Marc-André Lureau [Sun, 10 Apr 2011 15:03:21 +0000 (17:03 +0200)]
gtk/spicy: do not show again toolbar when going full-screen, if mark received

6 years agogtk: calling connect() on a connecting channel is fine
Marc-André Lureau [Sun, 10 Apr 2011 01:15:40 +0000 (03:15 +0200)]
gtk: calling connect() on a connecting channel is fine

This avoid problems where different display shares the same input
channel and try to connect two times.

6 years agogtk: allow to drag-and-drop between displays / windows
Marc-André Lureau [Sun, 10 Apr 2011 00:40:38 +0000 (02:40 +0200)]
gtk: allow to drag-and-drop between displays / windows

6 years agogtk/controller: install spice-controller library
Marc-André Lureau [Sat, 9 Apr 2011 22:46:47 +0000 (00:46 +0200)]
gtk/controller: install spice-controller library

6 years agocommon: fix build error of used uninitialized
Marc-André Lureau [Sat, 9 Apr 2011 15:38:06 +0000 (17:38 +0200)]
common: fix build error of used uninitialized

  CC     sw_canvas.lo
cc1: warnings being treated as errors
../common/sw_canvas.c: In function 'canvas_draw_text':
../common/sw_canvas.c:1037:16: error: 'pos.x' may be used uninitialized in this function
../common/sw_canvas.c:1037:16: error: 'pos.y' may be used uninitialized in this function
make[4]: *** [sw_canvas.lo] Error 1

6 years agoTODO: update
Marc-André Lureau [Fri, 8 Apr 2011 14:44:24 +0000 (16:44 +0200)]
TODO: update

6 years agobuild: fix gtk/controller/Makefile valac line which had custom.vapi
Marc-André Lureau [Fri, 8 Apr 2011 14:40:02 +0000 (16:40 +0200)]
build: fix gtk/controller/Makefile valac line which had custom.vapi

6 years agoMerge commit 'refs/merge-requests/5' of git://gitorious.org/spice-gtk/spice-gtk into...
Marc-André Lureau [Fri, 8 Apr 2011 14:06:17 +0000 (16:06 +0200)]
Merge commit 'refs/merge-requests/5' of git://gitorious.org/spice-gtk/spice-gtk into merge-requests/5

6 years agogtk: don't send MonitorConfig after agent start
Marc-André Lureau [Fri, 8 Apr 2011 13:56:06 +0000 (15:56 +0200)]
gtk: don't send MonitorConfig after agent start

We don't know yet what will be the guest previous configuration.

Ie, what should we send otherwise? Current hardware configuration?
This works badly with windowed mode, where we expect the same windows
to be displayed on reconnection.

6 years agogtk: introduce more complete spice_main_send_monitor_config()
Marc-André Lureau [Fri, 8 Apr 2011 11:35:10 +0000 (13:35 +0200)]
gtk: introduce more complete spice_main_send_monitor_config()

Since it's unclear yet how MonitorConfig should be used depending on
use case (full-screen vs windowed) we prefer to make a public api so
that the client implementation can send it when it is the most
appropriate time.

6 years agogtk: add disable-display-position
Marc-André Lureau [Fri, 8 Apr 2011 11:31:02 +0000 (13:31 +0200)]
gtk: add disable-display-position

6 years agogtk: remove unnecessary invalidate mark signal
Marc-André Lureau [Fri, 8 Apr 2011 11:28:46 +0000 (13:28 +0200)]
gtk: remove unnecessary invalidate mark signal

6 years agogtk: send FALSE mark when destroying the primary surface after 1s...
Marc-André Lureau [Thu, 7 Apr 2011 12:55:09 +0000 (14:55 +0200)]
gtk: send FALSE mark when destroying the primary surface after 1s...

This is similar to what is done in spicec.

6 years agogtk: hide the cursor after setting it
Marc-André Lureau [Thu, 7 Apr 2011 12:52:51 +0000 (14:52 +0200)]
gtk: hide the cursor after setting it

So that when we move the cursor again, we can show the right one

6 years agogtk/spicy: hide the display if mark is FALSE
Marc-André Lureau [Thu, 7 Apr 2011 12:51:56 +0000 (14:51 +0200)]
gtk/spicy: hide the display if mark is FALSE

6 years agogtk/spicy: update status of all windows
Marc-André Lureau [Thu, 7 Apr 2011 12:51:33 +0000 (14:51 +0200)]
gtk/spicy: update status of all windows

6 years agogtk/spicy: only show window when we receive the mark
Marc-André Lureau [Wed, 6 Apr 2011 12:29:04 +0000 (14:29 +0200)]
gtk/spicy: only show window when we receive the mark

6 years agogtk: not having a window is not critical, if the widget is not yet shown
Marc-André Lureau [Wed, 6 Apr 2011 12:16:49 +0000 (14:16 +0200)]
gtk: not having a window is not critical, if the widget is not yet shown

6 years agogtk: fixup clipboard_by_guest tracking
Hans de Goede [Wed, 6 Apr 2011 10:02:03 +0000 (12:02 +0200)]
gtk: fixup clipboard_by_guest tracking

clipboard_by_guest tracking was used more or less for 2 things, to keep track
if the agent has clipboard data ready to send, and to see if we have done a
clipboard_set_with_data on behalf of the guest agent.

This patch splits the tracking of the 2, fixing several issues:
1) spice_display_paste_from_guest would not work if since receiving
   the grab from the agent some other app has copied something to
   the client clipboard.
2) We would do a clipboard_clear unconditionally even if we were
   not the clipboard owner in the client (iow some other app has
   done a clipboard_set_with_data since out last one).

This patch changes the meaning of the clipboard_by_guest boolean to just
track if we've done a clipboard_set_with_data on behalf of the guest
and are the last one to have a done a clipboard_set_with_data (iow we are the
client os' clipboard owner). It adds a checks to clipboard_release to
only call clipboard_clear if we are the current ownerm fixing 1).

This patch uses nclip_targets to keep track of the agent having data
available which we could paste, fixing 2).

6 years agogtk: Clear hasdata when we do a clipboard_set_with_data
Hans de Goede [Wed, 6 Apr 2011 10:02:02 +0000 (12:02 +0200)]
gtk: Clear hasdata when we do a clipboard_set_with_data

When we call gtk_clipboard_set_with_data to set the client clipboard
to the targets reported as available by the agent, the clipboard no
longer has data in the sense that it has data which is interesting
for spice_display_copy_to_guest, so clear clip_hasdata whenever we
call gtk_clipboard_set_with_data,

6 years agogtk: receiving a grab from the agent implies releasing our own
Hans de Goede [Wed, 6 Apr 2011 10:02:01 +0000 (12:02 +0200)]
gtk: receiving a grab from the agent implies releasing our own

By setting d->clip_grabbed[selection] to FALSE when we receive a grab from
the agent, we can remove the weird "if (!d->clipboard_by_guest[selection])"
check from clipboard_owner_change, and we fix spice_display_copy_to_guest not
working in the following case:
1) autoclipboard share disabled
2) Copy something to the clipboard in the client
3) Send it to the guest by calling spice_display_copy_to_guest
4) Copy something to the clipboard in the guest
5) Tried to send the client clipboard to the guest again by calling
   spice_display_copy_to_guest (again).

5) would not work because d->clip_grabbed[selection] would still be true in
spice-gtk's view, where as the agent no longer sees the clipboard as grabbed
by the client since it send a grab itself.

6 years agogtk: use a separate var to keep track of self caused new clipboard owner events
Hans de Goede [Wed, 6 Apr 2011 10:02:00 +0000 (12:02 +0200)]
gtk: use a separate var to keep track of self caused new clipboard owner events

Also change 0/1 to FALSE/TRUE in touched code. spice-widget seems to be
using all 3 of: 0/1 false/true and FALSE/TRUE for booleans. The glib convention
is FALSE/TRUE.

6 years agogtk: take selection into account in clipboard_release
Hans de Goede [Tue, 5 Apr 2011 14:26:14 +0000 (16:26 +0200)]
gtk: take selection into account in clipboard_release

6 years agogtk: only release clipboard when neither guest nor client own it
Marc-André Lureau [Tue, 5 Apr 2011 14:49:34 +0000 (16:49 +0200)]
gtk: only release clipboard when neither guest nor client own it

08:55 < hansg> elmarco, this is from vdagent.log with debugging enabled. What is happening is that the last thing done was a primary
               selection in the client, so vdagent owns the clipboard in the guest (on behalf of spice-gtk), then something gets selected
               inside the guest, the agent sends a grab to spice-gtk, which then does a gtk_clipboard_set_with_data, this triggers an
               clipboard_owner_change which sends a release message to the agent
08:56 < hansg> To which the agent then responds by dropping it, and logging:
08:56 < hansg> primary: received release while not owning client clipboard
09:11 < elmarco> hansg: but this bug we are talking about is not related to multi-clipboard right?
09:11 < elmarco> and it's only a warning in vdagent, things works as expected otherwise, right?
09:11 < elmarco> the bug was thee before I suppose
09:12 < hansg> right, they work because vdagent is diligent and sees the client sends a release while it is not owning the clipboard. The
               diligence is mainly there in case things race though (release on client racing with a grab on guest), not to make things
               work with buggy clients :)
09:13 < hansg> wrt: <elmarco> hansg: d->clip_grabbed is only for client-side grab, iirc
09:13 < elmarco> ok, I think it's just an obscure area of the spec, where basically, we don't define exactly the "state machine"
09:13 < elmarco> so the client is releasing his last client-side grab, because he had one before, but now, it is a guest grab
09:13 < hansg> True (not exactly definging the state machine)
09:14 < hansg> So to try again wrt the  d->clip_grabbed, what happens there (which has the same cause) is:
09:14 < elmarco> so, what it should do is just don't release the clipboard if it is switching from client-side to guest
09:15 < hansg> gtk/spice-widget.c: clipboard_grab gets called, and does:
09:15 < hansg> Hmm, hold on, I see what you mean wrt d->clip_grabbed now
09:16 < elmarco> to me, it looks like the client made a grab and to complete it's cycle, it should release his grab
09:16 < elmarco> but the order of things confuse vdagent and we should agree on something and document it
09:18 < hansg> elmarco, I need some time to take a somewhat closer look at the spice-gtk code in this area, give me 1/2 an hour and I'l
               get back to you
09:20 < elmarco> from client 1. grab -> 2. grab <- 3. release -> or 1. grab -> 2. grab <- 3. no release
09:21 < elmarco> I think state should not be mixed between client grab / release -> and guest grab/release <-
09:22 < elmarco> so, overriding client grab by guest grab should release client grab
09:23 < hansg> spicec and the linux agent both assume that after sending a grab they won't get back a release (for that selection). The
               purpose of the release is to tell the OS that the agent resp,  client no longer own the clipboard (by setting the owner to
               None under X11), so that other apps can disable their paste menu item, etc. There is no need to do that (and actually
               doing so would be a bug) if an other app now owns the clipboard. So if the other side claim
09:23 < hansg> s ownership of the clipboard there is no need to tell it you're releasing your side, since it already assume you have
09:24 < hansg> Scenarios to keep in mind are:
09:24 < hansg> Seen from the client side:
09:28 < hansg> client grabs clipboard
09:28 < hansg> some app on guest becomes owner, guest sends grab, assume client release
09:29 < hansg> some app on guest asks agent for clipboard data -> tells it to go away since the client no longer the owner
09:29 < hansg> If it would not assume the release, there would be a window where it would think the client still owns the clipboard and
               forward potential request to the client, even though the client no longer owns the clipboard
09:30 < hansg> The thing to keep in mind is that the delivery of messages is not instant, so there is some window where the 2 sides are
               out of sync.
09:30 < hansg> I can see the logic in how you're advocating to do things, but that is not how they are currently done and I'm reluctant
               to change this
09:33 < elmarco> hansg: yeah, I don't think one solution or the other affect user experience, for me there is no gap if the client and
                 agent agrees, it's only protocol/implementation details
09:33 < elmarco> since there was prior implementation, we can decide to follow it

6 years agogtk: fix multi-head support by sync the display cache
Marc-André Lureau [Mon, 4 Apr 2011 11:11:23 +0000 (13:11 +0200)]
gtk: fix multi-head support by sync the display cache

An image may come later from a different channel, even if it is referenced by another image.

6 years agogtk: add some debugging in glz decoder and avoid crashes
Marc-André Lureau [Mon, 4 Apr 2011 11:09:39 +0000 (13:09 +0200)]
gtk: add some debugging in glz decoder and avoid crashes

6 years agogtk: display now use the cache from the session
Marc-André Lureau [Mon, 4 Apr 2011 11:07:06 +0000 (13:07 +0200)]
gtk: display now use the cache from the session

6 years agogtk: the caches are shared with the session
Marc-André Lureau [Sun, 3 Apr 2011 14:42:56 +0000 (16:42 +0200)]
gtk: the caches are shared with the session

6 years agocommon: get rid of abort() in canvases
Marc-André Lureau [Sun, 3 Apr 2011 13:49:36 +0000 (15:49 +0200)]
common: get rid of abort() in canvases

6 years agocommon: remove unnecessary outdated c++ debug
Marc-André Lureau [Sun, 3 Apr 2011 00:29:14 +0000 (02:29 +0200)]
common: remove unnecessary outdated c++ debug

6 years agoconfigure.ac: remove detection of WARN_UNUSED_RESULT 5
Christophe Fergeau [Fri, 1 Apr 2011 14:54:16 +0000 (16:54 +0200)]
configure.ac: remove detection of WARN_UNUSED_RESULT

spice-gtk configure.ac has some code to detect if the compiler has
a special attribute to tag some functions so that they generate a
warning when their return value isn't checked. However, this test
is broken (the gcc attribute name is "warn_unused_result", not
"__warn_unused_result__" and WARN_UNUSED_RESULT is unused anyway
since spice-protocol provides SPICE_GNUC_WARN_UNUSED_RESULT. Thus
we can just drop that block of code from configure.ac

6 years agoadding THANKS
Marc-André Lureau [Fri, 1 Apr 2011 14:11:03 +0000 (16:11 +0200)]
adding THANKS

6 years agoconfigure.ac: remove unused tests 4
Christophe Fergeau [Fri, 1 Apr 2011 13:42:17 +0000 (15:42 +0200)]
configure.ac: remove unused tests

configure.ac had -fvisibility detection, but it's not used by
spice-gtk. It also has a --enable-static-linkage flag which isn't
used anywhere apart from in configure.ac, so remote this too. I
think the same effect as --enable-static-linkage can be achieved
using make LDFLAGS="-all-static" since we are using libtool.

6 years agogtk: correct CLIPBOARD_LAST so that array are sized correctly
Marc-André Lureau [Thu, 31 Mar 2011 19:51:49 +0000 (21:51 +0200)]
gtk: correct CLIPBOARD_LAST so that array are sized correctly

6 years agogtk: show cursor when cursor-move
Marc-André Lureau [Thu, 31 Mar 2011 18:15:54 +0000 (20:15 +0200)]
gtk: show cursor when cursor-move

6 years agogtk: fix handling of incoming large clipboard data
Marc-André Lureau [Thu, 31 Mar 2011 18:13:49 +0000 (20:13 +0200)]
gtk: fix handling of incoming large clipboard data

The main fix was probably the agent_msg_pos guin8 -> guint, although I
modified the code for more clarity

6 years agogtk: multi-clipboard improvements
Marc-André Lureau [Thu, 31 Mar 2011 12:02:05 +0000 (14:02 +0200)]
gtk: multi-clipboard improvements

6 years agobuild: fix make dist
Marc-André Lureau [Wed, 30 Mar 2011 17:14:53 +0000 (19:14 +0200)]
build: fix make dist

6 years agogtk/controller: add XPI controller code
Marc-André Lureau [Wed, 30 Mar 2011 15:54:43 +0000 (17:54 +0200)]
gtk/controller: add XPI controller code

6 years agobuild: provide a conditional for WIN32
Marc-André Lureau [Wed, 30 Mar 2011 15:29:56 +0000 (17:29 +0200)]
build: provide a conditional for WIN32

6 years agobuild fixup
Marc-André Lureau [Wed, 30 Mar 2011 15:29:42 +0000 (17:29 +0200)]
build fixup

6 years agobuild: install spice-protocol.vapi
Marc-André Lureau [Wed, 30 Mar 2011 15:06:45 +0000 (17:06 +0200)]
build: install spice-protocol.vapi

6 years agobuild: check for vala if necessary
Marc-André Lureau [Wed, 30 Mar 2011 15:07:39 +0000 (17:07 +0200)]
build: check for vala if necessary

6 years agogtk: remove some debugging, update TODO
Marc-André Lureau [Mon, 28 Mar 2011 15:23:04 +0000 (17:23 +0200)]
gtk: remove some debugging, update TODO