summaryrefslogtreecommitdiffstats
path: root/client/application.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix compilation when smartcard support is disabledChristophe Fergeau2012-02-291-0/+2
| | | | | | The addition of smartcard control to the controller doesn't handle the case when smartcard support is disabled at compile time. When this is the case, this causes compile errors.
* client: handle CONTROLLER_ENABLE_SMARTCARD (rhbz 641828)Alon Levy2012-02-281-0/+1
|
* Handle Application::set_hotkeys failureChristophe Fergeau2012-02-031-0/+1
| | | | | | | | Application::set_hotkeys can throw an exception if it fails parsing the string describing the hotkeys to set. Currently this exception is uncaught which causes spicec to terminate when the controller tries to set invalid hotkeys. Fall back to using the default hotkeys when the controller sends an invalid hotkeys string.
* Remove trailing blank linesDaniel P. Berrange2012-01-131-1/+0
| | | | Remove any blank lines at the end of all source files
* client: fix typo commnad=>commandChristophe Fergeau2011-09-201-1/+1
|
* client: setting monitors resolution before resizing screens, RHBZ #728252Yonit Halperin2011-08-251-2/+3
| | | | fix for "client: fix endless recursion in rearrange_monitors, RHBZ #692976"
* client: fix endless recursion in rearrange_monitors, RHBZ #692976Yonit Halperin2011-07-211-1/+3
| | | | | | | | | | The endless recursion happens due to Application::prepare_monitors calling RedScreen::resize calling Application::rearrange_monitors calling Application::prepare_monitors I changed RedScreen::resize not to call rearrange_monitors. Instead, the monitor should be configured correctly from Application, before calling resize. In addition, I made some cleanups to allow reusing rearrange_monitors code.
* s/USE_OGL/USE_OPENGLChristophe Fergeau2011-05-031-1/+1
| | | | This is more explicit about what it does, and not much longer
* client: --help should not need platform initializationAlon Levy2011-01-271-1/+4
| | | | | | separate initialization into before command line parsing and after, call later only if command line parsing succeeds (in particular, it "fails" if --help is given).
* smartcard: client side (not enabled yet)Alon Levy2010-12-071-0/+12
|
* spicec: Don't show a white screen if guest resolution does not fit fullscreenHans de Goede2010-11-251-0/+2
| | | | | | | | | | | Currently when going / starting fullscreen if the guest resolution for one of the monitors is higher then that monitor on the client can handle, we show a white screen. Leaving the user stuck (unless they know the fullscreen key switch combi) with a white screen when starting the client fullscreen from the XPI. This patch changes the client to fall back to windowed mode in this case instead.
* spicec: Remove empty show / hide gui functionsHans de Goede2010-11-091-4/+0
| | | | | | When compiling without gui support just don't call show / hide gui, rather then making them stubs, this makes it easier to follow what is going on.
* 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-1/+1
| | | | | | | | 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.
* spicec: add controllerArnon Gilboa2010-10-181-1/+14
| | | | | | | | | | | 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-2/+24
| | | | | | | | | 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-2/+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: add clipboard supportArnon Gilboa2010-07-191-0/+2
| | | | | | | | * 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-1/+1
|
* client: command line arguments for setting windows guest monitors'Yonit Halperin2010-07-191-0/+2
| | | | color depth and disabling some display options (helpful on WAN)
* Make CEGUI optionalAlon Levy2010-07-011-0/+17
| | | | | This makes the CEGUI dependency optional and off by default. Restoring previous behaviour of exiting on disconnect if disabled.
* Remove all mentions of "cairo" from the codeAlexander Larsson2010-05-031-1/+1
| | | | | 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-0/+15
| | | | 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-0/+5
| | | | subject
* Rename symbols that were changed in spice-protocolAlexander Larsson2010-02-041-2/+2
| | | | | | 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-4/+5
| | | | | | Platform::term_printf is a variant of printf that on windows dynamically opens console in order to have visible output during command line processing.
* server,client: server authentication for secured channels.Yonit Halperin2010-01-111-0/+2
| | | | | | | | | 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-0/+2
| | | | | | -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-5/+65
|
* client: smiplify DisconnectedEventYaniv Kamay2009-12-281-5/+3
|
* client: move visibility change logic from screen to appYaniv Kamay2009-12-281-0/+11
|
* client: improve screen resizingYaniv Kamay2009-12-281-0/+2
| | | | | | | | | | | 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-0/+1
|
* client: move scan code translation to InputsChannelYaniv Kamay2009-11-301-14/+1
|
* remove unuse Application::is_cad_pressed()Yaniv Kamay2009-11-301-1/+0
|
* client: split inputs handlerYaniv Kamay2009-11-301-3/+11
|
* client: interactive screen layerYaniv Kamay2009-11-301-1/+2
|
* spice client: sticky Alt activation when holding an Alt key: bug #505912.Yonit Halperin2009-11-151-0/+33
| | | | | | | | | | | 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-64/+12
| | | | | | | | | | | 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.
* fresh startYaniv Kamay2009-10-141-0/+267