Index: wp-content/themes/twentytwelve/functions.php
===================================================================
--- wp-content/themes/twentytwelve/functions.php	(revision 23695)
+++ wp-content/themes/twentytwelve/functions.php	(working copy)
@@ -83,45 +83,25 @@
 require( get_template_directory() . '/inc/custom-header.php' );
 
 /**
- * Enqueues scripts and styles for front-end.
+ * Returns the Google font stylesheet URL if available.
  *
- * @since Twenty Twelve 1.0
+ * The use of Open Sans by default is localized. For languages that use
+ * characters not supported by the font, the font can be disabled.
+ *
+ * @since Twenty Twelve 1.2
+ *
+ * @return string Font stylesheet or empty string if disabled.
  */
-function twentytwelve_scripts_styles() {
-	global $wp_styles;
-
-	/*
-	 * Adds JavaScript to pages with the comment form to support
-	 * sites with threaded comments (when in use).
-	 */
-	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
-		wp_enqueue_script( 'comment-reply' );
-
-	/*
-	 * Adds JavaScript for handling the navigation menu hide-and-show behavior.
-	 */
-	wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
-
-	/*
-	 * Loads our special font CSS file.
-	 *
-	 * The use of Open Sans by default is localized. For languages that use
-	 * characters not supported by the font, the font can be disabled.
-	 *
-	 * To disable in a child theme, use wp_dequeue_style()
-	 * function mytheme_dequeue_fonts() {
-	 *     wp_dequeue_style( 'twentytwelve-fonts' );
-	 * }
-	 * add_action( 'wp_enqueue_scripts', 'mytheme_dequeue_fonts', 11 );
-	 */
+function twentytwelve_get_font_url() {
+	$font_url = '';
 
 	/* translators: If there are characters in your language that are not supported
-	   by Open Sans, translate this to 'off'. Do not translate into your own language. */
+	 by Open Sans, translate this to 'off'. Do not translate into your own language. */
 	if ( 'off' !== _x( 'on', 'Open Sans font: on or off', 'twentytwelve' ) ) {
 		$subsets = 'latin,latin-ext';
 
 		/* translators: To add an additional Open Sans character subset specific to your language, translate
-		   this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language. */
+		 this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language. */
 		$subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)', 'twentytwelve' );
 
 		if ( 'cyrillic' == $subset )
@@ -136,9 +116,36 @@
 			'family' => 'Open+Sans:400italic,700italic,400,700',
 			'subset' => $subsets,
 		);
-		wp_enqueue_style( 'twentytwelve-fonts', add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ), array(), null );
+		$font_url = add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" );
 	}
 
+	return $font_url;
+}
+
+/**
+ * Enqueues scripts and styles for front-end.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_scripts_styles() {
+	global $wp_styles;
+
+	/*
+	 * Adds JavaScript to pages with the comment form to support
+	 * sites with threaded comments (when in use).
+	 */
+	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
+		wp_enqueue_script( 'comment-reply' );
+
+	/*
+	 * Adds JavaScript for handling the navigation menu hide-and-show behavior.
+	 */
+	wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
+
+	$font_url = twentytwelve_get_font_url();
+	if ( ! empty( $font_url ) )
+		wp_enqueue_style( 'twentytwelve-fonts', esc_url_raw( $font_url ), array(), null );
+
 	/*
 	 * Loads our main stylesheet.
 	 */
@@ -153,6 +160,31 @@
 add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' );
 
 /**
+ * Adds additional stylesheets to the TinyMCE editor if needed.
+ *
+ * @uses twentytwelve_get_font_url() To get the Google Font stylesheet URL.
+ *
+ * @since Twenty Twelve 1.2
+ *
+ * @param string $mce_css CSS path to load in TinyMCE.
+ * @return string
+ */
+function twentytwelve_mce_css( $mce_css ) {
+	$font_url = twentytwelve_get_font_url();
+
+	if ( empty( $font_url ) )
+		return $mce_css;
+
+	if ( ! empty( $mce_css ) )
+		$mce_css .= ',';
+
+	$mce_css .= esc_url_raw( str_replace( ',', '%2C', $font_url ) );
+
+	return $mce_css;
+}
+add_filter( 'mce_css', 'twentytwelve_mce_css' );
+
+/**
  * Creates a nicely formatted and more specific title element text
  * for output in head of document, based on current view.
  *
