summaryrefslogtreecommitdiffstats
path: root/client/application.cpp
Commit message (Collapse)AuthorAgeFilesLines
* client: Interpret the title control message as utf8 instead of unicode16Hans de Goede2010-10-211-2/+2
| | | | | | | The activex browser plugin is sending unicode16 text, where as the xpi one is sending utf8 text. After discussing this on irc we've decided that utf8 is what we want to use. So the client (this patch), and the activex will be changed to expect resp. send utf8 text as the title.
* Make the gui use Application::hide_gui rather then hide_meHans de Goede2010-10-181-2/+0
| | | | | | | | Now that Application::hide_me actually does what the name suggests (hide the entire client, ie all client windows), the gui using it to not show the gui layer leads to the entire client disappearing when one presses close in the GUI or dismisses a GUI dialog. This patch makes the GUI code call hide_gui instead of hide_me, fixing this.
* client: change monitor mode setting <-> fullscreen window mode setting orderHans de Goede2010-10-181-2/+2
| | | | | | | | | | | 1) Make the order when starting up in fullscreen mode the same as when switching from window -> fullscreen: First set the mode, then make the window fullscreen 2) Change the order when leaving fullscreen mode, first restore the original monitor mode, then make the window non fullscreen. Changing the monitor mode in X11 causes the window manager to re-arrange windows, and if this happens while compiz is busy mapping the window it gets confused and maps the window with a maxmimized size.
* spicec: add controllerArnon Gilboa2010-10-181-30/+115
| | | | | | | | | | | Spice client controller enables external control (e.g., by XPI or ActiveX) of the client functionality. The controller protocol enables setting parameters (host, port, sport, pwd, secure channels, disabled channels, title, menus, hotkeys etc.), connecting the server, showing and hiding the client etc. The controller is based on the cross-platform named pipe.
* spicec: add foreign menuArnon Gilboa2010-10-181-3/+71
| | | | | | | | | Spice foreign menu enables external control of the client menu. The foreignmenu protocol enables an external application to: add a submenu, set its title, clear it, add/modify/remove an item etc. Foreign menu is based on the cross-platform named pipe.
* client: support clipboard/selection-owner model (v2)Arnon Gilboa2010-10-011-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | -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: Include config.h from common.hAlexander Larsson2010-09-291-4/+0
| | | | | config.h should be availible everywhere, so move its inclusion to the top of common.h.
* 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.
* 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
* client: add clipboard supportArnon Gilboa2010-07-191-0/+6
| | | | | | | | * 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
* client: command line arguments for setting windows guest monitors'Yonit Halperin2010-07-191-0/+57
| | | | color depth and disabling some display options (helpful on WAN)
* Make tunnel support optional in client tooAlexander Larsson2010-07-081-0/+4
|
* Make CEGUI optionalAlon Levy2010-07-011-38/+84
| | | | | 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
|
* fixed unhandled destroy screen in Application:restore_screens_sizeYonit Halperin2010-06-291-1/+1
|
* Replace log4cpp with custom log functionAlexander Larsson2010-06-281-19/+72
| | | | | Also prints a simpler error to stderr for WARN or above so that we print something on the commandline if something go wrong.
* Fix spelling errors in comments and stringsAlexander Larsson2010-05-211-3/+3
|
* Revert "[debug] migration troubleshooting"Gerd Hoffmann2010-05-191-1/+1
| | | | This reverts commit 08927fabe57c17086fe3bce3a9ca166e2309349e.
* [debug] migration troubleshootingGerd Hoffmann2010-05-191-1/+1
|
* Remove all mentions of "cairo" from the codeAlexander Larsson2010-05-031-4/+4
| | | | | The command line option is renamed from "cairo" to "sw", and similarly all filenames and types from Cairo to Sw (and similar).
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-131-9/+9
|
* client: handling SPICE_MSG_MAIN_MIGRATE_SWITCH_HOSTYonit Halperin2010-04-061-1/+41
| | | | disconnecting from the current host and connecting to the target host.
* client: add command line support for ciphers, ca file, and host certificate ↵Yonit Halperin2010-03-181-5/+91
| | | | subject
* Remove no longer needed CAIRO_CANVAS_CACH_IS_SHARED define and codeAlexander Larsson2010-02-231-8/+0
|
* Replace custom region implementation with pixman_region32_tAlexander Larsson2010-02-231-5/+15
| | | | | | pixman_region32_t is an efficient well tested region implementation (its the one used in X) that we already depend on via pixman and use in some places. No need to have a custom region implementation.
* Rename symbols that were changed in spice-protocolAlexander Larsson2010-02-041-35/+35
| | | | | | 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
* client: add Platform::term_printfYaniv Kamay2010-01-111-28/+38
| | | | | | 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-3/+3
|
* client: move log file to spicec appdata dirYaniv Kamay2010-01-111-5/+9
|
* server,client: server authentication for secured channels.Yonit Halperin2010-01-111-2/+8
| | | | | | | | | 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: on_activate_screen generates on_key_down for any modifier pressedArnon Gilboa2009-12-301-15/+42
| | | | | | -call SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc...) only once, in RedWindow::init() -add Application::cleanup_globals() & RedWindow::cleanup() -cleanup LowLevelKeyboardProc()
* client: add GUI infrastructure + functional login dialogYaniv Kamay2009-12-281-142/+411
|
* client: smiplify DisconnectedEventYaniv Kamay2009-12-281-15/+11
|
* client: move visibility change logic from screen to appYaniv Kamay2009-12-281-0/+15
|
* client: improve screen resizingYaniv Kamay2009-12-281-30/+58
| | | | | | | | | | | Screen now have to modes locked and unlocked. In unlocked mode, the application can change screen size and so reduce resolution changing. The application can also choose to change window size while not in full screen mode. In locked mode the application must ewtain locker screen size setting.
* client: KeyHandler now receive unicode char event in addition to RedKey eventsYaniv Kamay2009-11-301-1/+6
|
* client: move scan code translation to InputsChannelYaniv Kamay2009-11-301-198/+23
|
* remove unuse Application::is_cad_pressed()Yaniv Kamay2009-11-301-7/+0
|
* client: split inputs handlerYaniv Kamay2009-11-301-21/+69
|
* client: interactive screen layerYaniv Kamay2009-11-301-12/+25
|
* spice: on toggle_full_screen, generate on_key_down if shift is still pressedArnon Gilboa2009-11-181-0/+12
|
* spice: show splash screen on disconnect only on debugArnon Gilboa2009-11-171-2/+4
|
* spice client: sticky Alt activation when holding an Alt key: bug #505912.Yonit Halperin2009-11-151-17/+216
| | | | | | | | | | | Additional changes that were required for the feature: 1) focusing on the pointed window in full screen mode 2) In X11 - handling events that occur during keyboard ungrabbing 3) In X11 - handling Leave/Enter Notify events that occur during keyboard grabbing/ungrabbing 4) In X11 - fix for focus events that are handled in the wrong order (happens when focus events occur during grabbing the keyboard) 5) In X11 - ignoring key release events during key holding 6) In Windows - synchronizing keyboard release events that occured during a modal loop
* spice client: creating a general process loop.Yonit Halperin2009-11-091-114/+19
| | | | | | | | | | | 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.
* tunnelYonit Halperin2009-10-181-1/+9
|
* fresh startYaniv Kamay2009-10-141-0/+1674