Index: src/wp-admin/css/edit.css
===================================================================
--- src/wp-admin/css/edit.css	(revision 39286)
+++ src/wp-admin/css/edit.css	(working copy)
@@ -379,18 +379,37 @@
 	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 */
+}
+
 /* 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 39286)
+++ src/wp-admin/js/editor-expand.js	(working copy)
@@ -6,6 +6,15 @@
 		$adminBar = $( '#wpadminbar' ),
 		$footer = $( '#wpfooter' );
 
+	var featureSticky = ( function() {
+		var element = document.createElement( 'div' );
+		var style = element.style;
+
+		style.cssText = 'position:sticky;position:-webkit-sticky';
+
+		return !! style.position;
+	} )();
+
 	/* Autoresize editor. */
 	$( function() {
 		var $wrap = $( '#postdivrich' ),
@@ -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 39286)
+++ 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' )
 		}
 	});
 
