[Mono-osx] State of MonoDevelop on the Mac

Michael Hutchinson m.j.hutchinson at gmail.com
Sat Feb 21 04:21:59 EST 2009

Hi everyone,

I've been fixing up the Mac MD in the last few days, trying to
identify what needs to be resolved to polish it up.

I've set up a minimal bit of dock and menu integration (click on dock
to unminimise, fix the dock quit command, that sort of thing), fixed
the pkgconfig lookup (so all the Mono packages, including GTK# show
up), and tidied up the configure scripts. On the build side, I set up
the makefiles so that I can easily generate a MonoDevelop.app.zip file
on Linux, which can be downloaded and run directly. I also made sure
it's easy to build and run MD from SVN from within MD on the Mac (open
& hit "run").

Encouraging progress, maybe, but there's still much to be done. The MD
team isn't going to work on this for the upcoming 2.0 release, since
we're focusing on Linux stability. The 2.0 release for OS X will still
be a preview. After 2.0 we will be able to focus more on improving the
usability and stability of MonoDevelop on the Mac and Windows.

A lot of this, especially key binding stuff, cannot easily be done by
those of us who are not Mac users, as we just don't know how typical
Mac keybindings are expected to *feel*. Help and advice from Mac
developers would be much appreciated. Even if you fix just one of
these things, that means together we get more of it sorted out,
faster. I'd be happy to advise anyone on how to get started.

Here's my summary of the current state of things I'm aware of that
need to be fixed.

Redraw issues:
* File chooser's file list
  - GTK+ bug: http://bugzilla.gnome.org/show_bug.cgi?id=550939
* Tree view's selection and expander arrow
  - GTK+ bug
* MD text editor's text
  - This may be fixable in MD itself, or might be a GTK+ bug

Key binding issues
* Good default Mac keybinding scheme
* Ability to bind Command
  - It seems to show up as Alt right now
* Reliable capture of keys for keybindings
  - Can't capture F keys - OS is grabbing them?
  - Widget mnemonics seem to override key capture - GTK+ issue?
* Display keybindings using Mac-style symbols
  - In key binding manager and menus
* Key bindings for GTK+ built-in widgets
  - GTK+ bug & patch: http://bugzilla.gnome.org/show_bug.cgi?id=530351
* Review all places that MD code uses key modifiers, e.g. completion
window, expanding text selection, etc. and make sure they can be made

Global menu integration
* IGE menu integration library is very limited, so currently disabled
  - Can't display menu items with embedded labels, which we use for
displaying our accelerators, since we don't use GTK accelerator
  - Doesn't display radio or check items
  - Doesn't display icons
  - Doesn't update sensitivity
  - Reported to be very broken with menus that are dynamically updated
* Proposed solution: Write a CarbonMenu# binding (P/Invoke, should be
pretty easy) and use it to turn a CommandEntrySet into a Carbon menu

* Right-click emulation with Control-click
  - GTK+ bug & patch: http://bugzilla.gnome.org/show_bug.cgi?id=346609
* Modal dialogs don't stay on top
* Text position shifts while it's selected, even with Monospaced fonts.
  - Mostly a MD kerning bug, but monospace issues may be
* Dock integration
  - Some basics done, but would be useful to be able to add commands to the menu
* File handlers integration
  - Ffetch list of handlers for given mime types, for "open with" context menu
* Recent files list integration
  - Currently use the FreeDesktop ~/.recently-used file, which still
works for MD

* Buggy, with a lot of unimplemented features needed by the GTK# designer
* http://bugzilla.gnome.org/show_bug.cgi?id=559904
* http://bugzilla.gnome.org/show_bug.cgi?id=501588
* Shift-drag: http://bugzilla.gnome.org/show_bug.cgi?id=569145

Misc. disabled addins
* Gettext addin - not sure why
* SVN addin - needs testing, svn binding reportedly very unstable on Mac
* GtkCore designer - missing drag-n-drop in GTK+, no dllmaps, probably more
* Database addin - should work now it no longer uses GtkSourceView, but untested
* Boo binding - boo console uses GtkSourceView. Port or disable this feature.
* Moonlight/Silverlight - developer libraries not present (also a
problem on Linux)
* Python, Vala, Java - totally untested

Open GTK+ Quartz bugs can be seen here:

It would be useful to isolate the GTK/GDK issues and file bugs against
GTK. We can fairly easily apply patches to the GTK+ that Mono ships,
making things better for all GTK# apps.

Michael Hutchinson

More information about the Mono-osx mailing list