You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.6 KiB
164 lines
5.6 KiB
From 9511ba9c3772c2415ae6501f6d977bc4ba057c55 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Ralf=20Cors=C3=A9pius?= <corsepiu@fedoraproject.org>
|
|
Date: Thu, 15 Mar 2018 15:50:29 +0100
|
|
Subject: [PATCH 1/2] gtkglext-1.2.0-bz677457
|
|
|
|
---
|
|
gtk/gtkglwidget.c | 48 ++++++++++++++++++++++++++++--------------------
|
|
1 file changed, 28 insertions(+), 20 deletions(-)
|
|
|
|
diff --git a/gtk/gtkglwidget.c b/gtk/gtkglwidget.c
|
|
index ecb41ef..7381739 100644
|
|
--- a/gtk/gtkglwidget.c
|
|
+++ b/gtk/gtkglwidget.c
|
|
@@ -16,7 +16,9 @@
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
|
*/
|
|
|
|
-#include <gtk/gtkmain.h>
|
|
+#ifdef HAVE_CONFIG_H
|
|
+#include "config.h"
|
|
+#endif /* HAVE_CONFIG_H */
|
|
|
|
#include "gtkglprivate.h"
|
|
#include "gtkglwidget.h"
|
|
@@ -68,6 +70,7 @@ static void
|
|
gtk_gl_widget_realize (GtkWidget *widget,
|
|
GLWidgetPrivate *private)
|
|
{
|
|
+ GdkWindow *window;
|
|
GdkGLWindow *glwindow;
|
|
|
|
GTK_GL_NOTE_FUNC_PRIVATE ();
|
|
@@ -77,9 +80,10 @@ gtk_gl_widget_realize (GtkWidget *widget,
|
|
* handlers.
|
|
*/
|
|
|
|
- if (!gdk_window_is_gl_capable (widget->window))
|
|
+ window = gtk_widget_get_window (widget);
|
|
+ if (!gdk_window_is_gl_capable (window))
|
|
{
|
|
- glwindow = gdk_window_set_gl_capability (widget->window,
|
|
+ glwindow = gdk_window_set_gl_capability (window,
|
|
private->glconfig,
|
|
NULL);
|
|
if (glwindow == NULL)
|
|
@@ -127,9 +131,9 @@ gtk_gl_widget_size_allocate (GtkWidget *widget,
|
|
* Synchronize OpenGL and window resizing request streams.
|
|
*/
|
|
|
|
- if (GTK_WIDGET_REALIZED (widget) && private->is_realized)
|
|
+ if (gtk_widget_get_realized (widget) && private->is_realized)
|
|
{
|
|
- gldrawable = gdk_window_get_gl_drawable (widget->window);
|
|
+ gldrawable = gdk_window_get_gl_drawable (gtk_widget_get_window (widget));
|
|
gdk_gl_drawable_wait_gdk (gldrawable);
|
|
}
|
|
}
|
|
@@ -146,7 +150,7 @@ gtk_gl_widget_unrealize (GtkWidget *widget,
|
|
|
|
if (private->glcontext != NULL)
|
|
{
|
|
- gdk_gl_context_destroy (private->glcontext);
|
|
+ g_object_unref (private->glcontext);
|
|
private->glcontext = NULL;
|
|
}
|
|
|
|
@@ -154,8 +158,8 @@ gtk_gl_widget_unrealize (GtkWidget *widget,
|
|
* Remove OpenGL-capability from widget->window.
|
|
*/
|
|
|
|
- if (GTK_WIDGET_REALIZED (widget))
|
|
- gdk_window_unset_gl_capability (widget->window);
|
|
+ if (gtk_widget_get_realized (widget))
|
|
+ gdk_window_unset_gl_capability (gtk_widget_get_window (widget));
|
|
|
|
private->is_realized = FALSE;
|
|
}
|
|
@@ -174,7 +178,7 @@ gtk_gl_widget_parent_set (GtkWidget *widget,
|
|
*/
|
|
|
|
toplevel = gtk_widget_get_toplevel (widget);
|
|
- if (GTK_WIDGET_TOPLEVEL (toplevel) && !GTK_WIDGET_REALIZED (toplevel))
|
|
+ if (gtk_widget_is_toplevel (toplevel) && !gtk_widget_get_realized (toplevel))
|
|
{
|
|
GTK_GL_NOTE (MISC,
|
|
g_message (" - Install colormap to the top-level window."));
|
|
@@ -188,23 +192,27 @@ gtk_gl_widget_style_set (GtkWidget *widget,
|
|
GtkStyle *previous_style,
|
|
gpointer user_data)
|
|
{
|
|
+ GdkWindow *window;
|
|
+
|
|
GTK_GL_NOTE_FUNC_PRIVATE ();
|
|
|
|
/*
|
|
* Set a background of "None" on window to avoid AIX X server crash.
|
|
*/
|
|
|
|
- if (GTK_WIDGET_REALIZED (widget))
|
|
+ if (gtk_widget_get_realized (widget))
|
|
{
|
|
+ window = gtk_widget_get_window (widget);
|
|
+
|
|
GTK_GL_NOTE (MISC,
|
|
g_message (" - window->bg_pixmap = %p",
|
|
- ((GdkWindowObject *) (widget->window))->bg_pixmap));
|
|
+ ((GdkWindowObject *) window)->bg_pixmap));
|
|
|
|
- gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
|
|
+ gdk_window_set_back_pixmap (window, NULL, FALSE);
|
|
|
|
GTK_GL_NOTE (MISC,
|
|
g_message (" - window->bg_pixmap = %p",
|
|
- ((GdkWindowObject *) (widget->window))->bg_pixmap));
|
|
+ ((GdkWindowObject *) window)->bg_pixmap));
|
|
}
|
|
}
|
|
|
|
@@ -250,8 +258,8 @@ gtk_widget_set_gl_capability (GtkWidget *widget,
|
|
GTK_GL_NOTE_FUNC ();
|
|
|
|
g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
|
|
- g_return_val_if_fail (!GTK_WIDGET_NO_WINDOW (widget), FALSE);
|
|
- g_return_val_if_fail (!GTK_WIDGET_REALIZED (widget), FALSE);
|
|
+ g_return_val_if_fail (gtk_widget_get_has_window (widget), FALSE);
|
|
+ g_return_val_if_fail (!gtk_widget_get_realized (widget), FALSE);
|
|
g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
|
|
|
|
/*
|
|
@@ -432,9 +440,9 @@ gtk_widget_create_gl_context (GtkWidget *widget,
|
|
GTK_GL_NOTE_FUNC ();
|
|
|
|
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
|
|
- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
|
|
+ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
|
|
|
|
- gldrawable = gdk_window_get_gl_drawable (widget->window);
|
|
+ gldrawable = gdk_window_get_gl_drawable (gtk_widget_get_window (widget));
|
|
if (gldrawable == NULL)
|
|
return NULL;
|
|
|
|
@@ -474,7 +482,7 @@ gtk_widget_get_gl_context (GtkWidget *widget)
|
|
GLWidgetPrivate *private;
|
|
|
|
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
|
|
- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
|
|
+ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
|
|
|
|
private = g_object_get_qdata (G_OBJECT (widget), quark_gl_private);
|
|
if (private == NULL)
|
|
@@ -501,7 +509,7 @@ GdkGLWindow *
|
|
gtk_widget_get_gl_window (GtkWidget *widget)
|
|
{
|
|
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
|
|
- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
|
|
+ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
|
|
|
|
- return gdk_window_get_gl_window (widget->window);
|
|
+ return gdk_window_get_gl_window (gtk_widget_get_window (widget));
|
|
}
|
|
--
|
|
2.14.3
|
|
|