Make WordPress Core

Ticket #13524: 13524.5.patch

File 13524.5.patch, 1.2 KB (added by polevaultweb, 11 years ago)

Close previously closed sidebar when widget dragged out of sidebar

  • src/wp-admin/js/widgets.js

     
    9494                        helper: 'clone',
    9595                        zIndex: 100,
    9696                        containment: '#wpwrap',
     97                        refreshPositions: true,
    9798                        start: function( event, ui ) {
    9899                                var chooser = $(this).find('.widgets-chooser');
    99100
     
    117118                        }
    118119                });
    119120
     121                var $hoveredWidget = false;
     122
     123                function closeWidgetWrap( widget ) {
     124                        var $widget = $( widget.target );
     125                        $hoveredWidget.addClass( 'closed' );
     126                        $widget.css( 'min-height', '' );
     127                        $hoveredWidget = false;
     128                }
     129
     130                sidebars.droppable( {
     131                        tolerance: 'touch',
     132                        over     : function( e, ui ) {
     133                                var $widget = $( e.target ),
     134                                        $wrap = $widget.parent();
     135
     136                                if ( $hoveredWidget && $wrap !== $hoveredWidget ) {
     137                                        closeWidgetWrap( e );
     138                                }
     139
     140                                if ( $wrap.hasClass( 'closed' ) ) {
     141                                        $hoveredWidget = $wrap;
     142                                        $wrap.removeClass( 'closed' );
     143                                }
     144                        },
     145
     146                        out: function( e, ui ) {
     147                                if ( $hoveredWidget ) {
     148                                        closeWidgetWrap( e );
     149                                }
     150                        }
     151                } );
     152
    120153                sidebars.sortable({
    121154                        placeholder: 'widget-placeholder',
    122155                        items: '> .widget',