[gtk-osx-users] [Gtk-osx-users] delayed drawing updates (not until lost focus) as compared to X11

It's best to explain this one with some examples.  Version-wise, I'm using the modulesets that was updated a couple of days ago.  I have some workarounds in my code that fix this problem for me, but they appear to be hiding some behavior in GDK.

svn co https://gtkwave.svn.sourceforge.net/svnroot/gtkwave gtkwave
cd gtkwave/gtkwave3
./configure --disable-xz
cd src
./gtkwave ../examples/des.vzt ../examples/des.sav

This should compile for you; I don't think you need to --disable-tcl.  Click on the signals pane and try pressing cmd-a, shift-cmd-a and you will see that the signal names highlight and unhighlight as they should.

cmd-q to exit.

Now go into signalwindow.c function osx_timer() and then comment out the 4 consecutive lines around line 684 containing gtk_widget_hide()/gtk_widget_show().

./gtkwave ../examples/des.vzt ../examples/des.sav

Click on the signals pane and try pressing cmd-a, shift-cmd-a and you will see that the signal names update much later (if at all), or finally update when you move pointer focus out of the signals pane.

For some reason I'm coming across delayed updates in gdk calls becoming visible to my signalarea and wavearea widgets.  

The same can be seen in a deprecated widget CTree (shown directly below the "SST" label):
Look in treesearch_gtk2.c and search for the comment text "workaround" in the functions tree_[collapse|expand]_callback().

With the gtk_widget_hide()/gtk_widget_show() present when you click on (+)/(-) the widget does what it should.  Otherwise it doesn't update until the tree loses focus, or if it updates, the update is partial.

I am wondering if there is some weirdness in that gdk_display_sync()/gdk_display_flush() actually need to do something, if there's a rendering pipeline that needs to be flushed, or there's a missing copy from a widget's backing store or whatever that is no problem with X11 but needs to be kicked when Quartz is used.  At first I thought this simply was a CTree problem, but as I'm seeing it with widgets returned by gtk_drawing_area_new(), I'm wondering if it's something a little more fundamental concerning the interplay with GDK.


All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
Gtk-osx-users mailing list
Gtk-osx-users lists sourceforge net

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]