summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* server: print subtype when adding CHAR_DEVICE interfacesAlon Levy2010-12-061-1/+1
|
* server: add static to spice_server_char_device_add_interfaceAlon Levy2010-12-061-1/+1
|
* spice codegen: fix copy-o, no such variable valueAlon Levy2010-12-061-1/+1
|
* server: fix print text on vdagent interface additionAlon Levy2010-12-061-1/+1
|
* server: add char_device.h header, use in reds.cAlon Levy2010-12-062-4/+12
|
* spice-experimental.h: add multiple include protectionAlon Levy2010-12-061-1/+7
|
* server/vdi_port (virtserial): always read dataAlon Levy2010-12-061-6/+13
| | | | | | | | | | | | We erronously ignored data from guest on the serial channel if no client is connected. This leads to an assert when the guest writes a second time, since there is still data unconsumed by us (the host). Fix by reading data anyway, and discarding it after parsing (and reading) whole messages from the guest. Net affect is that any messages the agent sends while no client is connected get discarded, but only full messages are discarded. This fixes an abort if booting a winxp guest with vdagent without a connected client.
* server: add char_device.h to Makefile.am for make distAlon Levy2010-12-021-0/+1
|
* server/tests: add test_display_no_sslAlon Levy2010-11-304-50/+588
| | | | | | | | | | updates taken from spice vga mode updates, i.e. non cacheable, glz compressed (depends on whatever settings you apply to the server) opaque draw operations. + completed the SpiceCoreInterface implementation (timers) v1->v2: removed test_util.c (Hans) replaced mallocz with calloc (Hans)
* server/tests: Makefile.am fixesAlon Levy2010-11-301-2/+2
| | | | | * don't install tests on make install * don't forget anything for make dist tarball
* add .gitignore for testsAlon Levy2010-11-302-0/+5
|
* spicec: Don't show a white screen if guest resolution does not fit fullscreenHans de Goede2010-11-254-2/+34
| | | | | | | | | | | 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: fix ASSERT to accept size == 0Arnon Gilboa2010-11-241-1/+1
| | | | which is useful when calling RedClient::on_clipboard_notify(VD_AGENT_CLIPBOARD_NONE, NULL, 0);
* spicec-win: add image copy-paste supportArnon Gilboa2010-11-242-69/+151
| | | | | | -currently png & bmp -using wspice libs cximage.lib & png.lib -jpg & tiff will follow
* spicec-x11: Fix unhandled exception: no window proc crash (rhbz#655836)Hans de Goede2010-11-231-1/+9
| | | | | | | | | | | | | When XIM + ibus is in use XIM creates an invisible window for its own purposes, we sometimes get a _GTK_LOAD_ICONTHEMES ClientMessage event on this window. Since this window was not explicitly created by spicec, it does not have a Window Context (with the event handling function for the window in question) set. This would cause spicec to throw an unhandled exception and exit. This patch replaces the exception throwing with silently ignoring ClientMessage events on Windows without a Context and logging a warning for other event types.
* spicec-x11: Fix modifier keys getting stuck (rhbz#655048)Hans de Goede2010-11-221-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently modifier keys (ctrl, alt) can get stuck when using the x11 client. To reproduce under gnome: -focus the client window without causing it to grab the keyborad (click on the title bar not the window) -press crlt + alt + right arrow to switch virtual desktop -press crlt + alt + left arrow to switch back -notice ctrl + alt are stuck pressed What is happening here is: -We get a focus out event, caused by the hotkey combi key grab, focus event notify mode == NotifyGrab, and release all keys -> good -We get another focus out event, as we really loose the focus. notify mode == NotifyWhileGrabbed, which we ignore as we already lost focus before -We get a focus in event, as the focus is returning to us, but we don't really have the focus yet, as the hotkey combi key grab is still active (ie ctrl + alt are still pressed). We now sync the vm's modifier key state with the current X-server state, telling the vm ctrl + alt are pressed. Note we do this by directly reading the X-server keyboard status, we are not getting any key press events from the X-server -> bad -We get another focus in event, as we really get the focus back, notify mode == NotifyUngrab. We ignore this one as already have gained the focus before. If we were to sync the vm modifier state here, all would be well we would no longer see the modifier keys pressed, or if we would we would get a release event when they get released (testing has shown both). The solution here is to ignore the first focus in event, and do the modifier sync on the second focus in event, or more in general to ignore focus events where notify mode == NotifyWhileGrabbed.
* spicec-x11: Add a few missing XLockDisplay calls (rhbz#654265)Hans de Goede2010-11-171-0/+6
| | | | | The XIM functions end up waiting for a reply from the server, so they need locking around them. Idem for the XLookupString call.
* spicec: Don't show gui when connection info is specified on the cmdlineHans de Goede2010-11-091-6/+4
| | | | | | | | Currently when compiled with the gui enabled if you specify a host to connect to on the cmdline the gui flashes by (show_gui gets called, then the connect handler calls hide_gui as soon as the connection is made). This patch removes this ugly flashing by of the gui.
* spicec: Remove empty show / hide gui functionsHans de Goede2010-11-092-4/+4
| | | | | | 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.
* spicec: Fix info layer sometimes not showingHans de Goede2010-11-091-0/+1
| | | | | | | | | | | | | | | | | Currently we are calling show_info_layer from hide_gui in application.cpp, but there are 2 cases where this does not happen: 1) When compiled without gui support hide_gui is a complete nop, so we never show the info layer when compiled without gui support 2) When run with --controller we never show the gui, and hide_gui checks if there is a gui to hide as the first thing and if not returns resulting in show_info_layer not being called, and thus the info layer not showing when launched from the xpi This patch fixes both by adding a call to show_info_layer from on_visibility_start note that on_visibility_start also calls hide_gui, so in some cases show_info_layer may be called twice, this is not a problem as show_info_layer is protected against this.
* server/reds: zap unsetting of QEMU_AUDIO_DRVAlon Levy2010-11-081-1/+0
|
* gitignore: add generated_*, vim temps, pycAlon Levy2010-11-083-0/+9
|
* reds: remove needless buffer in InputsStateAlon Levy2010-11-081-3/+0
|
* server: tests: add basic tests with working do nothing serverAlon Levy2010-11-089-0/+294
|
* spicec-win: ignore MSVCRT.lib in x86 buildArnon Gilboa2010-11-081-2/+3
| | | | Same as in x64 build, for using the updated wspice-0.6.3
* spicec: Make cegui log to <app_data_dir>/cegui.logHans de Goede2010-11-051-1/+8
| | | | | | This stops the client from dropping CEGUI.log files into the cwd all the time, and stops it from crashing when the cwd is not writable (rhbz#650253).
* spicec-x11: Listen for selection owner window destroy / close events tooHans de Goede2010-10-281-3/+15
| | | | | These rarely happen as most apps have the decency to do a SetSelectionOwner None before exiting. But some do not, so listen for these too.
* client: add verbose link error messagesAlon Levy2010-10-251-1/+19
|
* spicec-tests: add controller_test (v2)Arnon Gilboa2010-10-254-0/+424
| | | | use chars for title & menu instead of wchars
* spicec-win: remove redundent strdup & buggy freeArnon Gilboa2010-10-251-5/+4
| | | | | text refered a substr of item_dup and was used after free(item_dup). no need to strdup, we can destroy the resource string.
* controller: Make menu text utf-8Hans de Goede2010-10-252-22/+19
| | | | | | We are making all text send over the controller socket utf-8, rather then having somethings as 8 bit (hostname) and others (title, menu) unicode16, this patch completes this change by converting the menu handling.
* spicec-x11: Do not set _NET_WM_USER_TIME to 0 on startupHans de Goede2010-10-252-5/+7
| | | | Setting _NET_WM_USER_TIME to 0 means we do not want focus, not good.
* spicec-win: add x64 to vcproj & sln (v2)Arnon Gilboa2010-10-252-0/+242
| | | | use CEGUI for x64 as well, no need for the SUPPORT_GUI hack
* spicec-win: map title string from utf8 to utf16Arnon Gilboa2010-10-251-1/+8
| | | | Fix win client broken by the utf8 patch.
* spicec-win: add #ifndef _WIN64 for u/intptr_t typedefsArnon Gilboa2010-10-241-1/+3
|
* spicec-win: Replace Set/GetWindowLong to LongPtr for x64 competabilityArnon Gilboa2010-10-241-5/+5
|
* Remove no longer used wstring_printf functionsHans de Goede2010-10-214-42/+0
|
* client: Interpret the title control message as utf8 instead of unicode16Hans de Goede2010-10-219-23/+19
| | | | | | | 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.
* spicec-x11: Change source of controller socket name, fixing CVE-2010-2792Hans de Goede2010-10-211-4/+8
| | | | | | | | | | | | | | | | | The socket name used to communicate between the xpi browser plugin and the spicec was predictable allowing a non priviliged user on the same system to create the socket before spicec does and thus intercept the messages from the xpi to the client, including login credentials. This security vulnerability has been registred with mitre as CVE-2010-2792: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-2792 This patch changes the controller code to instead read the socket name from an environment variable which gets set by the xpi before executing the spicec, making the socketname private between the client and the xpi. Note that this means that the controller will only work with an xpi which has matching changes, the changes are present in the latest version of the xpi as available as update for / with RHEL-5.5 and RHEL-6.0 .
* Release 0.6.30.6.3Hans de Goede2010-10-183-3/+8
|
* Make the gui use Application::hide_gui rather then hide_meHans de Goede2010-10-183-5/+3
| | | | | | | | 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.
* Bump version to 0.6.20.6.2Hans de Goede2010-10-182-2/+2
|
* Update NEWS for 0.6.2 releaseHans de Goede2010-10-181-0/+10
|
* spicec-x11: Fix window management under KDEHans de Goede2010-10-182-0/+13
| | | | | | | | | | | | | | There were 2 issues with window management under KDE 1) When an app does its own focus management like we do, kwin expects an explicit raise for the app to get to the top, so we did have focus, but would have other windows (partially) covering the client window -> do a raise after setting focus to ourselves 2) When switching from fullscreen <-> window, we unmap and remap our window, then set focus to ourselves. kwin thinks this means we're trying to steal the focus without the user asking for it. This patch makes us set the _NET_WM_USER_TIME property on our window, this helps kwin's focus stealing code to see that we are really not stealing the focus, just responding to a user event.
* 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-x11: Change WmSizeHints in fullscreen modeHans de Goede2010-10-182-21/+38
| | | | | | Some window managers will ignore the fullscreen hint, unless WmSizeHints allow them to resize the window so that they can give it the size of the roo-window. This fixes fullscreen mode in compiz.
* spicec-x11: Add missing XLockDisplay around XRRSet* callsHans de Goede2010-10-181-0/+10
| | | | | | XRRSet* calls wait for a XReply, so add a missing XLockDisplay, this fixes a hang (due to a race so not always) when switching between windowed and fullscreen mode.
* client: Do not try to send display_config until we've received the agent capsHans de Goede2010-10-181-9/+4
| | | | | | | | | | | Currenty, we check the agent caps in RedClient::handle_agent_connected for VD_AGENT_CAP_DISPLAY_CONFIG and if present send display_config, but at this time we have not received the caps yet, so remove this. Also the send_agent_display_config call in on_agent_announce_capabilities lacks a check for _agent_disp_config_sent, and we send the display config before announcing that we may do so by sending our own caps, which seems inpolite.
* spicec: add controllerArnon Gilboa2010-10-187-31/+700
| | | | | | | | | | | 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-187-10/+574
| | | | | | | | | 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.