mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-22 05:27:20 +00:00
[client] wayland: do not leak cursor wl_buffer and wl_surface
This commit is contained in:
parent
a380803d37
commit
30c3b399f2
@ -82,17 +82,25 @@ bool waylandCursorInit(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
struct wl_buffer * cursorBuffer = createCursorBuffer();
|
||||
if (cursorBuffer)
|
||||
wlWm.cursorBuffer = createCursorBuffer();
|
||||
if (wlWm.cursorBuffer)
|
||||
{
|
||||
wlWm.cursor = wl_compositor_create_surface(wlWm.compositor);
|
||||
wl_surface_attach(wlWm.cursor, cursorBuffer, 0, 0);
|
||||
wl_surface_attach(wlWm.cursor, wlWm.cursorBuffer, 0, 0);
|
||||
wl_surface_commit(wlWm.cursor);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void waylandCursorFree(void)
|
||||
{
|
||||
if (wlWm.cursor)
|
||||
wl_surface_destroy(wlWm.cursor);
|
||||
if (wlWm.cursorBuffer)
|
||||
wl_buffer_destroy(wlWm.cursorBuffer);
|
||||
}
|
||||
|
||||
void waylandShowPointer(bool show)
|
||||
{
|
||||
wlWm.showPointer = show;
|
||||
|
@ -121,6 +121,7 @@ static void waylandFree(void)
|
||||
waylandInputFree();
|
||||
waylandOutputFree();
|
||||
waylandRegistryFree();
|
||||
waylandCursorFree();
|
||||
wl_display_disconnect(wlWm.display);
|
||||
}
|
||||
|
||||
|
@ -110,6 +110,7 @@ struct WaylandDSState
|
||||
#endif
|
||||
|
||||
struct wl_surface * cursor;
|
||||
struct wl_buffer * cursorBuffer;
|
||||
|
||||
struct wl_data_device_manager * dataDeviceManager;
|
||||
|
||||
@ -188,6 +189,7 @@ void waylandCBRelease(void);
|
||||
|
||||
// cursor module
|
||||
bool waylandCursorInit(void);
|
||||
void waylandCursorFree(void);
|
||||
void waylandShowPointer(bool show);
|
||||
|
||||
// gl module
|
||||
|
Loading…
Reference in New Issue
Block a user