summaryrefslogtreecommitdiff
path: root/src/platform/wayland/buffer.c
diff options
context:
space:
mode:
authorBerke Güzel <wenekar1@gmail.com>2026-10-13 21:23:03 +0300
committerBerke Güzel <wenekar1@gmail.com>2026-10-13 21:23:03 +0300
commitdd1775a9927922c14f8679ccbc4d3ca8d5917e20 (patch)
tree3acc442bb4a3470364b74aa82ff67cb84d555c45 /src/platform/wayland/buffer.c
parentecb81aeea4c0c880b3a60a0dc8418c4bf2a7cf85 (diff)
public api refactor
Diffstat (limited to 'src/platform/wayland/buffer.c')
-rw-r--r--src/platform/wayland/buffer.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/platform/wayland/buffer.c b/src/platform/wayland/buffer.c
index b906f4f..874cc76 100644
--- a/src/platform/wayland/buffer.c
+++ b/src/platform/wayland/buffer.c
@@ -182,10 +182,13 @@ int apply_pending_geometry(struct wayland_surface *w)
w->buffers[i].presented = false;
}
publish_surface_scale(w);
- if (w->cbs->configure && (resized || rescaled))
- w->cbs->configure(&w->base, (struct yasl_geometry){
+ if (resized || rescaled) {
+ yasl_surface_notify_configure(&w->base, (struct yasl_geometry){
.size = { .x = width, .y = height }, .scale_120 = w->scale_120,
- }, w->ud);
+ });
+ if (w->closed || w->destroyed)
+ return -1;
+ }
return 0;
}
@@ -525,9 +528,11 @@ void surface_draw_frame(struct wayland_surface *w)
};
w->frame_active = true;
w->frame_presented = false;
- w->cbs->draw(&w->base, &w->frame, w->ud);
+ yasl_surface_draw(&w->base, &w->frame);
+ if (w->closed || w->destroyed)
+ return;
w->frame_active = false;
- if (!w->closed && !w->frame_presented)
+ if (!w->frame_presented)
w->frames_skipped++;
}