summaryrefslogtreecommitdiffstats
path: root/client/x11/platform.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* client: support clipboard/selection-owner model (v2)Arnon Gilboa2010-10-011-125/+264
| | | | | | | | | | | | | | | | | | | | | | | | | -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: Fall back to gettimeofday if clock_gettime not foundAlexander Larsson2010-09-291-0/+9
|
* client: Include config.h from common.hAlexander Larsson2010-09-291-1/+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
|
* 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
|
* Replace log4cpp with custom log functionAlexander Larsson2010-06-281-0/+1
| | | | | Also prints a simpler error to stderr for WARN or above so that we print something on the commandline if something go wrong.
* Make opengl optional, disabled by defaultAlexander Larsson2010-06-211-3/+15
| | | | | | | | | | 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.
* Fix spelling errors in comments and stringsAlexander Larsson2010-05-211-3/+3
|
* fix two warningsGerd Hoffmann2010-04-261-1/+1
|
* X11 client: Add helper for XImage constructionAlexander Larsson2010-04-231-4/+43
|
* Add utility functions to create XShm imagesAlexander Larsson2010-04-231-0/+77
|
* Add XPlatform::get_screen_format for X11Alexander Larsson2010-04-231-0/+26
|
* 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-231-1/+1
|
* 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-131-9/+9
|
* Rename symbols that were changed in spice-protocolAlexander Larsson2010-02-041-104/+104
| | | | | | This is an automatic change using: $ find -name "*.[ch]" | xargs ../spice-protocol/rename-identifiers.sh ../spice-protocol/renames $ find -name "*.cpp" | xargs ../spice-protocol/rename-identifiers.sh ../spice-protocol/renames
* Filter out XIM X eventsAlexander Larsson2010-02-041-0/+4
| | | | | | XIM ClientMessage events to an XIM internal window was triggering the check for a window message procs. We need to properly filter events with XFilterEvent to avoid this happening.
* client: add Platform::term_printfYaniv Kamay2010-01-111-0/+8
| | | | | | Platform::term_printf is a variant of printf that on windows dynamically opens console in order to have visible output during command line processing.
* client: fix logger init mix-upYaniv Kamay2010-01-111-1/+7
|
* client: move log file to spicec appdata dirYaniv Kamay2010-01-111-5/+14
|
* server,client: server authentication for secured channels.Yonit Halperin2010-01-111-0/+14
| | | | | | | | | 3 available mechanisms: by public key, by host name, and by certificate subject name. In the former method, chain of trust verification is not performed. The CA certificate files are looked for under <spice-config-dir>/spice_truststore.pem windows <spice-config-dir>=%APPDATA%\spicec\ linux <spice-config-dir>=$HOME/.spicec/
* spice: position mouse in primary monitor center after full screen toggleArnon Gilboa2009-12-301-15/+42
| | | | | | | -move _focused & _pointer_in_window from RedWindow to RedWindow_p's -move shadow focus & cursor handling to sync() -add reset_cursor_pos() to Platform -Monitor set_mode()/restore() use virtual do_set_mode()/do_restore()
* client: add GUI infrastructure + functional login dialogYaniv Kamay2009-12-281-0/+9
|
* spice: client: add checks to see if it is safe to use XShem.Izik Eidus2009-12-221-0/+17
| | | | | | | | Beacuse that XShem internal checks wont fail when using the spice client from remote, we are adding check on the socket family to see if it is unix domain socket and fail in case it is not. Signed-off-by: Izik Eidus <ieidus@redhat.com>
* client: KeyHandler now receive unicode char event in addition to RedKey eventsYaniv Kamay2009-11-301-1/+30
|
* spice: add [pid:tid] to log linesArnon Gilboa2009-11-181-0/+11
|
* spice: on toggle_full_screen, generate on_key_down if shift is still pressedArnon Gilboa2009-11-181-3/+22
|
* client: fix colormap handling.Izik Eidus2009-11-091-3/+1
| | | | Signed-off-by: Izik Eidus <ieidus@redhat.com>
* spice client: remove timer interface from platform - use Application (via ↵Yonit Halperin2009-11-091-35/+0
| | | | ProcessLoop interface).
* spice client: cosmetic changesYonit Halperin2009-11-091-1/+1
|
* spice client: creating a general process loop.Yonit Halperin2009-11-091-257/+73
| | | | | | | | | | | The process loop is responsible for: 1) waiting for events 2) timers 3) events queue for actions that should be performed in the context of the thread and are pushed from other threads. The benefits: 1) remove duplicity: till now, there was one implementaion of events loop for the channels and another one for the main thread. 2) timers can be executed on each thread and not only on the main thread. 3) events can be pushed to each thread and not only to the main thread. In this commit, only the main thread was modified to use the new process loop.
* fix bad initialization of XDisplay in case crt have more then one outputYaniv Kamay2009-10-271-24/+24
|
* fresh startYaniv Kamay2009-10-141-0/+2643