Re: [Fwd: Re: [gtk-list] ANNOUNCE: GTK+ 1.2.5pre1 (please test)]
- From: Tim Janik <timj gtk org>
- To: gtk-devel-list redhat com
- cc: Mikael Hermansson <mikeh bahnhof se>
- Subject: Re: [Fwd: Re: [gtk-list] ANNOUNCE: GTK+ 1.2.5pre1 (please test)]
- Date: Mon, 6 Sep 1999 21:35:21 +0200 (CEST)
On Mon, 6 Sep 1999, Mikael Hermansson wrote:
> After a check in gtkwidget.c
> 
> I removed the if(need_paint) statement in gtk_widget_size_allocate
> and now it works better on my system.
> 
> But this is probadly a bad hack because now the widget will always repaint
> when calling gtk_widget_size_allocate....
> 
> Please check this and why need_paint==FALSE when it probadly should be
> TRUE?
> 
> gtkwidget.c -> gtk_widget_size_allocate(...)
> 
> /* if(need_paint) */ <---- removed statement by me, and now it worksbetter*/
> 	gtk_widget_queue_draw(widget);
this shouldn't be neccessary as the server will send expose events,
especially upon initial mapping.
i'd like to take a look at the expose event processing on your machine,
could you apply the following patch to gtkwidget.c:
--- gtkwidget.c.orig    Mon Sep  6 20:58:53 1999
+++ gtkwidget.c Mon Sep  6 21:28:31 1999
@@ -2301,6 +2301,8 @@
          area = &temp_area;
        }
+      g_print ("#### emitting ::draw for `%s'\n",
+              gtk_type_name (GTK_OBJECT_TYPE (widget)));
       gtk_signal_emit (GTK_OBJECT (widget), widget_signals[DRAW], area);
     }
 }
@@ -2791,9 +2793,14 @@
        }
       if (!event->any.window || parent)
        {
+         g_print ("#### discarding expose event for `%s' (%s)\n",
+                  gtk_type_name (GTK_OBJECT_TYPE (widget)),
+                  parent ? "need resize" : "NULL window");
          gtk_widget_unref (widget);
          return TRUE;
        }
+      g_print ("#### emitting ::expose_event for `%s'\n",
+              gtk_type_name (GTK_OBJECT_TYPE (widget)));
       signal_num = EXPOSE_EVENT;
       break;
     case GDK_VISIBILITY_NOTIFY:
(without your if(need_paint) hack though) and then startup testgtk with
$ GDK_DEBUG=all testgtk >testgtk.log 2>&1
immediatedly close it by clicking on the "Close" button with your mouse,
and send us testgtk.log?
it'll also be helpfull to know the version of X (`X -version`) and the
window manager you are using.
> 
> 
> Greats
> 
> MikeH
> 
---
ciaoTJ
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]