summaryrefslogtreecommitdiffstats
path: root/client/x11
Commit message (Collapse)AuthorAgeFilesLines
...
* client: support clipboard/selection-owner model (v2)Arnon Gilboa2010-10-012-125/+266
| | | | | | | | | | | | | | | | | | | | | | | | | -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-291-0/+9
|
* client: Include config.h from common.hAlexander Larsson2010-09-292-2/+0
| | | | | 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
|
* 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: 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: add clipboard supportArnon Gilboa2010-07-191-10/+264
| | | | | | | | * 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-191-4/+4
|
* Make tunnel support optional in client tooAlexander Larsson2010-07-081-3/+12
|
* Make distcheck workAlexander Larsson2010-07-081-0/+1
|
* Make CEGUI optionalAlon Levy2010-07-011-2/+10
| | | | | This makes the CEGUI dependency optional and off by default. Restoring previous behaviour of exiting on disconnect if disabled.
* Replace log4cpp with custom log functionAlexander Larsson2010-06-283-3/+2
| | | | | Also prints a simpler error to stderr for WARN or above so that we print something on the commandline if something go wrong.
* Generate marshaller/demarshallers for old protocolAlexander Larsson2010-06-221-0/+2
|
* Convert client to use indirect calls for message marshallingAlexander Larsson2010-06-221-1/+1
| | | | This is required to support multiple versions
* applying zlib compression over glz on WAN connectionYonit Halperin2010-06-211-0/+3
|
* Make opengl optional, disabled by defaultAlexander Larsson2010-06-217-30/+99
| | | | | | | | | | The OpenGL renderer isn't really useful right now, its not quite up to date, its not really faster than software and it only supports a limited subset of drivers. So, lets disable it for now. Long term opengl rendering of the 2d part of spice is important if we want to combine 2d and 3d rendering (say if spice adds opengl support in the protocol). But until then this is isn't useful for normal use.
* Generate and link marshallers into clientAlexander Larsson2010-06-181-0/+3
|
* Client: Use the autogenerated demarshallersAlexander Larsson2010-06-181-1/+2
| | | | | | | | | | | | | | | | When a message has been read from the network we now pass it into the generated demarshaller for the channel. The demarshaller converts the network data to in-memory structures that is passed on to the spice internals. Additionally it also: * Converts endianness * Validates sizes of message and any pointers in it * Localizes offsets (converts them to pointers) * Checks for zero offsets in messages where they are not supported Some of this was previously done using custom code in the client, this is now removed.
* JPEG support: introducing jpeg encoding for spice bitmapsYonit Halperin2010-06-091-0/+2
|
* Fix spelling errors in comments and stringsAlexander Larsson2010-05-214-7/+7
|
* Remove all mentions of "cairo" from the codeAlexander Larsson2010-05-032-14/+14
| | | | | The command line option is renamed from "cairo" to "sw", and similarly all filenames and types from Cairo to Sw (and similar).
* fix two warningsGerd Hoffmann2010-04-261-1/+1
|
* Client: Support pixmap format conversion in copy_pixelsAlexander Larsson2010-04-235-240/+170
| | | | | | | | | | | | | | | | | | | | | | In order to be able to support 16bit canvases on 32bit screens and 32bit canvases on 16bit screens we need to handle format conversion when drawing RedPixmaps. The way this works now for X11 is that we only have one PIXELS_SOURCE_TYPE for pixmaps, which always has a pixman_image_t for the data, but additionally it has an XImage (shared mem or not) if the screen the pixmap was created for (i.e. an explicit one or the default screen) has the same format as the pixmap. When we draw a pixmap on a drawable we have two variants. If the pixmap has a XImage and it matches the format of the target drawable then we just X(Shm)PutImage it to the drawable. If the formats differ, then we create a temporary XImage and convert into that before drawing it to the screen. Right now this is a bit inefficient, because we always allocate a new temporary image when converting. We want to add some caching here, but at least this lets things work again.
* X11 client: Add helper for XImage constructionAlexander Larsson2010-04-232-4/+47
|
* Add utility functions to create XShm imagesAlexander Larsson2010-04-232-0/+83
|
* Add RedDrawable::Format get_format()Alexander Larsson2010-04-231-0/+5
| | | | | This is useful because we can e.g. create pixmaps in the same format as a window.
* Add XPlatform::get_screen_format for X11Alexander Larsson2010-04-232-0/+30
|
* Move RedPixmap::Format to RedDrawable::FormatAlexander Larsson2010-04-231-2/+2
| | | | | | | | We need to know the format for other drawables too (like for instance the native format of a window), so we're pushing this down. This changes a bunch of references to be RedDrawable::, but not all. The the old RedPixmap:: references still work, but will be phased out.
* Make client canvas and pixmaps handle more formats and simplifyAlexander Larsson2010-04-233-23/+11
| | | | | | | | | | | We now support 16bit format pixmaps as well as the old ones. Including both 555 and 565 modes. We drop the palette argument for pixmap construction as it was only used for black/white anyway. Canvas creation is simplified so that there is no separate set_mode state. Canvases are already created in the right mode and never change.
* Add emacs modelines to more filesAlexander Larsson2010-04-231-0/+1
|
* Make client start if screen is 16bppAlexander Larsson2010-04-231-9/+18
| | | | | | | | | The current glx code is looking for a rgb32 visual and always failing if there is none. This means not even software rendering starts up on e.g. 16bit visuals. This commit makes it pick software fallbacks on 16bit visuals. Long term we need to fix the gl implementation to do 16bpp too.
* Client: Don't die if XIM not availibleAlexander Larsson2010-04-232-27/+40
|
* Detect XShm extension sanelyAlexander Larsson2010-04-231-6/+4
| | | | | | The previous way XShm detection worked failed at least for me, and is not the standard way. We now just use XShmQueryExtension and XShmQueryVersion.
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-1327-243/+243
|
* Fix A1 handling in RedDrawable combine_pixels.Alexander Larsson2010-04-131-23/+18
| | | | | The previous code was just busted, as apparent on e.g. the cursor in MS Paint.
* Use libjpeg to decode mjpegs, not ffmpegAlexander Larsson2010-04-081-8/+8
| | | | | | | | | | | | | | | | | | This is pretty straightforward, although there are two weird issues. The current encoder has two bugs in the yuv conversion. First of all it switches red and blue, due to something of an endianness issue. We keep this behavior by switching red and blue. Maybe we want to change this in the new protocol version since switching this may cause jpeg compression to be worse. Secondly, the old coder/decoder did rgb to/from yuv420 wrongly for jpeg, not using the "full scale" version of Y that is used in jpeg, but the other one where y goes from 16 to 235. (See jpeg/jfif reference on http://en.wikipedia.org/wiki/YCbCr for details.) The new decoder uses the full range in order to get better quality, which means old encoders will show slightly darker images. This completely removes all ffmpeg usage in the client
* client: x11: fix a crash caused by a call to a destroyed window.Yonit Halperin2010-04-032-4/+10
| | | | | Happens when a focused window is destroyed without a focus out event, and a focus-in event occurs on another window.
* configure.ac: client: replace $(top_srcdir) in x11/Makefile.am (subdir config)Alexander Larsson2010-03-241-89/+92
| | | | | | | | Replace all "$(top_srcdir)/common" with "$(SPICE_COMMON_DIR)" and all "$(top_srcdir)/client" with custom "$(CLIENTDIR)" This would (after following patches) enables building the client from either spice/ (top directory) or spice/client.
* Explicitly depend on various X libraries, and -pthreadSøren Sandmann Pedersen2010-03-111-1/+5
| | | | | | | | In Fedora 13, the linker doesn't pull in DT_NEEDED libraries anymore, so we have to list the things that we depend on explicitly. This affects several X extension libraries, and also the pthread library.
* New memory allocators that exit on OOM and handle multiplication overflowAlexander Larsson2010-03-111-0/+1
| | | | | | | | | Every place that does a regular malloc/calloc and aborts on failure should use spice_malloc/spice_mallo0 instead, which is leaner and cleaner. Allocations of dynamically sized arrays can use g_malloc_n or g_new etc which correctly handle multiplication overflow if some of the arguments are not trusted.
* Define __STDC_LIMIT_MACROS for c++ code to get SIZE_MAXAlexander Larsson2010-03-101-0/+1
| | | | | We need SIZE_MAX for the malloc overflow code, and its not defined in C++ unless __STDC_LIMIT_MACROS is defined.
* Define GL_GLEXT_PROTOTYPES in CFLAGS not in random places in the sourceAlexander Larsson2010-03-104-5/+0
|
* Use macros from <spice/macros.h> rather than duplicate themAlexander Larsson2010-03-091-1/+1
|
* Remove qcairo dependency, only use pixmanAlexander Larsson2010-02-231-2/+2
|