[gtk/surface-scale: 3/4] wayland: Notify on surface changes
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/surface-scale: 3/4] wayland: Notify on surface changes
- Date: Sat, 16 Jan 2021 20:23:01 +0000 (UTC)
commit 187d2614005948f6380467d7130e7d11c226bec3
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jan 16 15:17:08 2021 -0500
wayland: Notify on surface changes
When the width, height or scale of a surface changes,
emit property change notification.
gdk/wayland/gdksurface-wayland.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c
index dd0d1891fa..c114c04f29 100644
--- a/gdk/wayland/gdksurface-wayland.c
+++ b/gdk/wayland/gdksurface-wayland.c
@@ -389,10 +389,13 @@ gdk_wayland_surface_update_size (GdkSurface *surface,
int scale)
{
GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
+ gboolean width_changed, height_changed, scale_changed;
- if ((surface->width == width) &&
- (surface->height == height) &&
- (impl->scale == scale))
+ width_changed = surface->width != width;
+ height_changed = surface->height != height;
+ scale_changed = impl->scale != scale;
+
+ if (!width_changed && !height_changed && !scale_changed)
return;
surface->width = width;
@@ -405,6 +408,13 @@ gdk_wayland_surface_update_size (GdkSurface *surface,
wl_surface_set_buffer_scale (impl->display_server.wl_surface, scale);
gdk_surface_invalidate_rect (surface, NULL);
+
+ if (width_changed)
+ g_object_notify (G_OBJECT (surface), "width");
+ if (height_changed)
+ g_object_notify (G_OBJECT (surface), "height");
+ if (scale_changed)
+ g_object_notify (G_OBJECT (surface), "scale-factor");
}
static const char *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]