mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-11-17 02:25:09 +00:00
wayland: rework window destruction/resizing
This commit is contained in:
parent
0b00ff487f
commit
343f4545cd
@ -1145,10 +1145,14 @@ window_free_buffer(struct window* window) {
|
|||||||
|
|
||||||
void
|
void
|
||||||
window_destroy(struct window *window) {
|
window_destroy(struct window *window) {
|
||||||
cairo_surface_destroy(window->cairo_surface);
|
window_free_buffer(window);
|
||||||
cairo_destroy(window->cr);
|
zwlr_layer_surface_v1_destroy(window->layer_surface);
|
||||||
g_object_unref(window->layout);
|
wl_surface_attach(window->surface, nullptr, 0, 0);
|
||||||
g_object_unref(window->pango_context);
|
wl_surface_commit(window->surface);
|
||||||
|
wl_display_roundtrip(global_display);
|
||||||
|
wl_surface_destroy(window->surface);
|
||||||
|
wl_shm_destroy(window->shm);
|
||||||
|
delete window;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1157,6 +1161,7 @@ window_resize(struct window *window, int width, int height) {
|
|||||||
window->rectangle.width = width;
|
window->rectangle.width = width;
|
||||||
window->rectangle.height = height;
|
window->rectangle.height = height;
|
||||||
window_allocate_buffer(window);
|
window_allocate_buffer(window);
|
||||||
|
window_layer_surface_set_size(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1165,7 +1170,6 @@ window_commit_buffer(struct window *window) {
|
|||||||
wl_surface_set_buffer_scale(global_window->surface, global_window->scale);
|
wl_surface_set_buffer_scale(global_window->surface, global_window->scale);
|
||||||
wl_surface_attach(window->surface, get_buffer_from_cairo_surface(window->cairo_surface), 0, 0);
|
wl_surface_attach(window->surface, get_buffer_from_cairo_surface(window->cairo_surface), 0, 0);
|
||||||
/* repaint all the pixels in the surface, change size to only repaint changed area*/
|
/* repaint all the pixels in the surface, change size to only repaint changed area*/
|
||||||
window_layer_surface_set_size(global_window);
|
|
||||||
wl_surface_damage(window->surface, window->rectangle.x,
|
wl_surface_damage(window->surface, window->rectangle.x,
|
||||||
window->rectangle.y,
|
window->rectangle.y,
|
||||||
window->rectangle.width,
|
window->rectangle.width,
|
||||||
|
Loading…
Reference in New Issue
Block a user