<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[48340] trunk/src: Accessibility: Administration: Improve the sortable postboxes areas on the Dashboard and Classic Editor pages.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/48340">48340</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/48340","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>afercia</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2020-07-06 18:01:55 +0000 (Mon, 06 Jul 2020)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Accessibility: Administration: Improve the sortable postboxes areas on the Dashboard and Classic Editor pages.

- makes the postboxes areas in the Dashboard visible also on large screens 
- uses a more meaningful text when all postboxes areas are empty instead of "Drag boxes here"
- restores the ability to drag boxes to the "advanced" area in the Classic Editor page
- makes the postboxes areas in the Classic Editor page visible while dragging so that users have a clue what the available areas are
- improves the color contrast of the postboxes areas while dragging
- uses `wp.i18n` for translatable strings in `wp-admin/js/postbox.js`

Props xkon, karmatosed, audrasjb, ocean90, joedolson, afercia, azaozz.
See <a href="https://core.trac.wordpress.org/ticket/20491">#20491</a>.
Fixes <a href="https://core.trac.wordpress.org/ticket/49288">#49288</a>, <a href="https://core.trac.wordpress.org/ticket/47541">#47541</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcjs_enqueuesadminpostboxjs">trunk/src/js/_enqueues/admin/postbox.js</a></li>
<li><a href="#trunksrcwpadmincsscommoncss">trunk/src/wp-admin/css/common.css</a></li>
<li><a href="#trunksrcwpadmincssdashboardcss">trunk/src/wp-admin/css/dashboard.css</a></li>
<li><a href="#trunksrcwpadmincsseditcss">trunk/src/wp-admin/css/edit.css</a></li>
<li><a href="#trunksrcwpincludesscriptloaderphp">trunk/src/wp-includes/script-loader.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcjs_enqueuesadminpostboxjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/js/_enqueues/admin/postbox.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/js/_enqueues/admin/postbox.js   2020-07-06 16:25:24 UTC (rev 48339)
+++ trunk/src/js/_enqueues/admin/postbox.js     2020-07-06 18:01:55 UTC (rev 48340)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -7,10 +7,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">  * @output wp-admin/js/postbox.js
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/* global ajaxurl, postBoxL10n, postboxes */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* global ajaxurl, postboxes */
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> (function($) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        var $document = $( document );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ var $document = $( document ),
+               __ = wp.i18n.__;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * This object contains all function to handle the behaviour of the post boxes. The post boxes are the boxes you see
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -235,14 +236,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                .end();
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                opacity: 0.65,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                start: function() {
+                                       $( 'body' ).addClass( 'is-dragging-metaboxes' );
+                               },
</ins><span class="cx" style="display: block; padding: 0 10px">                                 stop: function() {
</span><span class="cx" style="display: block; padding: 0 10px">                                        var $el = $( this );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                        $( 'body' ).removeClass( 'is-dragging-metaboxes' );
+
</ins><span class="cx" style="display: block; padding: 0 10px">                                         if ( $el.find( '#dashboard_browser_nag' ).is( ':visible' ) && 'dashboard_browser_nag' != this.firstChild.id ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                                $el.sortable('cancel');
</span><span class="cx" style="display: block; padding: 0 10px">                                                return;
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del><span class="cx" style="display: block; padding: 0 10px">                                         postboxes.save_order(page);
</span><span class="cx" style="display: block; padding: 0 10px">                                },
</span><span class="cx" style="display: block; padding: 0 10px">                                receive: function(e,ui) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -345,26 +350,44 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 * @return {void}
</span><span class="cx" style="display: block; padding: 0 10px">                 */
</span><span class="cx" style="display: block; padding: 0 10px">                _mark_area : function() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 var visibleSortables = $( '#dashboard-widgets .meta-box-sortables:visible, #post-body .meta-box-sortables:visible' ),
+                               areAllVisibleSortablesEmpty = true;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        $( '#dashboard-widgets .meta-box-sortables:visible' ).each( function() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 visibleSortables.each( function() {
</ins><span class="cx" style="display: block; padding: 0 10px">                                 var t = $(this);
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                if ( visible == 1 || t.children('.postbox:visible').length ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         if ( t.children('.postbox:visible').length ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                                         t.removeClass('empty-container');
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                        areAllVisibleSortablesEmpty = false;
</ins><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                                else {
</span><span class="cx" style="display: block; padding: 0 10px">                                        t.addClass('empty-container');
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                        t.attr('data-emptyString', postBoxL10n.postBoxEmptyString);
</del><span class="cx" style="display: block; padding: 0 10px">                                 }
</span><span class="cx" style="display: block; padding: 0 10px">                        });
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        if ( side.length ) {
-                               if ( side.children('.postbox:visible').length )
-                                       side.removeClass('empty-container');
-                               else if ( $('#postbox-container-1').css('width') == '280px' )
-                                       side.addClass('empty-container');
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 postboxes.updateEmptySortablesText( visibleSortables, areAllVisibleSortablesEmpty );
+               },
+
+               /**
+                * Updates the text for the empty sortable areas on the Dashboard.
+                *
+                * @since 5.5.0
+                *
+                * @return {void}
+                */
+               updateEmptySortablesText: function( visibleSortables, areAllVisibleSortablesEmpty ) {
+                       var isDashboard = $( '#dashboard-widgets' ).length,
+                               emptySortableText = areAllVisibleSortablesEmpty ?  __( 'Add boxes from the Screen Options menu' ) : __( 'Drag boxes here' );
+
+                       if ( ! isDashboard ) {
+                               return;
</ins><span class="cx" style="display: block; padding: 0 10px">                         }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+                       visibleSortables.each( function() {
+                               if ( $( this ).hasClass( 'empty-container' ) ) {
+                                       $( this ).attr( 'data-emptyString', emptySortableText );
+                               }
+                       } );
</ins><span class="cx" style="display: block; padding: 0 10px">                 },
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                /**
</span></span></pre></div>
<a id="trunksrcwpadmincsscommoncss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-admin/css/common.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/css/common.css 2020-07-06 16:25:24 UTC (rev 48339)
+++ trunk/src/wp-admin/css/common.css   2020-07-06 18:01:55 UTC (rev 48340)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -29,46 +29,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        overflow: visible;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/* inner 2 column liquid layout */
-
-.inner-sidebar {
-       float: right;
-       clear: right;
-       display: none;
-       width: 281px;
-       position: relative;
-}
-
-.columns-2 .inner-sidebar {
-       margin-right: auto;
-       width: 286px;
-       display: block;
-}
-
-.inner-sidebar #side-sortables,
-.columns-2 .inner-sidebar #side-sortables {
-       min-height: 300px;
-       width: 280px;
-       padding: 0;
-}
-
-.has-right-sidebar .inner-sidebar {
-       display: block;
-}
-
-.has-right-sidebar #post-body {
-       float: left;
-       clear: left;
-       width: 100%;
-       margin-right: -2000px;
-}
-
-.has-right-sidebar #post-body-content {
-       margin-right: 300px;
-       float: none;
-       width: auto;
-}
-
</del><span class="cx" style="display: block; padding: 0 10px"> /* 2 columns main area */
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> #col-left {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1983,36 +1943,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> .metabox-holder .postbox-container .empty-container {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        border: 3px dashed #b4b9be;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ outline: 3px dashed #b4b9be;
</ins><span class="cx" style="display: block; padding: 0 10px">         height: 250px;
</span><span class="cx" style="display: block; padding: 0 10px">        position: relative;
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-.metabox-holder .postbox-container .empty-container:after {
-       content: attr(data-emptystring);
-       margin: auto;
-       position: absolute;
-       top: 0;
-       left: 0;
-       bottom: 0;
-       right: 0;
-       height: 1em;
-       width: 200px;
-       text-align: center;
-       color: #ccc;
-       font-size: 18px;
-       display: none;
-}
-
-.metabox-holder.columns-1 .postbox-container .empty-container,
-.columns-2 #postbox-container-3 .empty-container,
-.columns-2 #postbox-container-4 .empty-container,
-.columns-3 #postbox-container-4 .empty-container {
-       border: 0 none;
-       height: 0;
-       min-height: 0;
-}
-
</del><span class="cx" style="display: block; padding: 0 10px"> #post-body-content {
</span><span class="cx" style="display: block; padding: 0 10px">        width: 100%;
</span><span class="cx" style="display: block; padding: 0 10px">        min-width: 463px;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2032,7 +1967,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /* one column on the dash */
</span><span class="cx" style="display: block; padding: 0 10px"> @media only screen and (max-width: 799px) {
</span><span class="cx" style="display: block; padding: 0 10px">        #wpbody-content .metabox-holder .postbox-container .empty-container {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                border: 0 none;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         outline: none;
</ins><span class="cx" style="display: block; padding: 0 10px">                 height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">                min-height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span></span></pre></div>
<a id="trunksrcwpadmincssdashboardcss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-admin/css/dashboard.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/css/dashboard.css      2020-07-06 16:25:24 UTC (rev 48339)
+++ trunk/src/wp-admin/css/dashboard.css        2020-07-06 18:01:55 UTC (rev 48340)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -48,10 +48,35 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> #dashboard-widgets .meta-box-sortables {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        margin: 0 8px;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /* Required min-height to make the jQuery UI Sortable drop zone work. */
</ins><span class="cx" style="display: block; padding: 0 10px">         min-height: 100px;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        margin: 0 8px 20px;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* Only highlight drop zones when dragging and only in the 2 columns layout. */
+.is-dragging-metaboxes #dashboard-widgets .meta-box-sortables {
+       outline: 3px dashed #606a73;
+       /* Prevent margin on the child from collapsing with margin on the parent. */
+       display: flow-root;
+}
+
+#dashboard-widgets .postbox-container .empty-container:after {
+       content: attr(data-emptystring);
+       margin: auto;
+       position: absolute;
+       top: 50%;
+       left: 0;
+       right: 0;
+       transform: translateY( -50% );
+       padding: 0 2em;
+       text-align: center;
+       color: #606a73;
+       font-size: 16px;
+       line-height: 1.5;
+       display: none;
+}
+
+
</ins><span class="cx" style="display: block; padding: 0 10px"> /* @todo: this was originally in this section, but likely belongs elsewhere */
</span><span class="cx" style="display: block; padding: 0 10px"> #the-comment-list td.comment p.comment-author {
</span><span class="cx" style="display: block; padding: 0 10px">        margin-top: 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1078,6 +1103,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">        #wpbody-content #dashboard-widgets .postbox-container {
</span><span class="cx" style="display: block; padding: 0 10px">                width: 100%;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+       #dashboard-widgets .meta-box-sortables {
+               min-height: 0;
+       }
+
+       .is-dragging-metaboxes #dashboard-widgets .meta-box-sortables {
+               min-height: 100px;
+       }
+
+       #dashboard-widgets .meta-box-sortables.empty-container {
+               margin-bottom: 0;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /* two columns on the dash, but keep the setting if one is selected */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1095,9 +1132,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        #dashboard-widgets #postbox-container-3 .empty-container,
</span><span class="cx" style="display: block; padding: 0 10px">        #dashboard-widgets #postbox-container-4 .empty-container {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                border: 0 none;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         outline: none;
</ins><span class="cx" style="display: block; padding: 0 10px">                 height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">                min-height: 0;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                margin-bottom: 0;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        #dashboard-widgets #postbox-container-3 .empty-container:after,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1109,10 +1147,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                width: 100%;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        #wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container {
-               border: 0 none;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ #wpbody #dashboard-widgets .metabox-holder.columns-1 .postbox-container .empty-container {
+               outline: none;
</ins><span class="cx" style="display: block; padding: 0 10px">                 height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">                min-height: 0;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                margin-bottom: 0;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /* show the radio buttons for column prefs only for one or two columns */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1126,7 +1165,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                display: none;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        .metabox-holder .postbox-container .empty-container:after {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ #dashboard-widgets .postbox-container .empty-container:after {
</ins><span class="cx" style="display: block; padding: 0 10px">                 display: block;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1147,9 +1186,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        #dashboard-widgets #postbox-container-4 .empty-container {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                border: 0 none;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         outline: none;
</ins><span class="cx" style="display: block; padding: 0 10px">                 height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">                min-height: 0;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                margin-bottom: 0;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        #dashboard-widgets #postbox-container-4 .empty-container:after {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1156,11 +1196,18 @@
</span><span class="cx" style="display: block; padding: 0 10px">                display: none;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        .metabox-holder .postbox-container .empty-container:after {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ #dashboard-widgets .postbox-container .empty-container:after {
</ins><span class="cx" style="display: block; padding: 0 10px">                 display: block;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* Always show the "Drag boxes here" CSS generated content on large screens. */
+@media only screen and (min-width: 1801px) {
+       #dashboard-widgets .postbox-container .empty-container:after {
+               display: block;
+       }
+}
+
</ins><span class="cx" style="display: block; padding: 0 10px"> @media screen and (max-width: 870px) {
</span><span class="cx" style="display: block; padding: 0 10px">        .welcome-panel .welcome-panel-column,
</span><span class="cx" style="display: block; padding: 0 10px">        .welcome-panel .welcome-panel-column:first-child {
</span></span></pre></div>
<a id="trunksrcwpadmincsseditcss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-admin/css/edit.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-admin/css/edit.css   2020-07-06 16:25:24 UTC (rev 48339)
+++ trunk/src/wp-admin/css/edit.css     2020-07-06 18:01:55 UTC (rev 48340)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -147,10 +147,39 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /* Post Screen */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-#post-body #normal-sortables {
-       min-height: 50px;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+/* Only target the sortables in the post screen excluding the ones in the Dashboard. */
+#post-body .meta-box-sortables {
+       /* Required min-height to make the jQuery UI Sortable drop zone work. */
+       min-height: 1px;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/* Resets height and outline inherited from common.css. */
+#post-body.columns-1 #side-sortables.empty-container,
+#post-body #normal-sortables.empty-container,
+#post-body #advanced-sortables.empty-container {
+       /* Sortables need some initial height to work correctly. */
+       height: 1px;
+       outline: none;
+}
+
+/* Only highlight drop zones when dragging and only in the 2 columns layout. */
+.is-dragging-metaboxes #post-body.columns-2 #side-sortables,
+.is-dragging-metaboxes #post-body #normal-sortables,
+.is-dragging-metaboxes #post-body #advanced-sortables {
+       outline: 3px dashed #606a73;
+       /* Prevent margin on the child from collapsing with margin on the parent. */
+       display: flow-root;
+       /*
+        * This min-height is meant to limit jumpiness while dragging. It's equivalent
+        * to the minimum height of the sortable-placeholder which is given by the height
+        * of a collapsed post box (36px + 1px top and bottom borders) + the placeholder
+        * bottom margin (20px) + 2 additional pixels to compensate browsers rounding.
+        */
+       min-height: 60px;
+       margin-bottom: 20px;
+}
+
</ins><span class="cx" style="display: block; padding: 0 10px"> .postbox {
</span><span class="cx" style="display: block; padding: 0 10px">        position: relative;
</span><span class="cx" style="display: block; padding: 0 10px">        min-width: 255px;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1453,7 +1482,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-/* one column on the attachment editor screen */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/*
+ * The edit attachment screen auto-switches to one column layout when the
+ * viewport is smaller than 1200 pixels.
+ */
</ins><span class="cx" style="display: block; padding: 0 10px"> @media only screen and (max-width: 1200px) {
</span><span class="cx" style="display: block; padding: 0 10px">        .post-type-attachment #poststuff {
</span><span class="cx" style="display: block; padding: 0 10px">                min-width: 0;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1470,7 +1502,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        .post-type-attachment #poststuff #postbox-container-1 .empty-container,
</span><span class="cx" style="display: block; padding: 0 10px">        .post-type-attachment #poststuff #postbox-container-1 #side-sortables:empty {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                border: 0 none;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         outline: none;
</ins><span class="cx" style="display: block; padding: 0 10px">                 height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">                min-height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1480,6 +1512,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                width: auto;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        .is-dragging-metaboxes.post-type-attachment #post-body .meta-box-sortables {
+               outline: none;
+               min-height: 0;
+               margin-bottom: 0;
+       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">         /* hide the radio buttons for column prefs */
</span><span class="cx" style="display: block; padding: 0 10px">        .post-type-attachment .screen-layout,
</span><span class="cx" style="display: block; padding: 0 10px">        .post-type-attachment .columns-prefs {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1504,7 +1542,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        #poststuff #postbox-container-1 .empty-container,
</span><span class="cx" style="display: block; padding: 0 10px">        #poststuff #postbox-container-1 #side-sortables:empty {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                border: 0 none;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         outline: none;
</ins><span class="cx" style="display: block; padding: 0 10px">                 height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">                min-height: 0;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span></span></pre></div>
<a id="trunksrcwpincludesscriptloaderphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/script-loader.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/script-loader.php   2020-07-06 16:25:24 UTC (rev 48339)
+++ trunk/src/wp-includes/script-loader.php     2020-07-06 18:01:55 UTC (rev 48340)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1240,13 +1240,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                $scripts->add( 'xfn', "/wp-admin/js/xfn$suffix.js", array( 'jquery' ), false, 1 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array( 'jquery-ui-sortable' ), false, 1 );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                did_action( 'init' ) && $scripts->localize(
-                       'postbox',
-                       'postBoxL10n',
-                       array(
-                               'postBoxEmptyString' => __( 'Drag boxes here' ),
-                       )
-               );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $scripts->set_translations( 'postbox' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $scripts->add( 'tags-box', "/wp-admin/js/tags-box$suffix.js", array( 'jquery', 'tags-suggest' ), false, 1 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre>
</div>
</div>

</body>
</html>