[Xfce4-commits] [apps/xfce4-screensaver] 191/425: popsquares: Use cairo for Gtk+2
noreply at xfce.org
noreply at xfce.org
Mon Oct 15 01:50:38 CEST 2018
This is an automated email from the git hooks/post-receive script.
b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository apps/xfce4-screensaver.
commit 71a3f61d25d6998c07db899148bd0bac48ad0026
Author: infirit <infirit at gmail.com>
Date: Sun Jul 12 14:33:00 2015 +0200
popsquares: Use cairo for Gtk+2
---
savers/gste-popsquares.c | 70 +++++++++++++++---------------------------------
1 file changed, 21 insertions(+), 49 deletions(-)
diff --git a/savers/gste-popsquares.c b/savers/gste-popsquares.c
index db7c36f..245be48 100644
--- a/savers/gste-popsquares.c
+++ b/savers/gste-popsquares.c
@@ -51,9 +51,6 @@ struct GSTEPopsquaresPrivate
int ncolors;
int subdivision;
-#if !GTK_CHECK_VERSION (3, 0, 0)
- GdkGC *gc;
-#endif
GdkColor *colors;
square *squares;
@@ -433,14 +430,6 @@ setup_colors (GSTEPopsquares *pop)
set_colors (window, &fg, &bg);
-#if !GTK_CHECK_VERSION (3, 0, 0)
- if (pop->priv->gc)
- {
- g_object_unref (pop->priv->gc);
- }
- pop->priv->gc = gdk_gc_new (window);
-#endif
-
if (pop->priv->colors)
{
g_free (pop->priv->colors);
@@ -491,31 +480,26 @@ static gboolean
#if GTK_CHECK_VERSION (3, 0, 0)
gste_popsquares_real_draw (GtkWidget *widget,
cairo_t *cr)
+{
+ if (GTK_WIDGET_CLASS (parent_class)->draw) {
+ GTK_WIDGET_CLASS (parent_class)->draw (widget, cr);
+ }
#else
gste_popsquares_real_expose (GtkWidget *widget,
GdkEventExpose *event)
-#endif
{
- gboolean handled = FALSE;
-
- /* draw */
-
- /* FIXME: should double buffer? */
-
-#if GTK_CHECK_VERSION (3, 0, 0)
- if (GTK_WIDGET_CLASS (parent_class)->draw)
- {
- handled = GTK_WIDGET_CLASS (parent_class)->draw (widget, cr);
- }
- draw_frame (GSTE_POPSQUARES (widget), cr);
-#else
- if (GTK_WIDGET_CLASS (parent_class)->expose_event)
- {
- handled = GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event);
+ if (GTK_WIDGET_CLASS (parent_class)->expose_event) {
+ GTK_WIDGET_CLASS (parent_class)->expose_event (widget, event);
}
+ cairo_t *cr = gdk_cairo_create (event->window);
#endif
- return handled;
+ draw_frame (GSTE_POPSQUARES (widget), cr);
+
+#if !GTK_CHECK_VERSION (3, 0, 0)
+ cairo_destroy (cr);
+#endif
+ return TRUE;
}
static gboolean
@@ -565,17 +549,10 @@ gste_popsquares_class_init (GSTEPopsquaresClass *klass)
g_type_class_add_private (klass, sizeof (GSTEPopsquaresPrivate));
}
-static gboolean
-draw_iter (GSTEPopsquares *pop)
-#if GTK_CHECK_VERSION (3, 0, 0)
-{
- gtk_widget_queue_draw (GTK_WIDGET (pop));
- return TRUE;
-}
static void
-draw_frame (GSTEPopsquares *pop, cairo_t *cr)
-#endif
+draw_frame (GSTEPopsquares *pop,
+ cairo_t *cr)
{
int border = 1;
gboolean twitch = FALSE;
@@ -609,18 +586,11 @@ draw_frame (GSTEPopsquares *pop, cairo_t *cr)
{
square *s = (square *) &pop->priv->squares [gw * y + x];
-#if GTK_CHECK_VERSION (3, 0, 0)
gdk_cairo_set_source_color (cr, &(pop->priv->colors [s->color]));
cairo_rectangle (cr, s->x, s->y,
border ? s->w - border : s->w,
border ? s->h - border : s->h);
cairo_fill (cr);
-#else
- gdk_gc_set_foreground (pop->priv->gc, &(pop->priv->colors [s->color]));
- gdk_draw_rectangle (window, pop->priv->gc, TRUE, s->x, s->y,
- border ? s->w - border : s->w,
- border ? s->h - border : s->h);
-#endif
s->color++;
if (s->color == pop->priv->ncolors)
@@ -636,8 +606,13 @@ draw_frame (GSTEPopsquares *pop, cairo_t *cr)
}
}
}
+}
- return;
+static gboolean
+draw_iter (GSTEPopsquares *pop)
+{
+ gtk_widget_queue_draw (GTK_WIDGET (pop));
+ return TRUE;
}
static void
@@ -674,9 +649,6 @@ gste_popsquares_finalize (GObject *object)
g_free (pop->priv->squares);
g_free (pop->priv->colors);
-#if !GTK_CHECK_VERSION (3, 0, 0)
- g_object_unref (pop->priv->gc);
-#endif
G_OBJECT_CLASS (parent_class)->finalize (object);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list