Commit Graph

182 Commits

Author SHA1 Message Date
Norbert Federa
eb14ab15f5 xfreerdp: removed some weird/unnecessary code 2015-04-16 17:31:22 +02:00
Norbert Federa
6354a7561c xfreerdp: rename xf_context's width height vars
Since several contributers in the past repeatedly made the error
to treat xfc->width and xfc->height as equal with the x11 window
width and heigth I've renamed these variables to sessionWidth and
sessionHeight.
2015-04-16 17:31:22 +02:00
bjcollins
d4a9a2d3a8 Remove override redirect flag for fullscreen with keyboard grab enabled. Window manager should always know about the main window.
Small cleanup of passing around decorations flag.
Limit PercentScreen to single monitor vs. entire desktop. IMO - this is better behavior in a multimonitor environment.

Handle fullscreen windows better:
1. Ensure that size hints are set to allow resizing before setting a window to fullscreen as some window managers do not behave properly.
2. Handle fullscreen toggles without destroying and recreating window.
3. Use NET_WM_STATE_FULLSCREEN Extended Window Manager Hint for fullscreen functionality
4. Use the NET_WM_FULLSCREEN_MONITORS Extended Window Manager Hint when appropriate
5. When a single monitor fullscreen is requested - use the current monitor(as determined from mouse location)
6. Handle cases where there is no local monitor at coordinate 0,0. The Windows server expect there to be a monitor at this location, so we maintain offset if necessary between our local primary monitor and the server side primary monitor located at 0,0.
2015-02-23 11:22:28 -06:00
bjcollins
ee8d0a6440 Fix remote app in xfreerdp.
Remove use of the visibleOffset, this completely breaks the display of all windows except for the main application window. Instead,
just maintain a local offset correction of the windowOffset.

Apply workaround to determining the workArea for remote app mode.
2015-02-11 17:24:06 -06:00
Marc-André Moreau
9b9fbd2ab1 xfreerdp: fix fullscreen mode 2015-02-10 15:15:30 -05:00
Armin Novak
e10b42e305 Fixed typo. 2015-01-15 15:26:43 +01:00
Armin Novak
9767f7f042 Added patch for UTF8 window titles, fixes #1364 2015-01-15 14:25:43 +01:00
Norbert Federa
25f66d2e6d xfreerdp: added smart sizing, mt gesture fixes
- removed setting ScalingFactor
- added settings SmartSizingWidth and SmartSizingHeight
- changed option /smart-sizing to optionally support <width>x<height>
- consolidated transformation of input event coordinates
- rdp8 gfx ignored scaling and panning offsets: fixed
- never resize window on panning/pinching
- simplified keyboard multitouch gesture debugging emulation
- disabled keyboard multitouch gesture emulation debug code via define
2014-12-01 11:56:44 +01:00
Armin Novak
7eb6bc112b Fixed dereference of NULL pointer. 2014-11-16 16:44:29 +01:00
Marc-André Moreau
b32341785e xfreerdp: remove dependency on libfreerdp-rail 2014-11-12 19:49:35 -05:00
Marc-André Moreau
6857a4f2b7 xfreerdp: remove old X11 RAIL code 2014-11-12 17:18:27 -05:00
Marc-André Moreau
2efa67b4f9 xfreerdp: more RAIL libfreerdp-rail migration 2014-11-12 17:00:57 -05:00
Marc-André Moreau
abf6d4f71e xfreerdp: prepare RAIL migration away from libfreerdp-rail 2014-11-12 16:42:32 -05:00
Marc-André Moreau
589c21d819 libfreerdp-utils: remove rail utils 2014-11-12 10:18:53 -05:00
Marc-André Moreau
1225c6b5ce xfreerdp: separate app windows from desktop windows 2014-11-11 22:27:33 -05:00
Marc-André Moreau
fb5e33440c xfreerdp: cleanup xf_window.c, xf_rail.c 2014-11-11 20:26:47 -05:00
Armin Novak
7913a57bc5 Using wlog for logging in clients now. 2014-09-15 08:55:00 +02:00
Daniel Bungert
27fc3ee64d Fix multiple cases of use of uninitialized vars
* Zeroing xevent helped address some erratic behavior.
* valgrind complained about using xfBitmap uninitialized
  during shutdown, traced it back to the initialization.
  Bitmap_Prototype->size > sizeof(rdpBitmap).
* Early exit from recv_tpkt_pdu is necessary to address
  a shutdown crash - the channelId value was being used
  without being set in the disconnect case.
2014-08-20 03:54:05 -06:00
Marc-André Moreau
95a0d96b58 xfreerdp: fix build warnings 2014-06-23 12:08:34 -04:00
Marc-André Moreau
78d3c82798 xfreerdp: fix multiple egfx-related memory leaks 2014-06-20 13:52:13 -04:00
Armin Novak
b1770c33fd Now using posix shared memory with process specific identifier. 2014-05-23 13:09:11 +02:00
Dan Bungert
dd88d7194e xfreerdp: Fix disappearing rail windows.
Rail windows currently disappear on resize and on implicit resize
(calc changing view type from standard to scientific).

The bitmask that we send to XCreateWindow() must match the actual
attributes that we are sending (see xf_create_window()).
Because of this we were unintentionally zeroing out some of the
window attributes rather than using their default values.
2014-02-12 16:22:18 -07:00
Armin Novak
a3b531c036 Fixed issues found with clang-analyzer 2013-09-05 12:14:33 +02:00
C-o-r-E
340c3a4246 merged completely (painful) from awakecoding's tree 2013-06-25 20:41:32 -04:00
Marc-André Moreau
bb78fb16f8 xfreerdp: refactor to make use of single xfContext* and remove xfInfo* 2013-06-12 18:57:25 -04:00
C-o-r-E
fe78d6d1bc attempt fixing big merge 2013-05-13 14:41:06 -04:00
Marc-André Moreau
b4151bff2f xfreerdp: fix building with Xi 2013-05-10 17:51:09 -04:00
Marc-André Moreau
91a55ae741 xfreerdp: integrate corey's multitouch code 2013-05-08 21:51:16 -04:00
C-o-r-E
6a3cbfd072 xfreerdp-client: tweaks for other clients 2013-05-07 21:42:49 -04:00
C-o-r-E
cca413a5b9 xfreerdp-client: some changes to support other clients 2013-05-06 15:43:34 -04:00
C-o-r-E
84f285401a xfreerdp-client: integrated changes from awakecoding 2013-05-05 18:20:44 -04:00
Marc-André Moreau
12ec6c60db xfreerdp: add support for selecting individual monitors 2013-04-28 18:48:27 -04:00
Marc-André Moreau
1cfda17da9 xfreerdp: partial multimonitor patch from Hans-Peter Jansen 2013-04-28 16:27:23 -04:00
Marc-André Moreau
fc3f75d867 xfreerdp: start experimenting with multitouch 2013-04-25 17:00:43 -04:00
Marc-André Moreau
720a23e07a xfreerdp: refactor xfreerdp client interface 2013-04-08 17:03:21 -04:00
Marc-André Moreau
9b351568fa xfreerdp: start implementing simplified client interface 2013-04-02 15:13:10 -04:00
Marc-André Moreau
3b0afd8b16 xfreerdp: add special extended window style WS_EX_DECORATIONS for XRDP 2013-03-28 23:47:39 -04:00
Marc-André Moreau
4ca064352f xfreerdp: fix round corners in RemoteApp 2013-03-28 23:34:26 -04:00
Marc-André Moreau
d70c1e4d5e xfreerdp: fix RemoteApp decorations 2013-03-28 23:09:28 -04:00
David Barth
96290efd76 add wm-class option 2013-03-26 17:33:09 +01:00
Marc-André Moreau
c19c8a40dd libfreerdp-core: fix some async updates race conditions 2013-02-14 17:43:37 -05:00
Marc-André Moreau
2d38f99db0 libfreerdp-core: add true asynchronous input and update 2013-02-06 21:57:49 -05:00
Marc-André Moreau
b3d8f79b5c libfreerdp-utils: replace ARRAY_SIZE custom macro with ARRAYSIZE() windows macro 2012-11-21 20:50:28 -05:00
Marc-André Moreau
5e77cefb08 libfreerdp-utils: removed part of the deprecated calls to xzalloc 2012-11-19 23:49:08 -05:00
Marc-André Moreau
6427c9dd90 libfreerdp-core: rdpSettings refactoring (part 2) 2012-11-07 15:13:14 -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
9909a12af5 libfreerdp-utils: get rid of xmalloc, xrealloc and xfree 2012-10-08 23:21:26 -04:00
Marc-André Moreau
e60a092d81 freerdp: fix headers 2012-10-08 23:02:04 -04:00
Jay Sorg
67b6acc7a8 rail: fixes for crash when creating and deleting windows fast and added support for xrdp rail / local decoration 2012-09-18 15:57:19 -07:00
Marc-André Moreau
1df57f631b xfreerdp: code style cleanup 2012-09-02 16:34:06 -04:00
Marc-André Moreau
faa4311232 libwinpr: add proper config.h inclusions 2012-08-14 17:20:53 -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
Ying-Chun Liu (PaulLiu)
9a64adb9aa Set _NET_WM_PID X property when the window is creating.
_NET_WM_PID is used by some window managers to map the window
and the XDG desktop files. This patch sets _NET_WM_PID for this
purpose.

Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@canonical.com>
2012-07-09 14:52:15 +08:00
Irwan Halim
c9c22fa331 Add GStreamer plugin for Multi-media redirection 2012-06-13 14:45:58 -05:00
David Sundstrom
8f8389f66e use coding standard comment style 2012-05-25 18:01:25 -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
fd429eb46f Tooltips should not be listed when remapped 2012-05-25 17:56:04 -05:00
David Sundstrom
cfcabaefc2 Do not use override redirect - causes windows to appear on all desktops
Enable non-rectangular windows and test with windows media player
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
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
Vic Lee
f480b23439 x11: fix window resizing. 2012-04-26 14:01:34 +08:00
Mads Kiilerich
ee7189bf2a x: please valgrind by initializing structure passed to X through writev 2012-03-16 15:45:14 +01:00
Mads Kiilerich
15169d0314 introduce generic ARRAY_SIZE macro 2012-02-28 18:11:11 +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
031482a5ba Issue #274 - wrong macro used for WITH_DEBUG_X11_LOCAL_MOVESIZE 2011-12-13 18:47:21 -06:00
Marc-André Moreau
31d47302ef xfreerdp: fix unused variables warnings 2011-12-09 18:20:23 -05: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
4d341f27a5 Do not make windows with borders transient
Z
2011-12-06 16:39:53 -08: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
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
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
d3e953ba24 Fix issue with newly added pointer support for remote apps.
Reset current window when window is destroyed
2011-11-17 16:01:00 -06:00
David Sundstrom
96accb0327 Fix issue 202. No cursor icons for RemoteApp
Pointer updates are part of the base RDP protocol MS-RDPBCGR specification and do not include window information like those from the RAIL specification MS-RDPERP do.  To make pointer updates work, we need to keep track of which window has focus and then apply pointer updates to that window.  This appears to be easy to do, just watch for X11 EnterNotify events and update the window field of the main RDP structure.  I had some concerns that a window might receive an old pointer update for some other window due to network latencies, however, the RDP server seems to always send down new pointer updates whenver a window takes focus.
2011-11-14 16:42:14 -06:00
David Sundstrom
0790c22683 remove unused pixmap 2011-11-02 18:31:14 -05:00
David Sundstrom
7a51d0300a Fix memory leak in xf_window.c. If property lookup for current desktop failed, we leaked property memory for workspace attributes. Added check in case returned desktop number is greater than number of workspaces. 2011-11-02 18:31:14 -05:00
David Sundstrom
7322ef8047 Port to Solaris 10u9.
Added -lrt which is a required library for the sem_*() functions
Fixed xf_window.c to not return null for zero-width windows - rather coerce values to be valid as was already being done for height and width. This fixes intermittent crashs on Solars and Linux.
2011-10-31 12:55:05 -05:00
David Sundstrom
21dcb56a72 Add missing includes for Solaris 2011-10-28 11:27:09 -05:00
Anthony Tong
245a5498cc xfreerdp: set icon for DesktopWindow 2011-10-22 12:02:42 -05:00
Norbert Federa
c83038b4b3 xfreerdp: fix xf_GetWindowProperty
xf_GetWindowProperty should return False if the specified property does not exist.
It is not sufficient to simply check for the return value of XGetWindowProperty.
XGetWindowProperty also returns Success if the specified property does not exist.
However, it will return "None" to the actual_type_return parameter in that case.
This change fixes several crashes with some (exotic) window managers.
2011-10-17 15:39:06 +02:00
Marc-André Moreau
7e6ce7ca4c xfreerdp: improve fullscreen mode 2011-10-07 15:50:07 -04:00
Marc-André Moreau
07077e2d3d xfreerdp: apply patch from zstegi (would grab window manager key combinations) 2011-10-04 18:46:49 -04:00
Marc-André Moreau
a573898810 xfreerdp: improve error tolerance in xf_GetWorkArea 2011-09-26 23:06:45 -04:00
Marc-André Moreau
d60adb8325 Merge pull request #120 from llyzs/cliprdr
Integrate cliprdr with xfreerdp
2011-09-23 07:07:43 -07:00
Vic Lee
783681664a cliprdr: integrate with xfreerdp. 2011-09-23 13:41:26 +08:00
Marc-André Moreau
c003c5c038 xfreerdp: initial RemoteApp support with --gdi hw (much faster) 2011-09-23 00:06:39 -04:00
Marc-André Moreau
3869228349 xfreerdp: RemoteApp stabilization (window movement, region update) 2011-09-22 21:23:01 -04:00
Marc-André Moreau
5207be87f6 xfreerdp: properly handle local Alt+F4 for RemoteApp windows 2011-09-21 08:36:49 -04:00
Marc-André Moreau
278422aed5 xfreerdp: fix fullscreen window toggle 2011-09-13 22:20:04 -04:00
Marc-André Moreau
097caee5e0 Merge pull request #81 from roman-b/rail
Rail Local Move/Size support looks like finished.
2011-09-06 11:52:57 -07:00
Vic Lee
ccebb5bb3d xfreerdp: process actual desktop window resizing. 2011-09-06 16:22:53 +08:00
roman-b
059eff9f56 xfreerdp: fixed "window shake" effect in RAIL Local Move/Size. 2011-09-06 00:25:46 +03:00
roman-b
0ec2777875 xfreerdp: fixed NULL windows destroying. 2011-09-05 23:42:18 +03:00
Vic Lee
01939cbd28 xfreerdp: add missing event mask. 2011-09-06 00:06:49 +08: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