FreeRDP/client
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
..
Android Merge pull request #4906 from FeLvi-zzz/japanese-patch 2018-10-02 15:46:17 +02:00
common fix [cmdline]: parameter parsing 2018-11-08 11:13:57 +01:00
DirectFB Removed winpr_exit 2018-04-03 12:56:33 +02:00
iOS Fixed PubSub function pointer casts. 2018-02-14 11:00:52 +01:00
Mac Fix #4851: Software GDI is now default 2018-09-20 10:44:03 +02:00
Sample Removed winpr_exit 2018-04-03 12:56:33 +02:00
Wayland Fix #4851: Software GDI is now default 2018-09-20 10:44:03 +02:00
Windows Merge pull request #4865 from mmattes/feature/floatbar 2018-09-25 16:34:20 +02:00
X11 xfreerdp: add RAIL icon cache 2018-11-14 10:53:45 +01:00
.gitignore wlfreerdp: add initial man page 2017-01-16 11:11:59 +01:00
CMakeLists.txt Use SetFreeRDPCMakeInstallDir where CMake modules are installed 2018-05-02 10:36:52 -05:00
freerdp-client.pc.in Include major version number in library names 2017-01-16 11:11:58 +01:00
FreeRDP-ClientConfig.cmake.in appropriate names in server & client cmake exports 2016-02-03 13:37:35 +01:00