Implement support for XDG window decoration

* 12to11.c (XLMain): Initialize window decoration.
* Imakefile (SRCS, OBJS): Add decoration.c and decoration.o.
* README: Document support for zdg_decoration_manager_v1.
* compositor.h: Update prototypes.
* xdg_toplevel.c (XdgDecoration, DecorationMode): New types.
(enum _DecorationMode): New structures.
(struct _XdgToplevel): New fields `decor' and `decoration'.
(struct _XdgDecoration): New struct.
(SendDecorationConfigure): New function.
(Commit): Apply decoration should it be dirty.
(HandleResourceDestroy): Detach decoration object.
(Destroy): Post error if decoration object would be orphaned.
(DestroyDecoration, SetMode, UnsetMode)
(HandleDecorationResourceDestroy, XLXdgToplevelGetDecoration):
New functions.
This commit is contained in:
oldosfan 2022-09-30 07:38:12 +00:00
parent e09fe5f5b5
commit a5f2c99939
5 changed files with 239 additions and 8 deletions

View file

@ -21,7 +21,7 @@ SRCS = 12to11.c run.c alloc.c fns.c output.c compositor.c \
dmabuf.c buffer.c select.c xdata.c xsettings.c dnd.c \
icon_surface.c primary_selection.c renderer.c \
picture_renderer.c explicit_synchronization.c transform.c \
wp_viewporter.c
wp_viewporter.c decoration.c
OBJS = 12to11.o run.o alloc.o fns.o output.o compositor.o \
surface.o region.o shm.o atoms.o subcompositor.o positioner.o \
@ -30,7 +30,7 @@ OBJS = 12to11.o run.o alloc.o fns.o output.o compositor.o \
dmabuf.o buffer.o select.o xdata.o xsettings.o dnd.o \
icon_surface.o primary_selection.o renderer.o \
picture_renderer.o explicit_synchronization.o transform.o \
wp_viewporter.o
wp_viewporter.o decoration.o
GENHEADERS = transfer_atoms.h
@ -110,6 +110,7 @@ ScannerTarget(xdg-shell)
ScannerTarget(primary-selection-unstable-v1)
ScannerTarget(linux-explicit-synchronization-unstable-v1)
ScannerTarget(viewporter)
ScannerTarget(xdg-decoration-unstable-v1)
/* Make OBJS depend on scanner headers, and depend on both them and SRCS. */
$(OBJS): $(GENHEADERS)