diff --git a/src/wp-includes/js/media-audiovideo.js b/src/wp-includes/js/media-audiovideo.js
index c78406f41b..0249851099 100644
--- a/src/wp-includes/js/media-audiovideo.js
+++ b/src/wp-includes/js/media-audiovideo.js
@@ -1408,8 +1408,9 @@
function init() {
$(document.body)
.on( 'click', '.wp-switch-editor', wp.media.mixin.pauseAllPlayers )
- .on( 'click', '.add-media-source', function() {
- media.frame.setState('add-' + media.frame.defaults.id + '-source');
+ .on( 'click', '.add-media-source', function( e ) {
+ media.frame.lastMime = $( e.currentTarget ).data( 'mime' );
+ media.frame.setState( 'add-' + media.frame.defaults.id + '-source' );
} );
}
diff --git a/src/wp-includes/js/media-views.js b/src/wp-includes/js/media-views.js
index aff81b7e4c..be0ee8fd3f 100644
--- a/src/wp-includes/js/media-views.js
+++ b/src/wp-includes/js/media-views.js
@@ -1140,9 +1140,18 @@
initialize: function( options ) {
this.media = options.media;
- this.set( 'library', media.query({ type: options.type }) );
+ this.type = options.type;
+ this.set( 'library', media.query({ type: this.type }) );
media.controller.Library.prototype.initialize.apply( this, arguments );
+ },
+
+ activate: function() {
+ if ( media.frame.lastMime ) {
+ this.set( 'library', media.query({ type: media.frame.lastMime }) );
+ delete media.frame.lastMime;
+ }
+ media.controller.Library.prototype.activate.apply( this, arguments );
}
});
diff --git a/src/wp-includes/media-template.php b/src/wp-includes/media-template.php
index cadc3e9241..01d44ba2f2 100644
--- a/src/wp-includes/media-template.php
+++ b/src/wp-includes/media-template.php
@@ -771,7 +771,10 @@ function wp_print_media_templates() {