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
}
void
getxdecomode(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);