5BKYVJBZYC3JFPKM7VJ5BW7S35AZ6E3MAWOVEWKIB5ZIZJYLTC7AC ERBETXYU7NGSWW5LHQ3NSJA2N27JNMDDYMZ74B6IVQTEQMLRP6PAC WVSX4HL763MHTPSNJOCEXKGYBFYOABSPX637PKY6RAU55FFFY7YQC 7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC S7RXJJZG4IEIVLPHEWFT5M2T3SRRO5US5SYBPXSYSWJJLXAKNNPAC MIZBQX6SKECIVNNGBF3LCR3IHXQVWQ5BJURMRSBNEVEUWFBH3MTQC D425ND7AT3F7QJ3CCSESMVDOC3J5C5P32M5SJDBHECZJXLHNQ2FAC BOH54DATFCM5ZC6GDQKEU23PQSIOOINLX3UAI47STL7PP56PQUYAC CD2JEM3MH5BXN7ADZAWLJFTRZG7PMDCKISDNJEO472PIBEJHBH2AC VCNLR5X75OAXVKPZQHF5RUZ7BONBUC6RPGO2NZEUD3FZ7TEVL66AC M3FMZJBDF5GTZ2CTSIYEN3LQS3VH3OXXKRHJPHTMN4VJRFZ7HMKQC PYRALXEFRJ5O2NSVSR7WFJ56QNW2VMWYTBKKGJMDLZCHEU4JXZKQC Z2AE4753XANECH5OWR3WMFHYTH2NIINO3CZC4NXZKCJCEP6TNTTAC E7UO6NRGXFDMBU3BSJYRDNOA3Y7VHD7NWPHI5PHCPHQF6ZNOPZLQC TOFCZFUYVBVEBHMKVG6G5MKCAEF2QCQ4GKMKGQUSJRLGLDZEJF4QC 3VV4BEF4XL3UURJHRQ3MEC3E3IIE6KMNKY7DHQTMQ4QBACKIKLMQC MO5ORR7VSER3YUNO77DZJVKGOVYC2KNDCSC72J4NF7JYOHHTLRQAC W2IIP5B2G4PR6LRN5C3WYIMROFJV7YIAT5NBMCQTYCEMOZAULMVQC R7M5DZY2NDAELIYA3HNBHQZ37HJKXTESMS6U46OZ2SZVD7KIMJXQC FCEQONUYK6M5ZEWKBAPW6F64EURYKHBH4YIM4HVBSBKFRDD7YHRQC W32YIHMVPAREXUADJOAX45B6CTXZY42EE77RDDZYNJFEE2HLQ3HAC createxdeco(struct wl_listener *listener, void *data){struct wlr_xdg_toplevel_decoration_v1 *wlr_deco = data;Decoration *d = wlr_deco->data = calloc(1, sizeof(*d));LISTEN(&wlr_deco->events.request_mode, &d->request_mode, getxdecomode);LISTEN(&wlr_deco->events.destroy, &d->destroy, destroyxdeco);getxdecomode(&d->request_mode, wlr_deco);}void
destroyxdeco(struct wl_listener *listener, void *data){struct wlr_xdg_toplevel_decoration_v1 *wlr_deco = data;Decoration *d = wlr_deco->data;wl_list_remove(&d->destroy.link);wl_list_remove(&d->request_mode.link);free(d);}void
}voidgetxdecomode(struct wl_listener *listener, void *data){struct wlr_xdg_toplevel_decoration_v1 *wlr_deco = data;wlr_xdg_toplevel_decoration_v1_set_mode(wlr_deco,WLR_XDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
/* Use xdg_decoration protocol to negotiate server-side decorations */xdeco_mgr = wlr_xdg_decoration_manager_v1_create(dpy);wl_signal_add(&xdeco_mgr->events.new_toplevel_decoration, &new_xdeco);
/* Use decoration protocols to negotiate server-side decorations */wlr_server_decoration_manager_set_default_mode(wlr_server_decoration_manager_create(dpy),WLR_SERVER_DECORATION_MANAGER_MODE_SERVER);wlr_xdg_decoration_manager_v1_create(dpy);