summaryrefslogtreecommitdiffstats
path: root/client
Commit message (Collapse)AuthorAgeFilesLines
...
* spicec-x11: Request targets from new clipboard ownerHans de Goede2010-10-041-123/+240
| | | | | | | | | | | | | | | Request targets from new clipboard owner, rather then assuming UTF-8 (not entirely complete yet, the last pieces will be in another patch). Atleast as important this code unifies the selection getting code for incr and non incr getting of selection data so that it can be used for both getting regular selection data and for getting targets selection data. This also fixes a big bug in the (I believe untested sofar) incr support code which was interpreting the contents of PropertyNotify events as XSelectionEvents rather then as XpropertyEvents which are completely differen structs!
* spicec-x11: remove clipboard_changer hackHans de Goede2010-10-031-19/+21
| | | | | | | Instead of keeping a flag, we can and should simply check wether the new owner reported in the event it us or not. Also check for the new owner being none and send a clipboard_release when that is the case (through set_clipboard_owner(owner_none)).
* Keep track of clipboard ownershipHans de Goede2010-10-025-0/+73
| | | | | | | | | | | | | Given that all clipboard handling is async, it is possible to for example receive a request for clipboard data from the agent while the client no longer owns the clipboard (ie a VD_AGENT_CLIPBOARD_RELEASE message is in transit to the agent). Thus it is necessary to keep track of our notion of clipboard ownership and check received clipboard messages (both from other apps on the client machine and from the agent) to see if they match our notion and if not drop, or in case were a counter message is expected nack the clipboard message.
* Rename platform clipboard handling functionsHans de Goede2010-10-024-16/+16
| | | | | | | | | | Rename the 4 platform clipboard functions which get called upon receival of an agent clipboard message to on_clipboard_* The old set_clipboard_* names were confusing as they suggest being a class property setter (like set_event_listener) rather then event handler, and set_clipboard_owner was causing a name conflict with the next patch in this series.
* Move checking for on demand clipboard cap closer to sending of agent messagesHans de Goede2010-10-021-8/+10
| | | | | | | | | | This way the events will always get generated and other things (such as clipboard ownership administration, see the next patches) can be done in repsonse to the events, even though no message will be send. This patch also removes the !_agent_caps check from the capability checks, this is not needed as VD_AGENT_HAS_CAPABILITY checks _agent_caps_size which will be 0 when _agent_caps is NULL.
* Respond to clipb request with an unsupported type with data with a none typeHans de Goede2010-10-011-1/+1
| | | | | | | | | Currently we send a VD_AGENT_CLIPBOARD_RELEASE when we receive a VD_AGENT_CLIPBOARD_REQUEST with a type which we do not support. This is not correct, as this means given up clipboard ownership while we may be able to answer requests with different types. The correct response is to nack the request by sending a VD_AGENT_CLIPBOARD (data) message with a type of VD_AGENT_CLIPBOARD_NONE.
* Change VD_AGENT_CLIPBOARD_GRAB to an array of typesHans de Goede2010-10-015-20/+34
| | | | | | | A clipboard owner can indicate that it can supply the data the clipboard owns in multiple formats, so make the data passed with a VD_AGENT_CLIPBOARD_GRAB message an array of types rather then a single type.
* Call intern_atoms() earlierHans de Goede2010-10-011-2/+2
| | | | | We call XFixesSelectSelectionInput with the clipboard_atom, so we musr initialize the atoms before calling XFixesSelectSelectionInput.
* Set clipboard_event before calling send_selection_notifyHans de Goede2010-10-011-1/+1
| | | | | send_selection_notify used the clipboard_event, so set it before calling send_selection_notify.
* wrap XGetAtomNameHans de Goede2010-10-011-1/+9
| | | | | XGetAtomName() throws X11 errors when called on a None atom, so wrap it catching the None case.
* client: support clipboard/selection-owner model (v2)Arnon Gilboa2010-10-018-265/+600
| | | | | | | | | | | | | | | | | | | | | | | | | -includes most of Hans' review fixes (up to the SelectionRequest comment [4]) & X11 wips sent by Hans (10x!) -use the VD_AGENT_CLIPBOARD_* types in the platform code -add ifs for VD_AGENT_CAP_CLIPBOARD_BY_DEMAND in both sides -support the GRAB/REQUEST/DATA/RELEASE verbs in both ways -pasting clipboard data is now "only-by-demand" from both sides (client and agent), whose behavior is symmetric -client and agent don't read or send the contents of the clipboard unnecessarily (e.g. copy, internal paste, repeating paste, focus change) -set client as clipboard listener instead of application -add atexit(cleanup) in win platform linux: -instead of clipboard atom selection instead of XA_PRIMARY -enable USE_XRANDR_1_2 and support clipboard in MultyMonScreen -send utf8 with no null termination, remove ++size -add xfixes in configure.ac & Makefile.am windows: -bonus: support image cut & paste, currently only on windows not done yet: -clipboards formats are still uint32_t, not mime types stores as strings -platform_win is still used, not the root window -not replaced the ugly windows CF_DIB in agent/winclient
* client: Avoid crash if platform_win is NULLAlexander Larsson2010-09-291-2/+6
| | | | | This is a temporary fix as this will be fixed for real when the cut and paste patches land.
* client: Re-enable USE_XRANDR_1_2Alexander Larsson2010-09-291-1/+1
| | | | This was disabled by mistake before.
* client: Don't hardcode -lrtAlexander Larsson2010-09-291-2/+1
| | | | | -lrt is already included in SPICE_NONPKGCONFIG_LIBS if needed so no need to add it to the command line manually.
* client: Fall back to gettimeofday if clock_gettime not foundAlexander Larsson2010-09-292-1/+18
|
* client: Include config.h from common.hAlexander Larsson2010-09-295-10/+4
| | | | | config.h should be availible everywhere, so move its inclusion to the top of common.h.
* client: Check for pthread yield function using autoconfAlexander Larsson2010-09-291-1/+1
|
* client: Include stdint.h for uint32_tAlexander Larsson2010-09-291-0/+2
|
* client: Don't use basename for argv[0] in --help outputAlexander Larsson2010-09-291-17/+1
| | | | | This isn't what other apps do, and it had issues in the OSX port, so just remove this.
* Fix warning from OSX compilerAlexander Larsson2010-09-291-4/+1
| | | | | The OSX compiler warns about uninitialized variable, so we change a bit how size is initialized.
* spicec-x11: Fix going into a never ending loop upon xrandr event (#628573) (v2)Hans de Goede2010-09-091-0/+10
| | | | | | | | | | | | | When handling an xrandr event the event_listener->on_monitors_change() callback destroys and re-creates the monitor object(s) which results in the DynamicScreen or MultyMonconstructor being called, which triggers more xrandr events. This causes a never ending event handling loop making spicec hang, and eventually making the X-server crash as a backlog of events builds up and it oom's. This patches this by explictly processing the xrandr event caused by the constructor inside the constructor surrounded by the already present guard code against recursive xrandr events.
* client: add default agent capabilitiesAlon Levy2010-08-311-0/+11
|
* client: add announce_capabilitiesAlon Levy2010-08-312-4/+70
|
* client: Handle async errors from xshm setupAlexander Larsson2010-08-251-0/+28
| | | | | XShmAttach can fail asynchronously, so we need to check the errors in the x error handler during the XSync.
* client: Don't leak xshm segmentsAlexander Larsson2010-08-241-0/+8
|
* Don't try xshm any more if it fails for a permanent reasonAlexander Larsson2010-08-241-0/+16
| | | | This is copied from how Gtk+ detects Xshm failures.
* client: Fix for clipboard sending; It wasn't thread safe.Yonit Halperin2010-08-232-5/+27
|
* client: fix - exit on bad display-effect argumentYonit Halperin2010-08-231-0/+2
|
* client: Application::get_screen: fix double SpicePoint size, second hiding ↵Alon Levy2010-07-291-1/+1
| | | | the first
* add eol after #ifdef in jpeg_encoder.h for n900 scratchbox compilerAlon Levy2010-07-291-1/+2
|
* Swap red and blue when decoding 0.4 mjpeg streamsAlexander Larsson2010-07-203-12/+22
| | | | | | There was an error in how this was encoded in 0.4, which we need to handle. There is still some issues with the old streams as the luminocity handling in 0.4 was not correct.
* Don't send padding over the network with video dataAlexander Larsson2010-07-201-5/+4
|
* codegen: Various cleanupsAlexander Larsson2010-07-193-28/+23
| | | | | | | | | | | | Remove all uses of @end in the marshaller, instead just using the C struct array-at-end-of-struct. To make this work we also remove all use of @end for switches (making them C unions). We drop the zero member of the notify message so that we can avoid this use of @end for a primitive in the marshaller (plus its useless to send over the wire). We change the offsets and stuff in the migration messages to real pointers.
* client: add clipboard supportArnon Gilboa2010-07-197-11/+476
| | | | | | | | * windows - untested * linux - small strings both ways, large implemented differently: * client to guest - support INCR * guest to client - we supply a single possibly very large property * requires server changes in next patch to work with spice-vmc
* fix typo DisplayModeListner -> DisplayModeListenerAlon Levy2010-07-194-10/+10
|
* client: command line arguments for setting windows guest monitors'Yonit Halperin2010-07-194-7/+157
| | | | color depth and disabling some display options (helpful on WAN)
* Disable tunnel by default on windowsAlexander Larsson2010-07-081-8/+0
|
* Make tunnel support optional in client tooAlexander Larsson2010-07-082-3/+16
|
* Make distcheck workAlexander Larsson2010-07-084-3/+73
|
* Fix various misspellingsAlexander Larsson2010-07-088-42/+42
| | | | | | | | | | | | | letancy -> latency compund -> compound SpicedSubMessage -> SpiceSubMessage modifaiers -> modifiers massage -> message outgoiong -> outgoing AlphaBlnd -> AlphaBlend remoth -> remote modifires -> modifiers secore -> secure
* Fix inclusion of common files, no need for common/ partAlexander Larsson2010-07-082-2/+2
|
* Remove unused method declarationsAlexander Larsson2010-07-081-5/+0
|
* Move in spice/draw.h from spice-protocol to common/Alexander Larsson2010-07-083-5/+2
|
* Make CEGUI optionalAlon Levy2010-07-016-43/+122
| | | | | This makes the CEGUI dependency optional and off by default. Restoring previous behaviour of exiting on disconnect if disabled.
* client: Use ASSERT, not assertAlexander Larsson2010-07-011-1/+1
|
* Update client and protocol to support the new SpiceClipRectsAlexander Larsson2010-06-301-3/+2
|
* client: add --include "common.h" for generated marshallersYonit Halperin2010-06-293-4/+4
|
* fixed unhandled destroy screen in Application:restore_screens_sizeYonit Halperin2010-06-291-1/+1
|
* detaching the screen when the primary surface is destoryed and closing the ↵Yonit Halperin2010-06-292-10/+16
| | | | window if the primary surface is not recreated (the monitor has been detached).
* Replace log4cpp with custom log functionAlexander Larsson2010-06-289-65/+102
| | | | | Also prints a simpler error to stderr for WARN or above so that we print something on the commandline if something go wrong.