This takes the algorithm from the GTK front end and puts it in the core, so it doesn't need to be implemented for every front end.