Re: GTK and OSX: a call to sanity

On Sep 7, 2011, at 7:26 AM, Federico Mena Quintero wrote:

> 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.

Not mine, likely due to my having turned off the nightly merges/builds/pushes until this matter gets sorted.

> * 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.

Or I could duplicate the whole file, as was done with gtkdnd-quartz.c and gtkclipboard-quartz.c. I prefer not to do that because any maintenance on the primary file will cause problems unless it's quickly noticed and the quartz-specific file is also updated.

There's a larger problem with this, though, worthy of its own thread: Compile time OS/GDK_WINDOWING checks break the multiple-backend architecture of Gtk3. Quartz is the worst offender, but there are "ifdef OS_WIN32" blocks floating around too.

> * An unused variable in gtkthemingengine.c; should be removed.
> * Inconsequential whitespace changes in some .po files; should be
> removed.

More out-of-sync-with-master differences.

> * A tests/testundecorated.c - no idea.

Related to a crash in Lion with undecorated windows. See bug 655079. There's no patch to add this to master; I'm not sure whether or not it should be. The fix has already been committed to master and backported to 2.24, and the bug closed.

> 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
> changes.
> 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.)

I rebased a local branch off quartz-integration against master and carefully went through all of the changes. There were indeed a couple that didn't have bugs, so I created the bugs and attached the relevant patches. There were some others that were quite old, so I updated the patches on the bugs. The bugs in question are:

514843: gtkfilechooser should be more robust
571582: GtkSelection implementation for quartz.
628936: Minimal change to pass introspection.
657770: Write releaseed memory in gtkdnd-quartz.c
607115: _gtk_key_hash_lookup fails to handle modifiers
658722: Drag and Drop sometimes stops working
658767: Drag and Drop NSEvent is Racy
658772: Directory paths for resource directories are hard coded.

John Ralls

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