Re: GTK+ redraw programs
- From: Mikael Hermansson <mikeh bahnhof se>
- To: Tim Janik <timj gtk org>
- cc: gtk-devel-list redhat com
- Subject: Re: GTK+ redraw programs
- Date: Tue, 7 Sep 1999 04:40:56 +0200 (CEST)
Nope!
None of the patched worked (Owen and yours) :-/
But here is the log for you g_print patch.
I am using IceWM and have tried with both WindowMaker and E with same
results. Xfree version 3.3.1
The problem has come since the >= GTK 1.2.5
As I see it the expose IS actually happen but the problem is that it looks
like it draws only a tiny line (height = 1) and next time if i resize the
window all the childwidgets will show correct size...
Greats
MikeH
On Tue, 7 Sep 1999, Tim Janik wrote:
> On Mon, 6 Sep 1999, Tim Janik wrote:
>
> > On 6 Sep 1999, Owen Taylor wrote:
> >
> > >
> > > [ resend to get the headers right. You'd think that _I'd_ know
> > > that gtk-devel-list was @redhat.com. Sorry about that ]
> > >
> > > Hi guys,
> > >
> > > Could you try out the following patch to gtkwidget.c. I have
> > > a hunch that what is happening is that expose events on widgets
> > > that get queued for resize after the initial show are getting
> > > discarded.
> >
> > yes, and that is right because widgets that are queued for resizes
> > are also queued for a redraw (which opposed to expose events will
> > redraw recursively if the widget is a container), that's the whole
> > point of the expose event discarding code.
> > if this fix actually matters for people, it means that we have
> > problems in the redraw queue.
>
> and indeed, there is a redraw problem with widgets queued for resizes.
> one constrain is that NEED_RESIZE widgets have a redraw pending on
> them, but in fact, gtk_widget_queue_resize() queues the redraw on
> the child and the resize on the parent.
>
> Bruce and Mikael, could you check whether this patch fixes stuff
> for you?
> (Michael if that is not the case, i'd still like to get the expose
> event log from testgtk)
>
> --- gtkwidget.c.orig Mon Sep 6 20:58:53 1999
> +++ gtkwidget.c Tue Sep 7 00:30:13 1999
> @@ -2255,13 +2255,16 @@
> if (GTK_IS_RESIZE_CONTAINER (widget))
> gtk_container_clear_resize_widgets (GTK_CONTAINER (widget));
>
> - if (GTK_WIDGET_DRAWABLE (widget))
> - gtk_widget_queue_clear (widget);
> -
> if (widget->parent)
> - gtk_container_queue_resize (GTK_CONTAINER (widget->parent));
> + {
> + gtk_widget_queue_clear (widget->parent);
> + gtk_container_queue_resize (GTK_CONTAINER (widget->parent));
> + }
> else if (GTK_WIDGET_TOPLEVEL (widget))
> - gtk_container_queue_resize (GTK_CONTAINER (widget));
> + {
> + gtk_widget_queue_clear (widget);
> + gtk_container_queue_resize (GTK_CONTAINER (widget));
> + }
> }
>
> /*****************************************
>
>
> ---
> ciaoTJ
>
>
---
Check out my homepage at (under heavy reconstruction):
http://www.bahnhof.se/~mikeh
Email: mikeh@bahnhof.se
international Phone 46-44-126995
Sweden Phone: 044-126995
ICQ: Error fix later
Gdk-WARNING **: locale not supported by C library
### emitting ::expose_event for `GtkWindow'
### emitting ::expose_event for `GtkVBox'
### emitting ::expose_event for `GtkLabel'
### emitting ::expose_event for `GtkVBox'
### emitting ::expose_event for `GtkVScrollbar'
### emitting ::expose_event for `GtkViewport'
#### emitting ::draw for `GtkButton'
#### emitting ::draw for `GtkLabel'
### emitting ::expose_event for `GtkLabel'
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]