[Gtk-sharp-list] GTK# on Mac Field Report

Christian Hergert christian.hergert at gmail.com
Thu Dec 10 04:08:57 EST 2009


On Wed, Dec 9, 2009 at 11:33 PM, Chuck Esterbrook
<chuck.esterbrook at gmail.com> wrote:

> My GTK# application still experiences the following problems
> (previously mentioned on this list):

We really need Mac users to stand up and participate in fixing bugs.
I did this for a while, but I don't use or enjoy OS X so my interest
is near zero.

> -- The first time I click and drag on the resize corner of a window,
> nothing happens. On the second attempt, the resize happens.

This was a complex problem.  It stems from not having real
multi-monitor support in the gtk+ quartz backed.  It was added to git
master after the 2.18 branch.

These might be of interest for some background information

   https://bugzilla.gnome.org/show_bug.cgi?id=594835
   https://bugzilla.gnome.org/show_bug.cgi?id=517394

> -- After resizing a window, it will not respond to any mouse clicks.
> If I move the window then it will become responsive again.

See above bugs for more info.  They have links to a few others which
are relative.

> -- If I scroll within a TextView using the scrollwheel, it displays
> overlapping text lines. I have to use the arrow keys to coax the
> TextView to redisplay each line correctly.

This was caused by missing gdk transpose implementation.  It was added
as part of multi-monitor support.  Essentially what is supposed to
happen is a region of the screen in the video buffer is supposed to
get shifted up or down a given number of pixels.  The code to
determine the right section and move it was missing/incorrect.

> If I take my .exe over to Linux, these problems disappear.

Expected, the Linux version of gtk+ is what developers test with.  For
better or worse, Mac and Windows support lags slightly behind when
major restructuring occurs.  The maintainers, however, are quite
talented and filing bugs w/ test cases helps drastically.  This is
where knowing C is helpful.  If that is a problem, I'm willing to
write test-cases in exchange for donations to the Gnome foundation ;-)

I know it sounds like a lot to ask, but it's invaluable.

> If these problems are unknown, I can try to reduce my program down to
> something smaller that exhibits them. If these problems are known, are
> there plans around fixing them for Mono 2.4.x or Mono 2.6?

Check out gnome.bugzilla.org for gtk+ bugs related to the issues you
are having.  (I search for "gtk quartz").  The chances of the bugs
being in Gtk# are much less than it being in gtk+ directly.

> I originally thought GTK# would be well cared for because major apps
> use it, like MonoDevelop for Mac. But now I'm thinking that the
> wizards behind such apps are using a "custom GTK#" they tweaked to
> work for them while the main GTK# distribution, um, ... rots? Sorry
> for the strong word, but I don't see any GTK# love in these release
> notes...

My gtk+ tree which was used in Mono was the same tree I was using to
fix MonoDevelop on OS X.  I've been meaning to rebase my tree on gtk+
master, but my job keeps me busy fixing Linux.

As it were, most companies I've dealt with that ship a gtk+
application have shipped their own gtk+ libraries.

FWIW, you may want to dive down the rabbit hole and build an entire
Mono and Gtk# stack from source.  I wont lie, it's not easy.  However,
it will give you the ability to try out gtk+ 2.19 to see all the
magical bugs that are fixed.

http://monodevelop.com/Developers/Mac_Support/Trunk_Builds_of_the_Full_Mono,_GTK_and_MD_Stack

If you set that up, after its done, you can run:

 $ jhbuild shell
 $ git clone git://git.gnome.org/gtk+
 $ cd gtk+
 $ ./autogen.sh --prefix=$PREFIX
 $ make
 $ make install

If autogen doesn't work, you can try running autoreconf -fiv.

Cheers, and good luck,

-- Christian


More information about the Gtk-sharp-list mailing list