Re: GTK and OSX: a call to sanity

On Wed, 2011-09-07 at 08:25 +0100, Emmanuele Bassi wrote:

> Windows and Linux build issues and support are handled on the
> Quartz backend of gtk is not in any regard special and it should not
> need separate resources.

One thing we have been bad at is learning to accept that sometimes, our
Gnome ecosystem breeds little niches of their own, and then some of them
turn into rightful ecosystems that *don't really need* much
communication with the mainline - they can exist on their own, with
occasional re-syncs, and with occasional pain.

I imagine that the Quartz backend is such a case: it probably started as
a "let's port this and see where it takes us" exercise, and then people
started writing jhbuild modulesets for apps, integration patches, etc.
It started growing and generating its own gravity and it didn't really
need to share much with Gnome or GTK+ proper - it would have been nice
to keep everything integrated from the start, in both code and
infrastructure, but it would probably have implied a lot of extra work
for both parties.

*Now* it seems to be the time where the cost of keeping things separate
is greater than just re-syncing periodically - so let that be; do the
integration and forget about the temporary "split".  You can think of
this work of merging as the necessary work to meld two ecosystems
together - you can't put a desert next to a jungle without a savannah in
the middle.  Okay, bad analogy, but I'm only on my first coffee today.

Now, on technical matters:

I looked quickly at "git diff origin/master..origin/quartz-integration"
and the diff is very simple:

* A bunch of changes to gdk-quartz and gtk*-quartz.c - I imagine that
these can be merged just as they are, since they don't touch the
platform-independent code at all.  I'm sure some of these bits could be
reviewed / prettified by someone who knows a lot of OSX idioms, but it's
better to have them in *now* and polish them later.

* This bit:

--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -417,10 +417,6 @@ gdk_x11_device_manager_xi2_constructed (GObject *object)
   for (i = 0; i < ndevices; i++)
       dev = &info[i];
-      if (!dev->enabled)
-	      continue;
       add_device (device_manager, dev, FALSE);

No idea what that's about.

* Some changes; these could use a quick sanity check.

* Some additions to gtkprivate.h, analogous to what it has for win32 right now.

* A bunch of "#ifndef GDK_WINDOWING_QUARTZ" in gtkselection.c, so that
those functions can be implemented in gtkselection-quartz.c instead.
This can probably be made prettier by moving the original functions to a
gtkselection-x11.c or something like that.

* An unused variable in gtkthemingengine.c; should be removed.

* Inconsequential whitespace changes in some .po files; should be

* A tests/testundecorated.c - no idea.

In all, it sounds like you could merge all the changes to *quartz*.[ch]
files as they are, and just give a quick look to the rest of the

As to what is in Bugzilla, is there a quick way to find all the Quartz
bugs to speed up their review?  (Or are those patches already in the
quartz-integration branch?  I didn't look at individual commits to see
if they had bug numbers.)


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