#17 Display is not always refreshed

GtkGLExt (10)


It looks like there is a problem with GtkGLExt not emitting expose signal after a popup for a button on the title bar is displayed and then hidden. This doesn't happen all the time but there is a simple way to reproduce this bug (at least on my system):

1. Compile and run the example program named 'simple' (the one that comes with gtkglext; the C++ version can be used too).
2. Point one of the buttons on the title bar until a popup becomes visible.
3. Move the pointer away so that the popup disappears (this time everything works as expected).
4. Point the button from step 2 once again and wait until a popup is displayed.
5. Move the pointer away. The popup disapears but no expose event is sent. It means that the part of the window managed by gtkglext doesn't redraw itself and in consequence some portion of the popup window is still visible.

I am using Ubuntu Feisty Fawn with Gnome (no Beryl or Compiz) and gtkglext/gtkglextmm 1.2 built from source.

I've attached an image that illustrates the bug I've described.


  • Tomek

    Tomek - 2007-05-29

    An image which illustrates the problem

  • Toon Verstraelen

    Logged In: YES
    Originator: NO


    I noticed the same problem, and was gathering some information on our bugtracker:


    I'm using the python bindings (1.1.0) for gtkglext (1.0.6). In my case the problem disappears when direct rendering is disabled. (I have an nvidia graphics card.) So, this is probably a bug in the nvidia driver/glx/..., or maybe the mesa glx libraries are less sensitive to a problem in the gtkglext code.

    cas_: Could you try to disable direct rendering and report whether the problem remains?

  • Tomek

    Tomek - 2008-08-17

    Logged In: YES
    Originator: NO

    Hello again!

    Following your suggestion I've just tried to reproduce this bug using a different GL driver (Intel's in this case) and I can confirm that this time windows seems to be correctly refreshed. However, Nvidia's implementation gives me this erroneous behavior only when combined with gtkglext - other GL widgets (like the one from Ultimate++ framework) don't have this issue.


Log in to post a comment.