Commit Graph

2074 Commits

Author SHA1 Message Date
bjcollins
8e27b6d05e RemoteApp Support
1. Remove all uses of "localWindowOffsetCorr" variables, they added an extra layer of complexity and they are not actually needed to handle coordination of window position/size between
the local coordinate system and the remote one. This logic was causing issues in the case where the window was moved off the left side of the screen.

2. Update the xf_setWindowVisibilityRects function to offset the visibility rects as necessary when the window is hanging off the left side of the screen.

3. Stop sending mouse events when doing keyboard moves/sizes(as desired), and stop sending two mouse events for non-keyboard moves/sizes

4. Move location of new UTF8_STRING variable from previous commit

5. Refresh window and window shape for any window position/size updates, this helps keep the local and server windows in sync and works around some race conditions
2015-10-15 18:41:55 -05:00
bjcollins
cc676c4468 Remote app support
All window state order offsets are signed according to the RDP spec, lets treat them as such.
2015-10-15 18:18:21 -05:00
bjcollins
cb4e4cf6fc Store Miscellaneous X11 Atoms into variables to match how we handle other X11 Atoms. 2015-10-15 14:59:53 -05:00
bjcollins
d1a8119dac RemoteApp support
Remove use of WindowRects to affect window shape, the VisibilityRects are used for this purpose.
2015-10-15 14:47:10 -05:00
bjcollins
5bfbee8f78 Ensure that app windows always get a window type assigned to them. 2015-10-15 14:39:59 -05:00
bjcollins
6934c18adf Continue processing all other window orders for new remote app windows instead
of existing after only looking at part of the information. For instance, window visibility
rects are part of the message with the new order and were being ignored.
2015-10-15 14:35:07 -05:00
bjcollins
964f0addbf Do not support fullscreen toggle keyboard sequence in remote_app mode. There is no support in interface for this
and the fullscreen code is not designed to handle remote app windows.
2015-10-15 14:31:15 -05:00
bjcollins
6d3565bd4c Fix xf_rail_paint fencepost error
The regions used to store and calculate the invalidRegion are exclusive
of the bottom and right edges, not inclusive.

Fixes "mouse droppings" in mspaint.exe when moving the mouse leftwards
across the canvas.
2015-10-15 14:29:48 -05:00
Marc-André Moreau
029cbf3aca libfreerdp-gdi: fix egfx multimon support 2015-10-13 15:50:39 -04:00
Marc-André Moreau
4ab373aced xfreerdp: fix multiple egfx context support in X11 GFX 2015-10-13 14:49:30 -04:00
Marc-André Moreau
1b7e36a20f Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-10-13 11:09:43 -04:00
volth
2b7681da85 Update xf_keyboard.c
With Japanese physical keyboard and English layout, pressing the extra keys can cause FreeRDP crash.
2015-09-23 18:40:34 +00:00
Marc-André Moreau
3fd0c45be8 afreerdp: fix build warnings 2015-09-22 11:53:50 -04:00
bjcollins
47c260177c fix window title for rail as it was not being set on initial window creation
remove duplicate call to XStoreName when setting window title
expand WITH_XEXT #define for rail window rects as extra unecessary work was being done when WITH_XEXT was not defined
2015-09-18 16:14:30 -05:00
Marc-André Moreau
48c7a8dc1d Merge pull request #2889 from dvincent-devolutions/gateway
Fix RDP8 gateway disconnections
2015-09-16 10:41:07 -04:00
Marc-André Moreau
12ce635b34 libfreerdp-core: fix code style 2015-09-15 10:37:57 -04:00
Peter Harris
5f2f68f0e7 xfreerdp: Fix window shape
Don't abort the entire xf_rail_window_common function when the window is
already in the correct location.

To reproduce:
 - move an application off the edge of the screen
 - resize the window to cause a shape to be set
 - move the application window fully on the screen
 - resize the application window larger
 - note lack of drawing in newly enlarged portion of window

Bug introduced in abf6d4f71e "xfreerdp:
prepare RAIL migration away from libfreerdp-rail" when
xf_rail_MoveWindow was copy-and-pasted into xf_rail_window_common
without noticing that the "return" would omit the rest of the combined
function, not just the portion that was pasted.
2015-09-10 18:15:55 -04:00
Peter Harris
769ac2d35f Fix drawing with negative window origin
Since REGION16 uses unsigned values, when appWindow->x or appWindow->y
is negative, the region will have a very large left or top value.

Avoid this problem by clamping to 0 before casting to an unsigned value.
2015-09-03 18:48:42 -04:00
Armin Novak
551eca246b Ignoring H264 decompression failures.
When connecting to windows 8.1 machines the remote RDP server
implementation sometimes sends invalid H264 data. To avoid client
disconnections ignore the broken updates.
2015-09-03 12:11:15 +02:00
Norbert Federa
2d5e249eff Merge pull request #2825 from akallabeth/pointer_decoding_fix
Fixed color pointer decoding.
2015-09-01 11:09:42 +02:00
Bernhard Miklautz
05c02da742 settings: update settings/help to match
* wallpaper was off but help said "default: on"
* compression is on but help said "default: off"

Fixes #2853
2015-08-28 11:09:38 +02:00
Martin Haimberger
52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -07:00
Martin Haimberger
420a86e1c7 Merge remote-tracking branch 'upstream/master' into mh-channel-fix
Conflicts:
	channels/drdynvc/client/drdynvc_main.c
	channels/rdpgfx/client/rdpgfx_main.c
	client/X11/xf_gfx.c
2015-08-25 00:07:04 -07:00
Armin Novak
be673f5766 Fixed mac API. 2015-08-06 14:11:36 +02:00
Armin Novak
4a62e6bee4 Added length arguments and checks. 2015-08-06 11:24:42 +02:00
Armin Novak
416ac0baea Fixed return and argument checks. 2015-08-05 17:32:46 +02:00
Martin Haimberger
2862109337 Merge remote-tracking branch 'upstream/master' into mh-channel-fix
Conflicts:
	channels/smartcard/client/smartcard_main.c
	channels/smartcard/client/smartcard_operations.c
2015-07-30 07:29:12 -07:00
Marc-André Moreau
5cb06ecc68 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-07-28 09:21:33 -04:00
MartinHaimberger
45f9519b58 Merge pull request #2723 from akallabeth/pwd_from_stdin
New /from-stdin
2015-07-15 14:12:13 +02:00
Martin Haimberger
6ab0187d84 Merge remote-tracking branch 'upstream/master' into mh-channel
Conflicts:
	channels/audin/client/oss/audin_oss.c
	channels/drive/client/drive_main.c
	channels/printer/client/printer_cups.c
	channels/printer/client/printer_main.c
	channels/rail/client/rail_main.c
	channels/rdpgfx/client/rdpgfx_main.c
	channels/rdpsnd/client/oss/rdpsnd_oss.c
	channels/remdesk/client/remdesk_main.c
	channels/remdesk/server/remdesk_main.c
	channels/tsmf/client/tsmf_media.c
2015-07-15 01:57:07 -07:00
MartinHaimberger
b06d83ba80 Merge pull request #2766 from akallabeth/snprintf_to_sprintf_s
Replaced snprintf with sprintf_s
2015-07-15 09:47:43 +02:00
Bernhard Miklautz
f589d5d6e0 x11: reorder xf_post_disconnect
Channels like EGFX need resources like the main window in order to
work correctly. Before the window, GDI,.. is freed it needs to be
ensured that all channels are stopped properly to prevent them to access
already freed resources. Disconnecting the channels first fixed a
possible race condition/SEGFAULT that could occur with remote initiated
disconnects.
2015-07-14 15:28:55 +02:00
Bernhard Miklautz
68e8569110 winpr/synch: remove the dependency on winsock.h
winsock.h pulls in a lot of defines and dependencies that are not
required and partially unwanted in winpr's core (for parts that are not
related to network). In order to get rid of this dependency and have an
independent defines for extended winpr functions the WINPR_FD_* defines
are used internally (and for exposed functions). Where required, like in
WSAEventSelect, the FD_* is mapped to WINPR_FD_*.
2015-07-14 11:39:41 +02:00
Marc-André Moreau
3781e803ed channels/rdpgfx: improve frame ack handling 2015-07-06 16:28:52 -04:00
Armin Novak
cf9f975341 Replaced snprintf with sprintf_s 2015-07-03 13:26:15 +02:00
Armin Novak
4e7c03fabf Added error checks and resource cleanup. 2015-07-03 11:26:22 +02:00
Armin Novak
d18b0fbeb4 Handle API updated. 2015-07-03 09:52:52 +02:00
Bernhard Miklautz
f24240630d Merge pull request #2759 from bmiklautz/fix/cliprdp
x11/cliprdr: handle empty format names
2015-07-02 16:28:55 +02:00
Bernhard Miklautz
b6a799e5d0 x11/cliprdr: handle empty format names
The recently added strdup checks ignored the fact that format names
can be NULL.
2015-07-02 15:39:35 +02:00
Hardening
c8a71a2695 Merge pull request #2747 from ilammy/egfx-missing-events
Do not discard events when updating EGFX surface mapping
2015-07-02 15:08:31 +02:00
ilammy
1012bccdaa client/x11: do not discard events when updating EGFX surface mapping
Passing True to XSync() discards any pending X11 events. Occasionally
this caused ButtonRelease or KeyRelease to be lost and not forwarded
to the remote computed, leading to stuck keys and buttons.

This should resolve issue #2391
2015-06-30 12:48:08 +03:00
Bernhard Miklautz
1cee185e3c hardening: check fread and fwrite return values 2015-06-26 20:38:30 +02:00
Marc-André Moreau
cf2f4bf9cf Merge pull request #2737 from nfedera/nf-fix-gdi-return-value-weirdness
libfreerdp/gdi: fixed gdi return value madness
2015-06-26 09:24:08 -04:00
Norbert Federa
ac95b7274e Merge pull request #2727 from akallabeth/leak_fixes_reformat
Fixed leaks, NULL dereferences and broken init.
2015-06-26 15:01:08 +02:00
Norbert Federa
bb9536b867 libfreerdp/gdi: fixed gdi return value madness
Mostly booleanization to comply with the MS API
2015-06-26 14:32:38 +02:00
Marc-André Moreau
ddf2519f1e Merge pull request #2719 from bmiklautz/pull/2481
OSS, tsmf, usb and BSD fixes and improvements
2015-06-26 08:27:22 -04:00
Armin Novak
8165031eb4 Fixed windows client pre_connect return. 2015-06-26 13:13:32 +02:00
Armin Novak
6698e24228 Fixed leaks, NULL dereferences and broken init. 2015-06-23 21:29:21 +02:00
Armin Novak
dd19e22dc0 Fixed missing colon. 2015-06-23 16:53:40 +02:00
Armin Novak
e969049aa3 Removed unused variable and incorrect comment. 2015-06-23 16:20:59 +02:00