Commit Graph

175 Commits

Author SHA1 Message Date
Hardening 7701c9d934 Replace printf(...) by fprintf(stderr, ...) 2013-03-28 23:06:34 +01:00
Marc-André Moreau 808fc210e3 libfreerdp-utils: remove hexdump utils in favor of WinPR utils 2012-12-13 23:54:54 -05:00
Marc-André Moreau 83473d11d1 channels: patch memory leaks, load addins from list 2012-11-19 13:26:56 -05:00
Marc-André Moreau 9d064171a7 freerdp: get rid of old types 2012-10-09 03:26:39 -04:00
Marc-André Moreau 1bf8a45519 freerdp: change uint8, sint8, uint16, sint16 to BYTE, INT8, UINT16, INT16 2012-10-09 03:01:37 -04:00
Marc-André Moreau 1ed644786c freerdp: change boolean type to BOOL type 2012-10-09 02:38:39 -04:00
Marc-André Moreau 5612bc43f8 freerdp: change true/false to TRUE/FALSE 2012-10-09 02:31:28 -04:00
Marc-André Moreau e60a092d81 freerdp: fix headers 2012-10-08 23:02:04 -04:00
Marc-André Moreau faa4311232 libwinpr: add proper config.h inclusions 2012-08-14 17:20:53 -04:00
Marc-André Moreau f4549beb4c xfreerdp: fix build warnings 2012-08-14 15:59:11 -04:00
Brent Collins 0b7db6232f Multiple RAIL fixes/improvements
1. Linked Window Manager Maximize/Minimize and Restore operations to those from the Server Rail Window so that they are in sync

2. Enable things like "CTRL-ALT-DELETE" and "WindowsKey-L" to show the full desktop window again since the desktop is not actively monitored since
this was still trying to draw to the rail window without updating the size of the window to accomodate the full workspace area.

3. Changed local window coordinates to be based on the visibileOffsetX/Y- while moving server window based on WindowOffsetX/Y. I have seen various issues regarding this when trying to use a maximized window where this is a disconnect between local window coordinates and remote window coordinates. This change clears these things up.

4. Commented the XShapeCombineRectangles calls - this can cause issues where the entire window is not visible and it does not currently play well with the changes from #3. The gain here is greater than the loss.

5. Draw the initial workspace correctly when running across multiple monitors. The correct size was always used, but the window was only starting on the current monitor and thus could draw the window off of the viewable area.

Known Issues:

Although the changes for #2 worked well in the stable branch that I developed from - the desktop window shown once the rail windows are destroyed does not respond to input unless I minimize/restore the window. Once the window starts responding to input - you can hit cancel to close the desktop window and return to your rail windows again(or launch task manager, etc.). This is still a big step in the right direction as xfreerdp is now correctly acting when the rail server stops Actively Monitoring the desktop.

XShapeCombineRectangles needs to be revisited, most windows applications will give you a rectangular window anyways.
2012-08-03 17:35:17 -05:00
David Sundstrom 3656a86d99 Fix local moves by using XQueryPointer to report new mouse position.
Disable local keyboard moves for now until a way is found to make them work reliably.
2012-05-25 17:56:05 -05:00
David Sundstrom e1e8f6284f make local functions static
reintroduce unmanaged windows for tooltips and dropdowns; this is required for proper focus behavior
2012-05-25 17:56:05 -05:00
David Sundstrom dc81959060 Use locally assigned variable 2012-05-25 17:56:03 -05:00
David Sundstrom e97a2bc158 Minor refactoring to encapsulate all X windows calls in xf_window.c
xf_rail.c should deal with RAIL concerns and delegate all X functions to xf_window APIs.
2012-05-25 17:56:02 -05:00
David Sundstrom 88d55493a9 Resolve a race condition between a local move update to the RDP server, GDI orders, and RAIL orders. Previously we could receive new GDI orders for the new window position before we received the RAIL order for the new position. The caused drawing errors.
Also correct some errors in managing the GDI damage region.
2012-01-13 18:08:51 -06:00
Norbert Federa cf3c03c60e xfreerdp: a quick workaround for some issues with TS Remote App.
Currently in Remote App mode we have no option to interact with the
remote desktop host before the first RAIL window is created.

In many situations this interaction possibility is absolutely required.
One example is that screen which gets displayed if another user is logged on.
It requires clicking a button in pre-RAIL mode so that the currently logged
on user gets notified to confirm or deny the connection.

Another example is the option to log on graphically (e.g. for hosts that
don't support NLA) without predefined credentials.

Also if the administrator sets the "User must change password at next logon"
option there is currently no way to do this in TS Remote App mode.

This change basically lets xfreerdp create the main window in Remote App mode
like in a normal session and xfi->remote_app is not set to true initially.

As soon as the rail exec result event or the first rail window creation
request is received (whatever comes first) the main window gets destroyed and
xfi->remote_app is set to true.

The second change is to disconnect immediately if the rail exec result event
reports an error, e.g. if the specified app cannot be found or if it is not
in the list of allowed applications.

This fixes FreeRDP github issue #143 and issue #308.

I'm aware that this is not the most elegant solution but it is definitely an
improvement and probably good enough for 1.0.
A nicer solution would be hiding the main window and only displaying it if
no rail exec result or rail window creation event is received after a certain
timeout ...
2012-01-02 10:27:04 +01:00
David Sundstrom 49303c8969 Fix compile error on Solaris
Fix few small issues with local move race conditions
Add missing --gdi option to command-line help
2011-12-16 15:10:07 -06:00
David Sundstrom 6bd2b736aa allow updates from cached pixmap during local moves 2011-12-09 14:26:11 -06:00
David Sundstrom b17fe2e60e Do not do XMoveWindow after local_move event from RDP server
Do not update window area of RDP and local X window are not synchronized
Use RootWindowOfScreen for translate coordinates
2011-12-09 14:26:11 -06:00
Not Nyguen Doze 51bd226cf3 Complete local move support. Use a state machine to keep track of XEvents to infer local move start and finish. 2011-12-06 15:43:38 -08:00
Not Nyguen Doze a70ca93c43 Add option for WITH_DEBUG_WND for window order updating, already existing in code
Correct sign on variables in xf_rail_paint
2011-12-06 15:43:38 -08:00
Not Nyguen Doze 8f38bdb87a Make popups transient, use local window manager for moves.
This fixes a number if issues on Ubuntu in particular.
2011-12-06 15:43:38 -08:00
David Sundstrom 31cbac201d Add a function to synchronize the RDP server with the local window position and size when the window is moved locally.
Complete implementation for initiating RAIL local move support, however, this is still disabled until a method is found to tell when local moves complete on the X server.
2011-12-06 15:43:38 -08:00
David Sundstrom 354b00711b After local X window manager has moved a window to a different location than what the RDP server expects, send a client update to the RDP server to inform the server of the new window position. 2011-12-06 15:43:38 -08:00
Marc-André Moreau a63a196f53 types: refactoring to make use of standard data types when available 2011-11-19 12:19:16 -05:00
David Sundstrom c5b9667825 Remove xf_rail_FilterWindowInfo() function. This function incorrectly calculated a new width for windows that had a negative origin (that is, windows partially off the desktop to the left). The function subtracted twice the window offset from the width. To be correct this function needed to keep track of the old and new window positions and just subtract the difference.
It turns out none of this was necessary.  X will handle windows placed partially off-screen and draw them correctly, just as it does for windows dragged partially off the screen to the left.  Removing this function fixed a number of drawing issues including tool tips being incorrectly drawn and windows not being drawn correctly after they'd been placed partially off-screen to the right.
2011-11-02 18:31:14 -05:00
Alan Pearson 4735dcc5c7 Reorder header files. X11 headers need to be before freerdp/types.h otherwise we get warnings about redefinition of True and False 2011-10-27 10:29:16 -07:00
Marc-André Moreau 8df77dba71 libfreerdp-core: move rdpChannels context to rdpContext 2011-10-16 20:10:09 -04:00
Marc-André Moreau 0549380c28 libfreerdp-channels: rename from libfreerdp-chanman 2011-10-16 14:57:15 -04:00
Marc-André Moreau c639ec8593 libfreerdp-core: refactoring of context pointers into rdpContext 2011-10-16 00:50:10 -04:00
Marc-André Moreau 3869228349 xfreerdp: RemoteApp stabilization (window movement, region update) 2011-09-22 21:23:01 -04:00
Marc-André Moreau 5c25717eae xfreerdp-server: encode a single tile from X11 at a hardcoded position 2011-09-13 19:03:06 -04:00
roman-b 059eff9f56 xfreerdp: fixed "window shake" effect in RAIL Local Move/Size. 2011-09-06 00:25:46 +03:00
roman-b 14ce6ae7f0 xfreerdp: RemoteApp Local Move/Size improvements.
Issues:
fast mouse moving after left button pressing is create "windows shake" effect.
Slow mouse speed after left button press allows to discard this effect.
2011-09-03 23:38:01 +03:00
roman-b 69b4b0318c xfreerdp: fix usage of new DEBUG_ macroses for RAIL and X11 Client. 2011-09-03 19:50:26 +03:00
Marc-André Moreau 6fdecdb01b debug: cleanup printf's all over the place 2011-09-02 13:29:17 -04:00
Marc-André Moreau e649a68047 xfreerdp: stabilizing RemoteApp 2011-09-02 12:39:56 -04:00
roman-b 9b7eb7934f Merge remote-tracking branch 'upstream/master' into rail 2011-09-02 01:24:45 +03:00
roman-b 3c78705515 xfreerdp: added sending Window Move Order to server. 2011-09-02 01:02:22 +03:00
roman-b 72631d04e1 xfreerdp: added handlers for MinMax and Local Move/Size orders. 2011-09-01 01:02:22 +03:00
Marc-André Moreau aee51a7e2e xfreerdp: fix after refactoring libfreerdp-rail on windows 2011-08-31 02:01:49 -04:00
Marc-André Moreau b56962d254 xfreerdp: start handling multiple monitors in xf_monitor.c 2011-08-30 20:59:42 -04:00
Marc-André Moreau 9d7fce9194 xfreerdp: fix listing of RemoteApp windows in taskbar 2011-08-30 15:06:50 -04:00
Marc-André Moreau a9a06abcc3 xfreerdp: stabilizing RemoteApp, fix window styles 2011-08-30 14:21:16 -04:00
Marc-André Moreau 3f4cd54ad2 xfreerdp: disable RemoteApp mouse motion 2011-08-25 15:05:07 -04:00
Marc-André Moreau 9b40f800de xfreerdp: fix minor RAIL issues 2011-08-25 14:11:45 -04:00
roman-b 16262074d4 xfreerdp: add RAIL windows focus in/out handling. 2011-08-25 01:22:06 +03:00
roman-b 6365db7be6 xfreerdp: add parent-child relationship for RAIL windows. 2011-08-25 00:16:57 +03:00
Marc-André Moreau cfd3407f69 xfreerdp: fix drawing of maximized RAIL windows 2011-08-22 21:22:05 -04:00
Marc-André Moreau 3e4331caa0 xfreerdp: add support for RemoteApp round window corners 2011-08-22 16:06:12 -04:00
roman-b 8ae5b05c86 Merge remote-tracking branch 'upstream/master' into rail 2011-08-22 19:14:11 +03:00
Marc-André Moreau 900a56f289 xfreerdp: fix window classes 2011-08-21 23:54:02 -04:00
Marc-André Moreau b8291b2e3d xfreerdp: handling local window restore events 2011-08-21 23:39:56 -04:00
Marc-André Moreau aaa2f22b10 xfreerdp: handled RAIL window minimize events 2011-08-21 23:15:19 -04:00
Marc-André Moreau f46d3d51c6 xfreerdp: improved window icon support 2011-08-21 22:30:49 -04:00
roman-b 7744e17ec2 channels/rail: fixed multithread side effect by creating full orders copy for events. 2011-08-22 02:04:21 +03:00
Marc-André Moreau 00733ab128 xfreerdp: started handling RemoteApp icons 2011-08-21 17:32:18 -04:00
roman-b 7b6dad86ca Merge remote-tracking branch 'upstream/master' into rail 2011-08-21 04:44:18 +03:00
roman-b 822c269b06 xfreerdp: small fix. void* pointer does not require type cast. 2011-08-21 04:13:33 +03:00
Marc-André Moreau 4a126a55b0 xfreerdp: handle RAIL window title updates 2011-08-19 22:21:09 -04:00
roman-b e7367f9aac channel/rail: add initial handling all RAIL PDU from server.
Note:
Sometimes we have multi-thread side effect with data trasfer throught shared 
memory between different threads.
2011-08-20 01:46:10 +03:00
Marc-André Moreau 181154f01f xfreerdp: optimize the updating of invalid regions on RAIL windows 2011-08-19 12:43:44 -04:00
Marc-André Moreau 9e42276d1b Merge pull request #50 from roman-b/rail
Rail
2011-08-19 08:36:57 -07:00
Marc-André Moreau af71a70233 xfreerdp: fix RAIL window resizing 2011-08-19 11:12:30 -04:00
roman-b e85caeb17d channel/rail: add handling Server Execute Result PDU 2011-08-19 17:10:08 +03:00
Marc-André Moreau 3fa7d4a3d4 xfreerdp: remove backbuffer window in RemoteApp mode 2011-08-18 01:16:49 -04:00
Marc-André Moreau 49b1fa25a0 xfreerdp: fail RAIL window positions (relative to work area) 2011-08-17 23:26:12 -04:00
Marc-André Moreau eb02b578a5 xfreerdp: add ability to move RAIL windows 2011-08-17 22:50:49 -04:00
Marc-André Moreau f465579551 xfreerdp: added RAIL window titles 2011-08-17 22:31:27 -04:00
Marc-André Moreau 48d3e65b08 rail: get client system parameters from xfreerdp 2011-08-17 21:33:22 -04:00
Marc-André Moreau 257f3ac55b xfreerdp: fix mouse input inside application windows 2011-08-17 16:45:09 -04:00
Marc-André Moreau 98f7bb01b5 xfreerdp: added support for workarea and disabling window decorations 2011-08-17 14:13:44 -04:00
Marc-André Moreau e990d227ce xfreerdp: started painting multiple RAIL windows 2011-08-17 02:14:02 -04:00
Marc-André Moreau 2b4cd32390 libfreerdp-rail: processing window altsec orders 2011-08-16 00:22:00 -04:00