1452 Commits

Author SHA1 Message Date
ilammy
8163b6d1ce xfreerdp: add RAIL icon cache
This commit adds a cache for RAIL application icons. It is (surpisingly)
used to cache icons for remote applications. This mechanism is described
in MS-RDPERP 3.1.1.2 Icon Cache Support and related items.

Note that some (actually, most) of the icons are not cached. These are
marked with CacheId == 0xFF. In order to keep the code clean we do not
introduce a special case and instead use a 'scratch' icon and simply
pretend to return an xfRailIcon from cache.

We're going to set icons via _NET_WM_ICON property which explains
why we use "long" values to store pixel data. The icon conversion
is not implemented in this commit, it's only stubs.

However, we do implement processing of window information orders that
contain new icons or cached references to previously sent icons. Note
that it is important to not fail (i.e., to not return FALSE) if we
cannot find a window for the icon by its ID. The server occasionally
likes to be slow or something and send icon updates for nonexistent
windows. This behavior is mandated by the spec, too:

    MS-RDPERP 3.2.5.1.6 Processing Window Information Orders

    Upon receipt of a Window Information Order for an icon or
    cached icon, as specified in sections 2.2.1.3.1.2.2 and
    2.2.1.3.1.2.3, the client SHOULD locate the local RAIL window
    that corresponds to the WindowId reported in the Hdr field
    and apply the icon updates to the RAIL window. If no such
    window can be found, the client SHOULD ignore the order.

Indeed, we silently ignore such orders now.
2018-11-14 10:53:45 +01:00
Armin Novak
9633e4576d Fixed signedness of MoniorCount 2018-10-25 14:08:20 +02:00
Armin Novak
02f68c35b9 Fixed -Wextra sign warnings 2018-10-24 13:25:31 +02:00
Bernhard Miklautz
0e9b26c1d2
Merge pull request #4796 from akallabeth/groegera_fixes
Update X11-modifier key state on focus_in
2018-10-22 12:50:21 +00:00
Bernhard Miklautz
9b353202a5 fix [x11]: compiler warnings in floatbar
client/X11/xf_floatbar.c:530:27: warning: use of logical '&&' with constant
      operand [-Wconstant-logical-operand]
        if (event->xmotion.state && Button1Mask && mode > XF_FLOATBAR_MODE_DRAGGING)
                                 ^  ~~~~~~~~~~~
client/X11/xf_floatbar.c:534:32: warning: use of logical '&&' with constant
      operand [-Wconstant-logical-operand]
        else if (event->xmotion.state && Button1Mask && mode == XF_FLOATBAR_MODE_DRAGGING)
                                      ^  ~~~~~~~~~~~
clang 8.0.0-svn344413-1~exp1+0~20181012203207.819~1.gbpc91f27
2018-10-19 11:33:28 +02:00
Markus Mattes
a235b44f61 added missing check for remote app where no floatbar exists 2018-10-18 15:33:01 +02:00
akallabeth
305f5d1bd5
Merge pull request #4600 from andreesteve/xfullscreen
X11: Fix fullscreen toggle
2018-10-17 17:27:29 +02:00
Martin Fleisz
e46d1d95ff
Merge pull request #4926 from akallabeth/primary_order_checks
Order data validation and correction
2018-10-17 16:02:28 +02:00
akallabeth
5778bf102b
Merge pull request #4891 from akallabeth/rail_fixes
Rail fixes #4846 and a crash
2018-10-17 11:32:56 +02:00
Armin Novak
10cc319973 Announce glyph orders if glyph cache is activated. 2018-10-17 10:47:23 +02:00
Armin Novak
ca3fb26230 Deactivated unimplemented orders. 2018-10-15 15:22:50 +02:00
Armin Novak
f88ed950d3 Fixed various issues with primary orders. 2018-10-15 14:30:58 +02:00
Armin Novak
a8a6accc15 Fixed compiler warnings. 2018-10-03 15:16:59 +02:00
David Fort
2e1bf90bd9
Merge pull request #4885 from akallabeth/autoreconnect_handle_window_events
Fixed #3423: Process xevents when in reconnect mode.
2018-10-03 09:42:16 +02:00
Armin Novak
00489ae75b Reworked checks in xf_disp.c 2018-10-02 12:33:52 +02:00
Armin Novak
f332779982 Fixed floatbar X11 leak. 2018-10-01 10:50:47 +02:00
Armin Novak
046d2296a0 Fixed floatbar X11 leak. 2018-10-01 10:49:30 +02:00
Armin Novak
a5b689b35d Readded override redirect but reset on focus loss. 2018-09-26 12:38:16 +02:00
Armin Novak
316eed1fbf Menus are no longer popup windows but dropdown menus. 2018-09-26 12:38:16 +02:00
Armin Novak
fa7902c362 Fixed argument check for floatbar events. 2018-09-26 10:14:51 +02:00
David Fort
d0612151f9
Merge pull request #4874 from r-barnett/fix-MonitorLocalShift
MonitorLocalShiftX,Y should be set when 1st monitor from MonitorIds s…
2018-09-26 10:02:49 +02:00
Martin Fleisz
a90b74b8dc
Merge pull request #4879 from akallabeth/clip_fix
Fixes for clipboard #4876
2018-09-26 09:37:41 +02:00
akallabeth
0b8a66188c
Merge pull request #4865 from mmattes/feature/floatbar
Feature/floatbar for X11
2018-09-25 16:34:20 +02:00
Armin Novak
8357f61818 Fixed load/unload for display channel. 2018-09-24 16:44:25 +02:00
Armin Novak
51f97f2d3e Fixed #3423: Process xevents when in reconnect mode.
Fixed crashes due to unloaded disp channel in reconnect mode.
2018-09-24 16:24:32 +02:00
Armin Novak
13478c7445 Skip empty server format response. 2018-09-24 12:47:46 +02:00
Armin Novak
897c0c72a7 Unified auto_reconnect functions for all clients. 2018-09-24 10:31:43 +02:00
rbarnett
41664572a5 MonitorLocalShiftX,Y should be set when 1st monitor from MonitorIds selected as primary 2018-09-21 13:40:48 -05:00
akallabeth
30601608e4
Merge pull request #4855 from r-barnett/fix-logoff-exit-code
Map a particular disconnect situation triggered by a user logging off…
2018-09-20 12:07:36 +02:00
rbarnett
5d3e76bd80 Replace cryptic names; move the disconnect ultimatum reasons enum into public API and rename; remove setter 2018-09-19 09:36:39 -05:00
rbarnett
8458266183 Store the disconnect provider ulimatum reason in a new field in struct rdp_context and move the test for a logoff reason to xf_client.c 2018-09-18 15:31:10 -05:00
Markus Mattes
36fc5dde21 fix hidden floatbar consumes a lot of cpu 2018-09-18 21:46:02 +02:00
Markus Mattes
21e4804a7f implemented floatbar for x11 2018-09-18 21:25:51 +02:00
Martin Fleisz
0b7b9c0dc4
Merge pull request #4842 from akallabeth/smartcard_rdp_logon
Added /smartcard-logon option to set flag. (Stripped version of #4837…
2018-09-17 09:08:47 +02:00
Martin Fleisz
3c158299a3
Merge pull request #4853 from r-barnett/add-nego-fail-exit-code
Add an exit code for a security protocol negotiation failure
2018-09-14 10:59:31 +02:00
Armin Novak
97c909107f Fixed const correctness for RAIL callbacks. 2018-09-14 10:07:22 +02:00
rbarnett
1e7be9908b Add an exit code for a security protocol negotiation failure 2018-09-13 10:29:23 -05:00
rbarnett
4e97edadec Set an error exit code for an unsuccessful reconnect 2018-09-12 10:16:27 -05:00
Armin Novak
0de43c8b85 Added /smartcard-logon option to set flag. (Stripped version of #4837 by @informatimago) 2018-09-04 15:50:03 +02:00
Armin Novak
54f3a388da Fixed #4835: BeginPaint callback now optional. 2018-09-04 10:40:17 +02:00
Armin Novak
62c1696d4c Removed use of unchecked sprintf 2018-08-27 14:34:42 +02:00
Armin Novak
114abad767 Removed use of strcpy. 2018-08-27 14:34:09 +02:00
Armin Novak
48125164d7 Fixed dead initialization. 2018-08-24 13:40:36 +02:00
Martin Fleisz
f9e52c1850
Merge pull request #4815 from akallabeth/async_transport_remove
Removed +async-transport options
2018-08-24 09:48:51 +02:00
Martin Fleisz
ebef5a5e2e
Merge pull request #4811 from akallabeth/dyn_fullscreen_fix
Fixed single monitor fullscreen resolution update.
2018-08-23 16:58:22 +02:00
Armin Novak
c3a26b0d6a Removed +async-transport options
The async transport option is broken by design.
If used the main loop is called from the transport thread and the
main thread of the application.
Unless the transport layer is refactored to just work on queues
(input and output) this option will never work, therefore remove it.
2018-08-22 13:56:37 +02:00
Ondrej Holy
e7d5aae514 client/x11: Silence false positive warnings from covscan
Add code annotation to silence false positive warnings from covscan
due to omitting termination \0.

buffer_size: Calling strncpy with a source string whose length (13 chars) is greater than or equal to the size argument (13) will fail to null-terminate "&tmp[cs]".
2018-08-22 13:35:43 +02:00
Ondrej Holy
baeb29a7e0 client/x11: Fix leak found by covscan
leaked_storage: Variable "actionScript" going out of scope leaks the storage it points to.
2018-08-22 13:35:43 +02:00
Ondrej Holy
dde4c38382 client/x11: Format code by astyle
Run ./scripts/format_code.sh before the following changes.
2018-08-22 13:35:43 +02:00
Armin Novak
02dc6ab3f7 Fixed single monitor fullscreen resolution update. 2018-08-21 13:00:39 +02:00