weston/shared
Emmanuel Gil Peyrot 6b58ea8c43 xwm: Add icon support to the frame
This fetches the _NET_WM_ICON property of the X11 window, and use the
first image found as the frame icon.

This has been tested with various X11 programs, and improves usability
and user-friendliness a bit.

Changes since v1:
- Changed frame_button_create() to use
  frame_button_create_from_surface() internally.
- Removed a check that should never have been commited.

Changes since v2:
- Request UINT32_MAX items instead of 2048, to avoid cutting valid
  icons.
- Strengthen checks against malformed input.
- Handle XCB_PROPERTY_DELETE to remove the icon.
- Schedule a repaint if the icon changed.

Changes since v3:
- Keep the previous Cairo surface until the new one has been
  successfully loaded.
- Use uint32_t for cardinals.  Unsigned is the same type except on
  16-bit machines, but uint32_t is clearer.
- Declare length as uint32_t too, like in xcb_get_property_reply_t.

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2018-01-18 12:24:19 +00:00
..
cairo-util.c xwm: Use Pango to draw title string if available 2017-12-05 14:09:31 +00:00
cairo-util.h xwm: Add icon support to the frame 2018-01-18 12:24:19 +00:00
config-parser.c config-parser: Export weston_config_next_section 2017-02-21 12:55:15 -08:00
config-parser.h config-parser: fix short_name type 2017-12-04 19:37:25 +00:00
file-util.c shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
file-util.h shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
frame.c xwm: Add icon support to the frame 2018-01-18 12:24:19 +00:00
helpers.h shared/helpers.h: fix a typo in a comment 2017-01-03 11:59:08 +00:00
image-loader.c shared/image: Silence maybe-uninitialized warning 2016-08-15 16:31:00 +02:00
image-loader.h shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
matrix.c shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
matrix.h shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
option-parser.c option-parser: replace int/0/1 with bool/false/true 2017-12-04 19:37:33 +00:00
os-compatibility.c os: Check for EINTR on ftruncate() 2017-03-24 21:02:30 +01:00
os-compatibility.h log: Open log file CLOEXEC so child processes don't get the fd 2015-07-16 19:28:36 -07:00
platform.h shared/platform.h: introduce weston_platform_destroy_egl_surface() 2016-11-21 16:07:05 +00:00
string-helpers.h string-helpers.h: Fix usage on musl libc 2016-09-24 11:55:58 +02:00
timespec-util.h shared: Add timespec_to_proto helper function 2017-12-18 11:27:43 +02:00
weston-egl-ext.h gl-renderer: Emit GPU rendering begin and end timeline timepoints 2017-09-29 10:20:54 +03:00
xalloc.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
xalloc.h include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
zalloc.h shared: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00