Skip to content

Commit a004eec

Browse files
committed
Merge branch 't/14659'
2 parents b02a80d + 5a3fed8 commit a004eec

File tree

9 files changed

+135
-1
lines changed

9 files changed

+135
-1
lines changed

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Fixed Issues:
1212
* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images in Edge does not work.
1313
* [#13548](http://dev.ckeditor.com/ticket/13548): [Internet Explorer] Fixed: Clicking on element's path disables cut/copy icons.
1414
* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.
15+
* [#14659](http://dev.ckeditor.com/ticket/14659): Fixed: Editor's content scrolled to the top after closing the dialog.
1516

1617
## CKEditor 4.5.10
1718

core/editable.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,13 @@
865865
this.hasFocus = true;
866866
}, null, null, -1 );
867867

868+
// [WebKit] Save scrollTop value so it can be used when restoring locked selection. (#14659)
869+
if ( CKEDITOR.env.webkit ) {
870+
this.on( 'scroll', function() {
871+
editor._.previousScrollTop = editor.editable().$.scrollTop;
872+
}, null, null, -1 );
873+
}
874+
868875
// Register to focus manager.
869876
editor.focusManager.add( this );
870877

core/selection.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,9 +540,17 @@
540540
// On Webkit we use DOMFocusIn which is fired more often than focus - e.g. when moving from main editable
541541
// to nested editable (or the opposite). Unlock selection all, but restore only when it was locked
542542
// for the same active element, what will e.g. mean restoring after displaying dialog.
543-
if ( restoreSel && CKEDITOR.env.webkit )
543+
if ( restoreSel && CKEDITOR.env.webkit ) {
544544
restoreSel = editor._.previousActive && editor._.previousActive.equals( doc.getActive() );
545545

546+
// On Webkit when editor uses divarea, native focus causes editable viewport to scroll
547+
// to the top (when there is no active selection inside while focusing) so the scroll
548+
// position should be restored after focusing back editable area. (#14659)
549+
if ( restoreSel && editor._.previousScrollTop != null && editor._.previousScrollTop != editable.$.scrollTop ) {
550+
editable.$.scrollTop = editor._.previousScrollTop;
551+
}
552+
}
553+
546554
editor.unlockSelection( restoreSel );
547555
restoreSel = 0;
548556
}, null, null, -1 );

tests/tickets/14659/manual/1.html

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<h3>Editor1:</h3>
2+
<textarea cols="80" id="editor1" name="editor1" rows="10">
3+
<h1><img alt="Saturn V carrying Apollo 11" src="/tests/_assets/logo.png" style="border:1px solid #cccccc; float:right; margin-left:15px; padding:5px" /> Apollo 11</h1><p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p><p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p><h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2><p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p><blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote><p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p><blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote><h2>Technical details <a id="tech-details" name="tech-details"></a></h2><table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse; margin:10px 0 10px 15px"><caption><strong>Mission crew</strong></caption><thead><tr><th scope="col">Position</th><th scope="col">Astronaut</th></tr></thead><tbody><tr><td>Commander</td><td>Neil A. Armstrong</td></tr><tr><td>Command Module Pilot</td><td>Michael Collins</td></tr><tr><td>Lunar Module Pilot</td><td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td></tr></tbody></table><p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p><ol><li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li><li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li><li><strong>Lunar Module</strong> for landing on the Moon.</li></ol><p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p><hr /><p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
4+
</textarea>
5+
6+
<hr>
7+
8+
<h3>Editor2:</h3>
9+
<textarea cols="80" id="editor2" name="editor2" rows="10">
10+
<h1><img alt="Saturn V carrying Apollo 11" src="/tests/_assets/logo.png" style="border:1px solid #cccccc; float:right; margin-left:15px; padding:5px" /> Apollo 11</h1><p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p><p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p><h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2><p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p><blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote><p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p><blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote><h2>Technical details <a id="tech-details" name="tech-details"></a></h2><table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse; margin:10px 0 10px 15px"><caption><strong>Mission crew</strong></caption><thead><tr><th scope="col">Position</th><th scope="col">Astronaut</th></tr></thead><tbody><tr><td>Commander</td><td>Neil A. Armstrong</td></tr><tr><td>Command Module Pilot</td><td>Michael Collins</td></tr><tr><td>Lunar Module Pilot</td><td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td></tr></tbody></table><p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p><ol><li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li><li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li><li><strong>Lunar Module</strong> for landing on the Moon.</li></ol><p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p><hr /><p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
11+
</textarea>
12+
13+
<script>
14+
CKEDITOR.replace( 'editor1' );
15+
16+
CKEDITOR.replace( 'editor2' );
17+
</script>

tests/tickets/14659/manual/1.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
@bender-tags: 4.5.11, tc, 14659
2+
@bender-ui: collapsed
3+
@bender-ckeditor-plugins: toolbar, wysiwygarea, divarea, about, a11yhelp, basicstyles, bidi, blockquote, clipboard, colorbutton, colordialog, contextmenu, dialogadvtab, div, elementspath, enterkey, entities, filebrowser, find, flash, floatingspace, font, format, forms, horizontalrule, htmlwriter, image, iframe, indentlist, indentblock, justify, language, link, list, liststyle, magicline, maximize, newpage, pagebreak, pastefromword, pastetext, preview, print, removeformat, resize, save, selectall, showblocks, showborders, smiley, sourcearea, specialchar, stylescombo, tab, table, tabletools, templates, undo
4+
5+
## Scenario
6+
7+
_Test on both Editor1 and Editor2 with at least 3 dialogs per editor instance_.
8+
9+
1. Scroll down editor content.
10+
1. Focus the cursor within the editor or select some text/element inside the editor.
11+
1. Open any dialog.
12+
1. Click cancel.
13+
14+
### Expected result:
15+
16+
After dialog is closed, caret/selection inside editor does not change.
17+
Editor content does not scroll in any direction.
18+
19+
### Unexpected:
20+
21+
After dialog is closed, selection is changed, caret moved or editor content is scrolls to the top.

tests/tickets/14659/manual/2.html

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<h3>Editor1:</h3>
2+
<textarea cols="80" id="editor1" name="editor1" rows="10">
3+
<h1><img alt="Saturn V carrying Apollo 11" src="/tests/_assets/logo.png" style="border:1px solid #cccccc; float:right; margin-left:15px; padding:5px" /> Apollo 11</h1><p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p><p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p><h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2><p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p><blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote><p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p><blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote><h2>Technical details <a id="tech-details" name="tech-details"></a></h2><table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse; margin:10px 0 10px 15px"><caption><strong>Mission crew</strong></caption><thead><tr><th scope="col">Position</th><th scope="col">Astronaut</th></tr></thead><tbody><tr><td>Commander</td><td>Neil A. Armstrong</td></tr><tr><td>Command Module Pilot</td><td>Michael Collins</td></tr><tr><td>Lunar Module Pilot</td><td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td></tr></tbody></table><p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p><ol><li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li><li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li><li><strong>Lunar Module</strong> for landing on the Moon.</li></ol><p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p><hr /><p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
4+
</textarea>
5+
6+
<hr>
7+
8+
<h3>Editor2:</h3>
9+
<textarea cols="80" id="editor2" name="editor2" rows="10">
10+
<h1><img alt="Saturn V carrying Apollo 11" src="/tests/_assets/logo.png" style="border:1px solid #cccccc; float:right; margin-left:15px; padding:5px" /> Apollo 11</h1><p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p><p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p><h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2><p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p><blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote><p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p><blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote><h2>Technical details <a id="tech-details" name="tech-details"></a></h2><table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse; margin:10px 0 10px 15px"><caption><strong>Mission crew</strong></caption><thead><tr><th scope="col">Position</th><th scope="col">Astronaut</th></tr></thead><tbody><tr><td>Commander</td><td>Neil A. Armstrong</td></tr><tr><td>Command Module Pilot</td><td>Michael Collins</td></tr><tr><td>Lunar Module Pilot</td><td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td></tr></tbody></table><p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:</p><ol><li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li><li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li><li><strong>Lunar Module</strong> for landing on the Moon.</li></ol><p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p><hr /><p style="text-align:right"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
11+
</textarea>
12+
13+
<script>
14+
CKEDITOR.replace( 'editor1' );
15+
16+
CKEDITOR.replace( 'editor2' );
17+
</script>

0 commit comments

Comments
 (0)