summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Holmes <iain@src.gnome.org>2007-11-17 12:52:57 +0000
committerIain Holmes <iain@src.gnome.org>2007-11-17 12:52:57 +0000
commit7f55ab37eaccb0f5ab315fdde61d3c2cc5ce1bd3 (patch)
tree64e23f05bf476295256edbc00336ba1cd7f9b78d
parent5a679fc3c8e3de95f38deef2c620e89646e12318 (diff)
downloadmetacity-7f55ab37eaccb0f5ab315fdde61d3c2cc5ce1bd3.tar.gz
ifdef to control idle repainting until we work out which is better
svn path=/branches/iains-blingtastic-bucket-o-bling/; revision=3406
-rw-r--r--src/compositor.c36
1 files changed, 29 insertions, 7 deletions
diff --git a/src/compositor.c b/src/compositor.c
index 4fdd588a..7c880eef 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -23,11 +23,15 @@
#define HAVE_NAME_WINDOW_PIXMAP 1
#endif
+#define USE_IDLE_REPAINT 1
+
struct _MetaCompositor
{
MetaDisplay *display;
+#ifdef USE_IDLE_REPAINT
guint repaint_id;
+#endif
guint enabled : 1;
};
@@ -1009,18 +1013,20 @@ static void
repair_display (MetaDisplay *display)
{
GSList *screens;
- MetaCompositor *compositor = display->compositor;
- if (compositor->repaint_id > 0)
+#ifdef USE_IDLE_REPAINT
+ if (display->compositor->repaint_id > 0)
{
- g_source_remove (compositor->repaint_id);
- compositor->repaint_id = 0;
+ g_source_remove (display->compositor->repaint_id);
+ display->compositor->repaint_id = 0;
}
+#endif
for (screens = display->screens; screens; screens = screens->next)
repair_screen ((MetaScreen *) screens->data);
}
+#ifdef USE_IDLE_REPAINT
static gboolean
compositor_idle_cb (gpointer data)
{
@@ -1044,6 +1050,7 @@ add_repair (MetaDisplay *display)
compositor_idle_cb, compositor,
NULL);
}
+#endif
static void
add_damage (MetaDisplay *display,
@@ -1061,7 +1068,9 @@ add_damage (MetaDisplay *display,
else
info->all_damage = damage;
+#ifdef USE_IDLE_REPAINT
add_repair (display);
+#endif
}
static void
@@ -1500,7 +1509,9 @@ process_circulate_notify (MetaCompositor *compositor,
info->clip_changed = TRUE;
+#ifdef USE_IDLE_REPAINT
add_repair (compositor->display);
+#endif
}
static void
@@ -1544,7 +1555,9 @@ process_property_notify (MetaCompositor *compositor,
0, 0, 0, 0, TRUE);
XRenderFreePicture (display->xdisplay, info->root_tile);
info->root_tile = None;
+#ifdef USE_IDLE_REPAIR
add_repair (display);
+#endif
return;
}
@@ -1670,9 +1683,11 @@ process_damage (MetaCompositor *compositor,
return;
repair_win (cw);
- if (event->more == FALSE) {
+
+#ifdef USE_IDLE_REPAINT
+ if (event->more == FALSE)
add_repair (compositor->display);
- }
+#endif
}
static void
@@ -1707,7 +1722,12 @@ meta_compositor_new (MetaDisplay *display)
compositor = g_new (MetaCompositor, 1);
compositor->display = display;
+
+#ifdef USE_IDLE_REPAINT
+ g_print ("Using idle repaint\n");
compositor->repaint_id = 0;
+#endif
+
compositor->enabled = TRUE;
return compositor;
@@ -1971,7 +1991,9 @@ meta_compositor_process_event (MetaCompositor *compositor,
}
meta_error_trap_pop (compositor->display, FALSE);
-/* repair_display (compositor->display); */
+#ifndef USE_IDLE_REPAINT
+ repair_display (compositor->display);
+#endif
return;
#endif