Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 7373)
+++ /CKEditor/trunk/CHANGES.html	(revision 7374)
@@ -53,4 +53,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/8698">#8698</a> : Fix "Esc" shortcut key to close color picker dialog.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/8413">#8413</a> : Fix HTML comment nodes breaking content styling in table.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7932">#7932</a> : [IE] Fix click below content region scrolls page to top.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/clipboard/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/clipboard/plugin.js	(revision 7373)
+++ /CKEditor/trunk/_source/plugins/clipboard/plugin.js	(revision 7374)
@@ -227,5 +227,9 @@
 		window.setTimeout( function()
 		{
-			mode == 'text' && CKEDITOR.env.gecko && editor.focusGrabber.focus();
+			// Gecko need to move focus back from the textarea
+			// to blink the cursor. (#5684)
+			if ( mode == 'text' && CKEDITOR.env.gecko )
+				editor.document.getBody().focus();
+
 			pastebin.remove();
 			editor.removeListener( 'selectionChange', cancel );
Index: /CKEditor/trunk/_source/plugins/selection/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 7373)
+++ /CKEditor/trunk/_source/plugins/selection/plugin.js	(revision 7374)
@@ -342,18 +342,4 @@
 						});
 
-						// In IE6/7 the blinking cursor appears, but contents are
-						// not editable. (#5634)
-						if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
-						{
-							// The 'click' event is not fired when clicking the
-							// scrollbars, so we can use it to check whether
-							// the empty space following <body> has been clicked.
-							html.on( 'click', function( evt )
-							{
-								if ( evt.data.getTarget().getName() == 'html' )
-									editor.getSelection().getRanges()[ 0 ].select();
-							});
-						}
-
 						var scroll;
 						// IE fires the "selectionchange" event when clicking
@@ -400,4 +386,78 @@
 							});
 
+						// When content doc is in standards mode, IE doesn't focus the editor when
+						// clicking at the region below body (on html element) content, we emulate
+						// the normal behavior on old IEs. (#1659, #7932)
+						if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat )
+							 && doc.$.compatMode != 'BackCompat' )
+						{
+							html.on( 'mousedown', function( evt )
+							{
+								evt = evt.data.$;
+
+								// Expand the text range along with mouse move.
+								function onHover( evt )
+								{
+									evt = evt.data.$;
+									if ( textRng )
+									{
+										// Read the current cursor.
+										var rngEnd = body.$.createTextRange();
+										rngEnd.moveToPoint( evt.x, evt.y );
+
+										// Handle drag directions.
+										textRng.setEndPoint(
+											textRng.compareEndPoints( 'StartToStart', rngEnd ) < 0 ?
+											'EndToEnd' :
+											'StartToStart',
+											rngEnd );
+
+										// Update selection with new range.
+										textRng.select();
+									}
+								}
+
+								// We're sure that the click happens at the region
+								// below body, but not on scrollbar.
+								if ( evt.y < html.$.clientHeight
+									 && evt.y > body.$.clientHeight
+									 && evt.x < html.$.clientWidth )
+								{
+									// Start to build the text range.
+									var textRng = body.$.createTextRange();
+									textRng.moveToPoint( evt.x, evt.y );
+									textRng.select();
+
+									html.on( 'mousemove', onHover );
+
+									html.on( 'mouseup', function( evt )
+									{
+										html.removeListener( 'mousemove', onHover );
+										evt.removeListener();
+										textRng.select();
+										textRng = null;
+									} );
+								}
+							});
+						}
+
+						// It's much simpler for IE8, we just need to reselect the reported range.
+						if ( CKEDITOR.env.ie8 )
+						{
+							html.on( 'mouseup', function( evt )
+							{
+								// The event is not fired when clicking on the scrollbars,
+								// so we can safely check the following to understand
+								// whether the empty space following <body> has been clicked.
+								if ( evt.data.getTarget().getName() == 'html' )
+								{
+									var sel = CKEDITOR.document.$.selection,
+										range = sel.createRange();
+									// The selection range is reported on host, but actually it should applies to the content doc.
+									if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
+										range.select();
+								}
+							} );
+						}
 
 						// IE is the only to provide the "selectionchange"
Index: /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 7373)
+++ /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 7374)
@@ -687,26 +687,4 @@
 								if ( ev.data.getTarget().is( 'input', 'textarea' ) )
 									ev.data.preventDefault();
-							} );
-						}
-
-						// IE standard compliant in editing frame doesn't focus the editor when
-						// clicking outside actual content, manually apply the focus. (#1659)
-						if ( editable &&
-								CKEDITOR.env.ie && domDocument.$.compatMode == 'CSS1Compat'
-								|| CKEDITOR.env.gecko
-								|| CKEDITOR.env.opera )
-						{
-							var htmlElement = domDocument.getDocumentElement();
-							htmlElement.on( 'mousedown', function( evt )
-							{
-								// Setting focus directly on editor doesn't work, we
-								// have to use here a temporary element to 'redirect'
-								// the focus.
-								if ( evt.data.getTarget().equals( htmlElement ) )
-								{
-									if ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 )
-										blinkCursor();
-									focusGrabber.focus();
-								}
 							} );
 						}
@@ -1222,29 +1200,4 @@
 			}
 
-			// Create an invisible element to grab focus.
-			if ( CKEDITOR.env.gecko || CKEDITOR.env.ie || CKEDITOR.env.opera )
-			{
-				var focusGrabber;
-				editor.on( 'uiReady', function()
-				{
-					focusGrabber = editor.container.append( CKEDITOR.dom.element.createFromHtml(
-						// Use 'span' instead of anything else to fly under the screen-reader radar. (#5049)
-						'<span tabindex="-1" style="position:absolute;" role="presentation"></span>' ) );
-
-					focusGrabber.on( 'focus', function()
-						{
-							editor.focus();
-						} );
-
-					editor.focusGrabber = focusGrabber;
-				} );
-				editor.on( 'destroy', function()
-				{
-					CKEDITOR.tools.removeFunction( contentDomReadyHandler );
-					focusGrabber.clearCustomData();
-					delete editor.focusGrabber;
-				} );
-			}
-
 			// Disable form elements editing mode provided by some browers. (#5746)
 			editor.on( 'insertElement', function ( evt )
