Commit Graph

175 Commits

Author SHA1 Message Date
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
Vic Lee 977c89bb59 x11: clear the window in case of resolution change in fullscreen. 2012-06-22 21:24:24 +08:00
Alam Arias eb32070129 x: clean out xevent before using it 2012-06-14 12:43:21 -04:00
Marc-André Moreau d7f8624e71 Merge pull request #624 from chihchun/master
xfreerdp: Add --authonly and --from-stdin switch
2012-06-14 07:34:51 -07:00
Irwan Halim c9c22fa331 Add GStreamer plugin for Multi-media redirection 2012-06-13 14:45:58 -05:00
Mike Carifio a31f0c62e6 xfreerdp: Adds switch --from-stdin.
This switch will prompt username, password, domain and connection
host if not specified at the command line.

Signed-off-by: Rex Tsai <chihchun@kalug.linux.org.tw>
2012-06-06 17:55:34 +08:00
Mike Carifio 88f2e84e5e xfreerdp: return correct logical value, if authentication failed.
Signed-off-by: Rex Tsai <rex.tsai@canonical.com>
2012-06-06 17:55:34 +08:00
Mike Carifio 28075f5ebb xfreerdp: add --authonly switch to xfreerdp client
Signed-off-by: Rex Tsai <chihchun@kalug.linux.org.tw>
2012-06-06 17:55:34 +08:00
Marc-André Moreau d0d618fb76 Merge pull request #576 from bjcollins/master
XReparentWindow fix
2012-05-05 15:52:18 -07:00
Brent Collins 70ccbd1926 Moved the call order around such that the XReparentWindow call will work as intended. 2012-05-04 13:00:28 -05:00
Julien Ropé c1f7044693 Some fixes for potentials NULL pointer dereferences, and double-free of buffers 2012-05-04 15:50:33 +02:00
Mads Kiilerich 53ab60dcb3 x: tell politely why xfreerdp is closing without making it look like an error 2012-03-22 21:30:39 +01:00
Pawel Jakub Dawidek 49fe529e15 Fix compilation warning when WITH_SSE2 is not defined. 2012-03-21 20:51:31 +01:00
Mads Kiilerich 44b6598252 x: clean up after xf_pre_connect if connection fails, and free instance where it was allocated
This prevents leak after "Error: protocol security negotiation failure"
2012-03-16 18:11:53 +01:00
Mads Kiilerich 338f7362e3 x: avoid leak by waiting for thread to finish before detaching 2012-03-16 16:42:56 +01:00
Mads Kiilerich 722260dd08 x: free bitmap_mono 2012-03-16 16:42:45 +01:00
Vic Lee 28b203e57f nsc: add profiler. 2012-03-06 22:42:57 +08:00
Vic Lee 3fa2c4830e nsc: refactor nsc decoder #1
o the decoded argb buffer can be reused to enhance performance
o pass width, height and bpp through nsc_process_message() call
o rename nsc_context_destroy to nsc_context_free and make it actually free the context
2012-03-05 17:32:14 +08:00
Norbert Federa f821425bf3 xfreerdp: Fixed PIC base address corruption by inline assembly
EBX (or RBX on x86_64) is used for the PIC base address.
The current cpuid inline assembly only saved ebx which is fine
under i386 but only half of the fun on x86_64.
2012-02-29 21:06:56 +01:00
Marc-André Moreau 9e49daba85 xfreerdp: apply X2GO patch 2012-02-27 12:08:38 -05:00
Marc-André Moreau 32a54130e7 xfreerdp: fix multiple memory leaks detected by valgrind 2012-02-27 10:55:49 -05:00
Julien Ropé 43360b0453 Adding new comments to xfreerdp.c, going down to the functions it calls in the core lib.
Continue adding comments to struct rdp_freerdp fields.
2012-02-25 21:55:59 +01:00
LittleJawa 3e919f7a40 Merge remote-tracking branch 'upstream/master' 2012-02-23 16:57:29 +01:00
LittleJawa 37b35b3558 First round of comments while reading the code. 2012-02-23 16:22:05 +01:00
Marc-André Moreau a1f5eeea0c xfreerdp: fix and document --kbd-list option 2012-02-21 12:00:02 -05:00
Marc-André Moreau 46e3343232 libfreerdp-locale: refactoring of XKB dynamic mapping 2012-02-19 17:36:39 -05:00
Marc-André Moreau 4af3ecd4cd libfreerdp-locale: refactoring step 1 2012-02-18 22:04:28 -05:00
Marc-André Moreau 233b0b6ef4 libfreerdp-gdi: add mem3blt support 2012-02-12 19:41:39 -05:00
Marc-André Moreau 46e9eeb695 xfreerdp: added support for Mem3Blt 2012-02-12 18:12:28 -05:00
Marc-André Moreau f7a71079dd xfreerdp: reintroduce Polygon drawing 2012-02-12 17:14:59 -05:00
Marc-André Moreau 5617af901a libfreerdp-gdi: add PatBlt DPa operation 2012-02-12 15:21:08 -05:00
Marc-André Moreau fdfc817fb6 xfreerdp: fix segfault with --gdi sw on disconnect 2012-02-09 21:01:13 -05:00
Pawel Jakub Dawidek b75b5eb8a1 After DEACTIVATE ALL PDU server can send MCS Disconnect Provider Ultimatum PDU to disconnect.
Handle such condition and exit from xfreerdp gracefully (almost, exit status is still != 0).
2012-02-06 23:10:45 +01:00
Marc-André Moreau 4695faae38 libfreerdp-core: added check for certificate name against hostname 2012-02-04 02:21:39 -05:00
Alexis Moinet 5ca9a37f68 remove redundant if(NULL) checks (already checked inside of cache_free and rail_free)
Besides "ptr=NULL; free(ptr);" does nothing so no need to check for NULL in xfree()
2012-02-03 15:27:04 +01:00
Marc-André Moreau 9e4d76648b libfreerdp-core: fix more memory leaks 2012-02-01 21:11:46 -05:00
Marc-André Moreau b4e542ba46 libfreerdp-core: fix multiple memory leaks detected by valgrind 2012-02-01 18:42:20 -05:00
Dorian Johnson 8edb7d3efa Change freerdp_parse_args to return different values for error vs --help/--version, and change xfreerdp to only report real errors 2012-01-14 15:30:48 -06:00
Anthony Tong 413190c5e4 xfreerdp: fix win_title string handling from #247 2012-01-13 17:32:14 -05: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
Marc-André Moreau 2d34a62ce8 libfreerdp-codec: fix color conversion issues for OpaqueRect with --gdi sw,hw 2011-12-30 10:00:03 -05:00
Vic Lee 522bd24d19 xfreerdp: fix trivial compile warnings. 2011-12-29 21:26:34 +08:00
Anthony Tong 6ef9d6da30 xfreerdp: create all X11 atoms used for safety 2011-12-27 09:26:20 -06:00
Vic Lee 0975b4555c libfreerdp-core: move os type settings to the client.
Moving the osMajorType and osMinorType settings to the client so that the
client can set a real os type constant. This will give a more useful hint
to the server.
2011-12-24 15:48:33 +08:00
Dorian Johnson 5d825990f2 xfreerdp: create _NET_WM_ICON atom if not already exist
fixes crash on MacOS X and systems without WM.

some of the other XInternAtom calls should probably be changed to
False, but they don't appear to cause crashes
2011-12-22 12:01:29 -06:00
David Sundstrom 622375cef2 Detect when sever visual has an inverted color map and invert all color conversions.
Remote spurious printf() in code
2011-12-21 17:00:09 -06:00
Anthony Tong a63e81581d xfreerdp: add --dbg-x11 which may help debugging 2011-12-21 12:50:22 -05:00
Norbert Federa f52526f120 xfreerdp: fix non-xinerama fullscreen issue (issue #266)
If fullscreen==true then settings->width and settings->height are
calculated in xf_monitor.c based on the vscreen->area which is in
turn calculated using xinerama functions.
Thus if xinerama is not used this will result in width=height=1.
2011-12-15 10:45:50 +01:00
Marc-André Moreau bdc181ecbe libfreerdp-gdi: fix opaque rect color with --gdi sw 2011-12-13 11:36:05 -05:00
Marc-André Moreau fcd03260d6 xfreerdp: added select() timeout 2011-12-11 18:05:32 -05:00