]> git.sur5r.net Git - i3/i3/commit
Migrate i3 rendering to cairo.
authorIngo Bürk <ingo.buerk@tngtech.com>
Mon, 16 Nov 2015 20:26:06 +0000 (21:26 +0100)
committerIngo Bürk <ingo.buerk@tngtech.com>
Mon, 23 Nov 2015 21:18:02 +0000 (22:18 +0100)
commitb66504988366b123ebaa5e45160d584495c1f9a1
tree0392dd73062085d5ccd278aac6cde7f6bbdde197
parentd9bbfb7b351f13a3a86e43f69fc7d2e4a18582f4
Migrate i3 rendering to cairo.

This patch migrates all decoration rendering of i3 to cairo. Using the
compile switch CAIRO_SUPPORT, rendering can be switched back to the
previous XCB behavior, just like with the previous migration to cairo
in i3bar.

This patch also fixes a bug in draw_util.c where copying one surface
to another would use incorrect coordinates if the source coordinates
are not 0, 0.

Furthermore, this patch implicitly fixes some minor issues in the
decoration rendering which would be ignored previously due to the fact
that errors would only show up in the event queue, but not cause the
rendering code path to crash. One example is zero-height pixmaps which
are not allowed. Using cairo, these would cause i3 to instantly segfault,
so this patch avoids this.

Lastly, this patch annotates other issues found but not fixed in this patch
using TODO comments, e.g., the zero-height check not working correctly
and the comment that it should probably work the same way for zero-width
pixmaps.

relates to #1278
i3bar/src/xcb.c
include/data.h
include/libi3.h
include/xcb.h
libi3/draw_util.c
src/con.c
src/handlers.c
src/main.c
src/manage.c
src/x.c
src/xcb.c