Index: src/wp-admin/css/edit.css
===================================================================
--- src/wp-admin/css/edit.css	(revision 39519)
+++ src/wp-admin/css/edit.css	(working copy)
@@ -370,27 +370,59 @@
 }
 
 .wp-editor-expand #wp-content-editor-container {
-	-webkit-box-shadow: none;
-	box-shadow: none;
 	margin-top: -1px;
-}
-
-.wp-editor-expand #wp-content-editor-container {
 	border-bottom: 0 none;
 }
 
-.wp-editor-expand div.mce-statusbar {
+.wp-editor-expand.toolbar-open div.mce-statusbar {
 	z-index: 1;
+	position: sticky;
+	position: -webkit-sticky;
+	bottom: 23px; /* #post-status-info: height + border-top */
 }
 
-.wp-editor-expand #post-status-info {
+.wp-editor-expand.toolbar-open #post-status-info {
 	border-top: 1px solid #e5e5e5;
+	position: sticky;
+	position: -webkit-sticky;
+	bottom: -1px; /* border-bottom */
 }
 
 .wp-editor-expand div.mce-toolbar-grp {
 	z-index: 999;
 }
 
+.wp-editor-expand .wp-editor-tools {
+	position: sticky;
+	position: -webkit-sticky;
+	top: 32px;
+}
+
+.wp-editor-expand div.mce-toolbar-grp,
+.wp-editor-expand .quicktags-toolbar {
+	position: sticky;
+	position: -webkit-sticky;
+	top: 87px; /* admin bar height + tools height */
+}
+
+/* Buffer space */
+.wp-editor-expand .wp-editor-tools,
+.wp-editor-expand div.mce-toolbar-grp,
+.wp-editor-expand .quicktags-toolbar {
+	margin-bottom: 100px;
+}
+
+/* Pull container up for buffer space */
+.wp-editor-expand .wp-editor-container,
+.wp-editor-expand .mce-edit-area,
+.wp-editor-expand .wp-editor-container textarea.wp-editor-area {
+	margin-top: -100px;
+}
+
+.wp-editor-expand #wp-content-editor-container {
+	margin-top: -101px; /* +1 for double border */
+}
+
 /* TinyMCE native fullscreen mode override */
 .mce-fullscreen #wp-content-wrap .mce-menubar,
 .mce-fullscreen #wp-content-wrap .mce-toolbar-grp,
Index: src/wp-admin/js/editor-expand.js
===================================================================
--- src/wp-admin/js/editor-expand.js	(revision 39519)
+++ src/wp-admin/js/editor-expand.js	(working copy)
@@ -53,6 +53,15 @@
 				sideSortablesHeight: 0
 			};
 
+		var featureSticky = ( function() {
+			var element = document.createElement( 'div' );
+			var style = element.style;
+
+			style.cssText = 'position:sticky;position:-webkit-sticky';
+
+			return !! style.position;
+		} )();
+
 		var shrinkTextarea = window._.throttle( function() {
 			var x = window.scrollX || document.documentElement.scrollLeft;
 			var y = window.scrollY || document.documentElement.scrollTop;
@@ -323,6 +332,8 @@
 				return;
 			}
 
+			if ( ! featureSticky ) {
+
 			topPos = $top.parent().offset().top;
 			editorPos = $editor.offset().top;
 			editorHeight = $editor.outerHeight();
@@ -468,6 +479,8 @@
 				}
 			}
 
+			} // end ! featureSticky
+
 			// Sidebar pinning
 			if ( $postboxContainer.width() < 300 && heights.windowWidth > 600 && // sidebar position is changed with @media from CSS, make sure it is on the side
 				$document.height() > ( $sideSortables.height() + postBodyTop + 120 ) && // the sidebar is not the tallest element
@@ -558,7 +571,7 @@
 				fixedSideTop = fixedSideBottom = false;
 			}
 
-			if ( resize ) {
+			if ( resize && ! featureSticky ) {
 				$contentWrap.css( {
 					paddingTop: heights.toolsHeight
 				} );
Index: src/wp-includes/js/tinymce/plugins/wordpress/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wordpress/plugin.js	(revision 39519)
+++ src/wp-includes/js/tinymce/plugins/wordpress/plugin.js	(working copy)
@@ -62,6 +62,10 @@
 			}
 		}
 
+		if ( editor.id === 'content' ) {
+			tinymce.$( '#postdivrich' ).toggleClass( 'toolbar-open', state !== 'hide' )
+		}
+
 		editor.fire( 'wp-toolbar-toggle' );
 	}
 
@@ -72,6 +76,7 @@
 		onPostRender: function() {
 			wpAdvButton = this;
 			wpAdvButton.active( getUserSetting( 'hidetb' ) === '1' ? true : false );
+			tinymce.$( '#postdivrich' ).toggleClass( 'toolbar-open', getUserSetting( 'hidetb' ) === '1' )
 		}
 	});
 
