Ticket #27348: 27348.5.patch
File 27348.5.patch, 4.2 KB (added by , 11 years ago) |
---|
-
src/wp-admin/css/customize-widgets.css
50 50 left: auto !important; 51 51 max-width: 100%; 52 52 } 53 53 54 .customize-control-widget_form.wide-widget-control .widget-inside { 54 55 position: fixed; 55 56 left: 299px; 56 57 top: 25%; 57 padding: 20px;58 58 border: 1px solid rgb(229, 229, 229); 59 z-index: -1;59 overflow: auto; 60 60 } 61 .customize-control-widget_form.wide-widget-control .collapsing .widget-inside{62 z-index: -2;61 .customize-control-widget_form.wide-widget-control .widget-inside > .form { 62 padding: 20px; 63 63 } 64 64 65 65 .customize-control-widget_form.wide-widget-control .widget-top { -
src/wp-admin/js/customize-widgets.js
703 703 _setupWideWidget: function () { 704 704 var control = this, 705 705 widget_inside, 706 widget_form, 706 707 customize_sidebar, 707 708 position_widget, 708 709 theme_controls_container; … … 712 713 } 713 714 714 715 widget_inside = control.container.find( '.widget-inside' ); 716 widget_form = widget_inside.find( '> .form' ); 715 717 customize_sidebar = $( '.wp-full-overlay-sidebar-content:first' ); 716 718 control.container.addClass( 'wide-widget-control' ); 717 719 718 720 control.container.find( '.widget-content:first' ).css( { 719 'm in-width': control.params.width,721 'max-width': control.params.width, 720 722 'min-height': control.params.height 721 723 } ); 722 724 … … 725 727 * element is at the same top position as the widget-top. When the 726 728 * widget-top is scrolled out of view, keep the widget-top in view; 727 729 * likewise, don't allow the widget to drop off the bottom of the window. 730 * If a widget is too tall to fit in the window, don't let the height 731 * exceed the window height so that the contents of the widget control 732 * will become scrollable (overflow:auto). 728 733 */ 729 734 position_widget = function () { 730 735 var offset_top = control.container.offset().top, 731 height, 732 top, 733 max_top; 734 735 height = widget_inside.outerHeight(); 736 top = Math.max( offset_top, 0 ); 737 max_top = $( window ).height() - height; 738 top = Math.min( top, max_top ); 736 window_height = $( window ).height(), 737 form_height = widget_form.outerHeight(), 738 top; 739 widget_inside.css( 'max-height', window_height ); 740 top = Math.max( 741 0, // prevent top from going off screen 742 Math.min( 743 Math.max( offset_top, 0 ), // distance widget in panel is from top of screen 744 window_height - form_height // flush up against bottom of screen 745 ) 746 ); 739 747 widget_inside.css( 'top', top ); 740 748 }; 741 749 742 750 theme_controls_container = $( '#customize-theme-controls' ); 743 751 control.container.on( 'expand', function () { 752 position_widget(); 744 753 customize_sidebar.on( 'scroll', position_widget ); 745 754 $( window ).on( 'resize', position_widget ); 746 755 theme_controls_container.on( 'expanded collapsed', position_widget ); 747 position_widget();748 756 } ); 749 757 control.container.on( 'collapsed', function () { 750 758 customize_sidebar.off( 'scroll', position_widget ); 759 $( window ).off( 'resize', position_widget ); 751 760 theme_controls_container.off( 'expanded collapsed', position_widget ); 752 $( window ).off( 'resize', position_widget );753 761 } ); 754 762 755 763 // Reposition whenever a sidebar's widgets are changed … … 1375 1383 return; 1376 1384 } 1377 1385 1378 complete;1379 1386 if ( do_expand ) { 1380 1387 // Close all other widget controls before expanding this one 1381 1388 wp.customize.control.each( function ( other_control ) { … … 1384 1391 } 1385 1392 } ); 1386 1393 1387 control.container.trigger( 'expand' );1388 control.container.addClass( 'expanding' );1389 1394 complete = function () { 1390 1395 control.container.removeClass( 'expanding' ); 1391 1396 control.container.addClass( 'expanded' ); … … 1396 1401 } else { 1397 1402 inside.slideDown( 'fast', complete ); 1398 1403 } 1404 control.container.trigger( 'expand' ); 1405 control.container.addClass( 'expanding' ); 1399 1406 } else { 1400 1407 control.container.trigger( 'collapse' ); 1401 1408 control.container.addClass( 'collapsing' );