[gtk+/extended-layout-jhs: 28/64] Invalidate previously selected widget when choosing another one, to avoid
- From: Johannes Schmid <jhs src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+/extended-layout-jhs: 28/64] Invalidate previously selected widget when choosing another one, to avoid
- Date: Wed, 25 Nov 2009 11:21:16 +0000 (UTC)
commit a53e7a0e50e3e91bc14928b0af20187ba0d916e6
Author: Mathias Hasselmann <mathias hasselmann gmx de>
Date: Sun Jul 1 21:12:13 2007 +0000
Invalidate previously selected widget when choosing another one, to avoid
2007-07-01 Mathias Hasselmann <mathias hasselmann gmx de>
* tests/testextendedlayout.c: Invalidate previously selected
widget when choosing another one, to avoid drawing artifacts.
svn path=/branches/extended-layout/; revision=18329
ChangeLog.gtk-extended-layout | 5 +++++
tests/testextendedlayout.c | 37 +++++++++++++++++++++++++------------
2 files changed, 30 insertions(+), 12 deletions(-)
---
diff --git a/ChangeLog.gtk-extended-layout b/ChangeLog.gtk-extended-layout
index 75c1bd9..aa3f4ad 100644
--- a/ChangeLog.gtk-extended-layout
+++ b/ChangeLog.gtk-extended-layout
@@ -1,5 +1,10 @@
2007-07-01 Mathias Hasselmann <mathias hasselmann gmx de>
+ * tests/testextendedlayout.c: Invalidate previously selected
+ widget when choosing another one, to avoid drawing artifacts.
+
+2007-07-01 Mathias Hasselmann <mathias hasselmann gmx de>
+
* tests/testextendedlayout.c: Improve drawing of baseline guides.
2007-07-01 Mathias Hasselmann <mathias hasselmann gmx de>
diff --git a/tests/testextendedlayout.c b/tests/testextendedlayout.c
index cad4907..bfba766 100644
--- a/tests/testextendedlayout.c
+++ b/tests/testextendedlayout.c
@@ -1314,10 +1314,31 @@ update_status (TestSuite *suite,
g_string_free (status, TRUE);
}
+static void
+queue_redraw (GtkWidget *page,
+ GtkWidget *child)
+{
+ gint x, y;
+
+ gtk_widget_translate_coordinates (child, page, 0, 0, &x, &y);
+
+ gtk_widget_queue_draw_area (page,
+ page->allocation.x,
+ page->allocation.y + y,
+ page->allocation.width,
+ child->allocation.height);
+ gtk_widget_queue_draw_area (page,
+ page->allocation.x + x,
+ page->allocation.y,
+ child->allocation.width,
+ page->allocation.height);
+}
+
static gboolean
watch_pointer_cb (gpointer data)
{
TestSuite *suite = data;
+ GtkWidget *prev = suite->current;
TestCase *test = NULL;
gboolean dirty;
@@ -1369,18 +1390,10 @@ watch_pointer_cb (gpointer data)
{
if (suite->current)
{
- gtk_widget_translate_coordinates (suite->current, page, 0, 0, &x, &y);
-
- gtk_widget_queue_draw_area (page,
- page->allocation.x,
- page->allocation.y + y,
- page->allocation.width,
- suite->current->allocation.height);
- gtk_widget_queue_draw_area (page,
- page->allocation.x + x,
- page->allocation.y,
- suite->current->allocation.width,
- page->allocation.height);
+ if (prev && prev != suite->current)
+ queue_redraw (page, prev);
+
+ queue_redraw (page, suite->current);
}
else
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]