explicitly mark all windows as unmanaged

This commit is contained in:
Felix Kratz 2024-08-14 15:39:16 +02:00
parent fb59232911
commit cede73e0e7
2 changed files with 19 additions and 10 deletions

View file

@ -30,20 +30,27 @@ void window_create(struct window* window, CGRect frame) {
window->origin = frame.origin;
window->frame.origin = CGPointZero;
window->frame.size = frame.size;
frame.origin = CGPointZero;
CFTypeRef frame_region = window_create_region(window, frame);
uint64_t id;
SLSNewWindow(g_connection,
kCGBackingStoreBuffered,
window->origin.x,
window->origin.y,
frame_region,
&id );
window->id = (uint32_t)id;
uint32_t id;
CFTypeRef frame_region = window_create_region(window, frame);
CFTypeRef empty_region = CGRegionCreateEmptyRegion();
SLSNewWindowWithOpaqueShapeAndContext(g_connection,
kCGBackingStoreBuffered,
frame_region,
empty_region,
13 | (1 << 18),
&set_tags,
window->origin.x,
window->origin.y,
64,
&id,
NULL );
CFRelease(empty_region);
CFRelease(frame_region);
window->id = id;
SLSSetWindowResolution(g_connection, window->id, 2.0f);
SLSSetWindowTags(g_connection, window->id, &set_tags, 64);
SLSClearWindowTags(g_connection, window->id, &clear_tags, 64);

View file

@ -10,8 +10,10 @@ extern CGError SLSTransactionMoveWindowWithGroup(CFTypeRef transaction, uint32_t
extern CGError SLSTransactionCommitUsingMethod(CFTypeRef transaction, uint32_t method);
extern CGError SLSTransactionCommit(CFTypeRef transaction, uint32_t async);
extern CFTypeRef CGRegionCreateEmptyRegion(void);
extern CGError SLSDisableUpdate(int cid);
extern CGError SLSReenableUpdate(int cid);
extern CGError SLSNewWindowWithOpaqueShapeAndContext(int cid, int type, CFTypeRef region, CFTypeRef opaque_shape, int options, uint64_t *tags, float x, float y, int tag_size, uint32_t *wid, void *context);
extern CGError SLSNewWindow(int cid, int type, float x, float y, CFTypeRef region, uint64_t *wid);
extern CGError SLSReleaseWindow(int cid, uint32_t wid);
extern CGError SLSSetWindowTags(int cid, uint32_t wid, uint64_t* tags, int tag_size);