diff options
author | Alexander Larsson <alexl@redhat.com> | 2014-12-16 13:27:49 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2014-12-16 13:27:49 +0100 |
commit | b52a06ac6fae2cd777169db425e6ebc5cad44a10 (patch) | |
tree | 8f2ab734f86c2332fc5d685fd82afbd729bc1cc8 /gtk/gtkglarea.c | |
parent | 08853c7364651390d888b04e159915d9ba77f7ba (diff) | |
download | gtk+-b52a06ac6fae2cd777169db425e6ebc5cad44a10.tar.gz |
GtkGLArea: Handle window scale factor changes
We need to re-allocate the buffers for the new gl size.
Diffstat (limited to 'gtk/gtkglarea.c')
-rw-r--r-- | gtk/gtkglarea.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c index e68dc01c0d..a9dc31027a 100644 --- a/gtk/gtkglarea.c +++ b/gtk/gtkglarea.c @@ -298,6 +298,22 @@ gtk_gl_area_realize (GtkWidget *widget) priv->needs_resize = TRUE; } +static void +gtk_gl_area_notify (GObject *object, + GParamSpec *pspec) +{ + if (strcmp (pspec->name, "scale-factor") == 0) + { + GtkGLArea *area = GTK_GL_AREA (object); + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + priv->needs_resize = TRUE; + } + + if (G_OBJECT_CLASS (gtk_gl_area_parent_class)->notify) + G_OBJECT_CLASS (gtk_gl_area_parent_class)->notify (object, pspec); +} + static GdkGLContext * gtk_gl_area_real_create_context (GtkGLArea *area) { @@ -843,6 +859,7 @@ gtk_gl_area_class_init (GtkGLAreaClass *klass) gobject_class->set_property = gtk_gl_area_set_property; gobject_class->get_property = gtk_gl_area_get_property; gobject_class->dispose = gtk_gl_area_dispose; + gobject_class->notify = gtk_gl_area_notify; g_object_class_install_properties (gobject_class, LAST_PROP, obj_props); |