Re: GTK and OSX: a call to sanity
- From: John Ralls <jralls ceridwen us>
- To: Federico Mena Quintero <federico gnome org>
- Cc: gtk-devel-list gnome org
- Subject: Re: GTK and OSX: a call to sanity
- Date: Mon, 12 Sep 2011 12:25:45 -0700
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 Makefile.am 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
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
> 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.
] [Thread Prev