[Lablgtk] Strange firing of Configure and Expose events withEventBox

Peter Groves pdgroves at gmail.com
Fri May 2 08:48:14 CEST 2008


Just as an update: I got rid of the drawing_area inside of the
event_box configuration and most of the problems have gone away. I am
getting expose and size_allocation events when I expect them.

There are still some issues with the display, but for now I should be
ok.

Thanks,
Peter

On Thu, 1 May 2008 19:03:05 -0500
Peter Groves <pdgroves at gmail.com> wrote:

> Thanks for the response.
> 
> The example did not run (no window was displayed). I have attached the
> error messages output to standard err.
> 
> I am using the version of lablgtk in ubuntu 7.10 Gutsy Gibbons.
> The debian package calls it version 2.6.0-7. 
> 
> If upgrading is the simplest solution, what version is currently
> considered most stable?  Preferably one that works with ocaml 3.09, as
> I try to stay in sync with the Debian/Ubuntu packages as much as
> possible.
> 
> As for specifics, I currently have only a drawing_area in the
> eventbox. I was originally going to use the events of the
> drawing_area but I now need to start capturing events of other
> widgets (as soon as I get this problem sorted out). At one point I
> tried putting the drawing area in a Frame and then the Frame in the
> eventbox, but it didn't seem to make any difference (I saw the frame,
> but still no events).
> 
> If the drawing area might be interfering by capturing the events
> before they get to the eventbox, I could switch to drawing on a
> pixmap and displaying that, I think. I'm not sure if that will be
> difficult, so I'm hoping someone can give me some optimism that it
> might solve my problem before I undertake the change.
> 
> Peter 
> 
> 
> 
> On Fri, 2 May 2008 00:15:50 +0200
> "MONATE Benjamin 205998" <Benjamin.MONATE at cea.fr> wrote:
> 
> > Hi,
> > 
> > According to the attached example, expose does fire on an eventbox
> > at startup and maximization. Can you confirm this with your Gtk
> > version ? If you do confirm, what is your exact situation ? The
> > event has probably been caught by other widgets in your GUI.
> > 
> > Hope this helps,
> > Benjamin Monate
> > 
> > 
> > 
> > -------- Message d'origine--------
> > De: lablgtk-bounces at yquem.inria.fr de la part de Peter Groves
> > Date: jeu. 01/05/2008 08:24
> > À: lablgtk at yquem.inria.fr
> > Objet : [Lablgtk] Strange firing of Configure and Expose events
> > withEventBox 
> > Hi,
> > 
> > I'm having trouble getting a custom widget to respond properly to
> > gtk events. I'm using an EventBox to handle all of the signals, but
> > it doesn't fire when I expect it to. 
> > 
> > As an attempt at brevity, here is the somewhat complex situation as
> > a list:
> > 
> > 1) At this point, I have turned on all events just to make sure that
> > isn't the issue with:
> > 
> > 	eventBox#event#add [`ALL_EVENTS];
> > 
> > 2) Mouse events (MOTION_NOTIFY, LEAVE_NOTIFY, ENTER_NOTIFY) work as
> > expected. My application draws to the screen in response to mouse
> > events, and the correct image appears when I move the mouse around.
> > I'm accessing these like this:
> > 
> > 	eventBox#event#connect#enter_notify enterCallback
> > 	eventBox#event#connect#leave_notify exitCallback
> > 	eventBox#event#connect#motion_notify motionCallback
> > 
> > 3) My callback to expose:
> > 
> > 	 eventBox#event#connect#expose exposeCallback
> > 
> > does not fire when the window is displayed at program startup, nor
> > when the window is minimized and maximized.
> > 
> > 4) The expose callback does fire when the window is resized.
> > 
> > 5) The actual drawing I do in response to exposure events seems to
> > complete when the window is resized, but the widget remains blank
> > (or perhaps it is immediately cleared). This is the same drawing
> > function I call in response to mouse events, so I know the drawing
> > code is more or less correct. (I start up the app, it's blank. I
> > move the mouse over it, it draws the image and my cursor tracking
> > animation. I resize the window, it is again blank.)
> > 
> > 6) I never was able to receive configure events when the window is
> > resized (or initialized) using:
> > 
> > 	eventBox#event#connect#after#configure resizeCallback
> > 
> > 7) Because of (6) i switched to size_allocation events:
> > 
> > 	eventBox#misc#connect#size_allocate resizeCallback
> > 
> > which fire when expected at startup and when the window is resized,
> > but are not sufficient because I cannot draw in response to them at
> > program startup (it seems to be called before the screen resources
> > are allocated - i can therefore initialize my image buffers and
> > such but cannot display them without an Expose event, which never
> > comes). 
> > 
> > /end list
> > 
> > I would be ok if I could get expose events (or some other event) to
> > fire at the normal times of, well, the window being "exposed". Also
> > the issue in (5) above is a show stopper. I would also be
> > interested, though, in any insights as to why I would be unable to
> > receive Configure events when the window is resized.
> > 
> > I should say that I am porting this application from ruby-gtk, and
> > what I'm attempting to do worked there.
> > 
> > Peter
> > 
> > http://petergroves.com
> > 
> > 
> >  
> > 
> > _______________________________________________
> > Lablgtk mailing list
> > Lablgtk at yquem.inria.fr
> > http://yquem.inria.fr/cgi-bin/mailman/listinfo/lablgtk
> > 
> > 
> > 

_______________________________________________
Lablgtk mailing list
Lablgtk at yquem.inria.fr
http://yquem.inria.fr/cgi-bin/mailman/listinfo/lablgtk



More information about the Lablgtk-list mailing list