no clipping between sibling widgets in GTK on Quartz

Hello -- I'm having a problem that's specific to GTK on Quartz for the
Mac (GTK-OSX), in case anyone has knowledge of that port.

We have a cross-platform windowing system written in lisp, which on the
Linux platform is built on top of GTK, where it works fine.  Now I'm
trying to bring it up on GTK-OSX, and there's a basic problem.  It comes
up and runs, but from what I'm seeing on the screen, it appears that
it's not doing clipping between sibling and cousin GTK widgets, and so a
widget often gets drawn over sibling or cousin widgets that are in front
of it.  Is there a known difference related to this in GTK on Quartz, or
should it work the same as on X?  I'm not seeing anything in the GTK API
that would give me control over clipping between widgets other than the
GDK_CLIP_BY_CHILDREN flag, though that flag is presumably on by default
and it doesn't help to enable it explicitly.

Our windowing system doesn't use GTK's preferred "packing" model, where
sibling widgets are arranged side-by-side without overlapping each
other.  Our system was designed long ago on the model where windows are
placed explicitly at arbitrary positions, often with overlap between
siblings.  So we use the GtkFixed class for our generic windows.  We
also call gtk_fixed_set_has_window on each one, passing TRUE, which on X
causes each GtkFixed widget to use a real X window, and I believe that
it's the underlying X window system that's doing the clipping between
the sibling X windows.

So my guess is that GTK on Quartz is not doing something similar to
achieve clipping between sibling widgets.  Maybe
gtk_fixed_set_has_window isn't creating a Quartz window for the GtkFixed
widget, or maybe non-top-level Quartz windows don't automatically do
clipping between siblings.  I don't know Quartz at all, though, so I
don't have a good guess about that.  I didn't have much success googling
for that info.

Ken Cheetham                          cheetham franz com
Franz Inc.                            Voice: (510) 452-2000 x124
2201 Broadway, Suite 715              Fax:   (510) 452-0182
Oakland, CA  94612                    Web: 

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