<!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" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { 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 { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#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>
<title>[17703] trunk: Don't hide the top bar when the cursor is over it,
see #17136</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/17703">17703</a></dd>
<dt>Author</dt> <dd>azaozz</dd>
<dt>Date</dt> <dd>2011-04-26 07:20:56 +0000 (Tue, 26 Apr 2011)</dd>
</dl>
<h3>Log Message</h3>
<pre>Don't hide the top bar when the cursor is over it, see <a href="http://trac.wordpress.org/ticket/17136">#17136</a></pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadminjswpfullscreendevjs">trunk/wp-admin/js/wp-fullscreen.dev.js</a></li>
<li><a href="#trunkwpadminjswpfullscreenjs">trunk/wp-admin/js/wp-fullscreen.js</a></li>
<li><a href="#trunkwpincludesscriptloaderphp">trunk/wp-includes/script-loader.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadminjswpfullscreendevjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/wp-fullscreen.dev.js (17702 => 17703)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/wp-fullscreen.dev.js        2011-04-26 01:19:26 UTC (rev 17702)
+++ trunk/wp-admin/js/wp-fullscreen.dev.js        2011-04-26 07:20:56 UTC (rev 17703)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">
</span><span class="cx">                 setTimeout( function() {
</span><span class="cx">                         api.block = false;
</span><del>-                }, 500 );
</del><ins>+                }, 400 );
</ins><span class="cx">
</span><span class="cx">                 if ( api.timer )
</span><span class="cx">                         clearTimeout( api.timer );
</span><span class="lines">@@ -136,20 +136,38 @@
</span><span class="cx">                         title.siblings('label').css( 'visibility', 'hidden' );
</span><span class="cx">         }
</span><span class="cx">
</span><ins>+        api._make_sticky = function() {
+                $( document ).unbind( '.fullscreen' );
+                clearTimeout( api.timer );
+                api.timer = 0;
+        }
+
</ins><span class="cx">         ps.subscribe( 'showToolbar', function() {
</span><del>-                api.fade.In( api.ui.topbar, 600 );
</del><ins>+                api.fade.In( api.ui.topbar, 600, function(){ ps.publish('toolbarShown'); } );
</ins><span class="cx">                 $('#wp-fullscreen-body').addClass('wp-fullscreen-focus');
</span><span class="cx">         });
</span><span class="cx">
</span><span class="cx">         ps.subscribe( 'hideToolbar', function() {
</span><del>-                api.fade.Out( api.ui.topbar, 600 );
</del><ins>+                api.fade.Out( api.ui.topbar, 600, function(){ ps.publish('toolbarHidden'); } );
</ins><span class="cx">                 $('#wp-fullscreen-body').removeClass('wp-fullscreen-focus');
</span><ins>+                api.toolbarShown = false;
</ins><span class="cx">         });
</span><span class="cx">
</span><ins>+        ps.subscribe( 'toolbarShown', function() {
+                api.topbarshown = true;
+                if ( api.mouseisover )
+                        api._make_sticky();
+        });
+
+        ps.subscribe( 'toolbarHidden', function() {
+                $( document ).unbind( '.fullscreen2' )
+                        .bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 2500 ); } );
+        });
+
</ins><span class="cx">         ps.subscribe( 'show', function() {
</span><span class="cx">                 var title = $('#wp-fullscreen-title').val( $('#title').val() );
</span><span class="cx">                 this.set_title_hint(title);
</span><del>-                $( document ).bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 3000 ); } );
</del><ins>+                $( document ).bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 2500 ); } );
</ins><span class="cx">         });
</span><span class="cx">
</span><span class="cx">         ps.subscribe( 'hide', function() {
</span><span class="lines">@@ -219,11 +237,20 @@
</span><span class="cx">                  */
</span><span class="cx">
</span><span class="cx">                 init: function() {
</span><ins>+                        var topbar = api.ui.topbar = $('#fullscreen-topbar');
</ins><span class="cx">                         api.ui.element = $('#fullscreen-fader');
</span><del>-                        api.ui.topbar = $('#fullscreen-topbar');
</del><span class="cx">
</span><span class="cx">                         if ( wptitlehint )
</span><span class="cx">                                 wptitlehint('wp-fullscreen-title');
</span><ins>+
+                        topbar.mouseenter(function(e){
+                                api.mouseisover = true;
+                                if ( api.topbarshown )
+                                        api._make_sticky();
+                        }).mouseleave(function(e){
+                                api.mouseisover = false;
+                                $( document ).bind( 'mousemove.fullscreen2', function(e) { bounder( 'showToolbar', 'hideToolbar', 600 ); } );
+                        });
</ins><span class="cx">                 },
</span><span class="cx">
</span><span class="cx">                 fade: function( before, during, after ) {
</span></span></pre></div>
<a id="trunkwpadminjswpfullscreenjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/wp-fullscreen.js (17702 => 17703)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/wp-fullscreen.js        2011-04-26 01:19:26 UTC (rev 17702)
+++ trunk/wp-admin/js/wp-fullscreen.js        2011-04-26 07:20:56 UTC (rev 17703)
</span><span class="lines">@@ -1 +1 @@
</span><del>-var PubSub,fullscreen,wptitlehint;PubSub=function(){this.topics={}};PubSub.prototype.subscribe=function(a,b){if(!this.topics[a]){this.topics[a]=[]}this.topics[a].push(b);return b};PubSub.prototype.unsubscribe=function(b,e){var c,a,d=this.topics[b];if(!d){return e||[]}if(e){for(c=0,a=d.length;c<a;c++){if(e==d[c]){d.splice(c,1)}}return e}else{this.topics[b]=[];return d}};PubSub.prototype.publish=function(c,b){var d,a,e=this.topics[c];if(!e){return}b=b||[];for(d=0,a=e.length;d<a;d++){e[d].apply(null,b)}};(function(b){var a,d,c;fullscreen=a={};d=a.pubsub=new PubSub();a.timer=0;a.block=false;c=function(h,g,f){f=f||1250;if(a.block){return}a.block=true;setTimeout(function(){a.block=false},500);if(a.timer){clearTimeout(a.timer)}else{d.publish(h)}function e(){d.publish(g);a.timer=0}a.timer=setTimeout(e,f)};a.on=function(){if(!a.ui.element){a.ui.init()}if(!a.visible){a.ui.fade("show","showing","shown")}};a.off=function(){if(a.ui.element&&a.visible){a.ui.fade("hide","hiding","hidden")}};a.save=function(){b("#title").val(b("#wp-fullscreen-title").val());tinyMCE.execCommand("wpFullScreenSaveContent");b("#hiddenaction").val("wp-fullscreen-save-post");b.post(ajaxurl,b("form#post").serialize(),function(e){if(e.message){b("#wp-fullscreen-saved").html(e.message)}if(e.last_edited){b("#wp-fullscreen-last-edit").html(e.last_edited)}},"json")};set_title_hint=function(e){if(!e.val().length){e.siblings("label").css("visibility","")}else{e.siblings("label").css("visibility","hidden")}};d.subscribe("showToolbar",function(){a.fade.In(a.ui.topbar,600);b("#wp-fullscreen-body").addClass("wp-fullscreen-focus")});d.subscribe("hideToolbar",function(){a.fade.Out(a.ui.topbar,600);b("#wp-fullscreen-body").removeClass("wp-fullscreen-focus")});d.subscribe("show",function(){var e=b("#wp-fullscreen-title").val(b("#title").val());this.set_title_hint(e);b(document).bind("mousemove.fullscreen",function(f){c("showToolbar","hideToolbar",3000)})});d.subscribe("hide",function(){var e=b("#title").val(b("#wp-fullscreen-title").val());this.set_title_hint(e);tinyMCE.execCommand("wpFullScreenSave");b(document).unbind(".fullscreen")});d.subscribe("showing",function(){b("#wp-fullscreen-body").show();b(document.body).addClass("fullscreen-active");c("showToolbar","hideToolbar",3000);b("#wp-fullscreen-last-edit").html(b("#last-edit").html())});d.subscribe("hiding",function(){b("#wp-fullscreen-body").hide();b(document.body).removeClass("fullscreen-active");b("#last-edit").html(b("#wp-fullscreen-last-edit").html())});d.subscribe("shown",function(){a.visible=true});d.subscribe("hidden",function(){a.visible=false;b("#wp_mce_fullscreen").removeAttr("style");tinyMCE.execCommand("wpFullScreenClose")});a.b=function(){tinyMCE.execCommand("Bold")};a.i=function(){tinyMCE.execCommand("Italic")};a.ul=function(){tinyMCE.execCommand("InsertUnorderedList")};a.ol=function(){tinyMCE.execCommand("InsertOrderedList")};a.link=function(){tinyMCE.execCommand("WP_Link")};a.unlink=function(){tinyMCE.execCommand("unlink")};a.ui={init:function(){a.ui.element=b("#fullscreen-fader");a.ui.topbar=b("#fullscreen-topbar");if(wptitlehint){wptitlehint("wp-fullscreen-title")}},fade:function(f,e,g){if(f){d.publish(f)}a.fade.In(a.ui.element,600,function(){if(e){d.publish(e)}a.fade.Out(a.ui.element,600,function(){if(g){d.publish(g)}})})}};a.fade={transitionend:"transitionend webkitTransitionEnd oTransitionEnd",sensitivity:100,In:function(e,f,g){g=g||b.noop;f=f||400;if(a.fade.transitions){if(e.is(":visible")){e.addClass("fade-trigger");return e}e.show();e.one(this.transitionend,function(){g()});setTimeout(function(){e.addClass("fade-trigger")},this.sensitivity)}else{e.css("opacity",1).fadeIn(f,g)}return e},Out:function(e,f,g){g=g||b.noop;f=f||400;if(!e.is(":visible")){return e}if(a.fade.transitions){e.one(a.fade.transitionend,function(){if(e.hasClass("fade-trigger")){return}e.hide();g()});setTimeout(function(){e.removeClass("fade-trigger")},this.sensitivity)}else{e.fadeOut(f,g)}return e},transitions:(function(){var e=document.documentElement.style;return(typeof(e.WebkitTransition)=="string"||typeof(e.MozTransition)=="string"||typeof(e.OTransition)=="string"||typeof(e.transition)=="string")})()}})(jQuery);
</del><span class="cx">\ No newline at end of file
</span><ins>+var PubSub,fullscreen,wptitlehint;PubSub=function(){this.topics={}};PubSub.prototype.subscribe=function(a,b){if(!this.topics[a]){this.topics[a]=[]}this.topics[a].push(b);return b};PubSub.prototype.unsubscribe=function(b,e){var c,a,d=this.topics[b];if(!d){return e||[]}if(e){for(c=0,a=d.length;c<a;c++){if(e==d[c]){d.splice(c,1)}}return e}else{this.topics[b]=[];return d}};PubSub.prototype.publish=function(c,b){var d,a,e=this.topics[c];if(!e){return}b=b||[];for(d=0,a=e.length;d<a;d++){e[d].apply(null,b)}};(function(b){var a,d,c;fullscreen=a={};d=a.pubsub=new PubSub();a.timer=0;a.block=false;c=function(h,g,f){f=f||1250;if(a.block){return}a.block=true;setTimeout(function(){a.block=false},400);if(a.timer){clearTimeout(a.timer)}else{d.publish(h)}function e(){d.publish(g);a.timer=0}a.timer=setTimeout(e,f)};a.on=function(){if(!a.ui.element){a.ui.init()}if(!a.visible){a.ui.fade("show","showing","shown")}};a.off=function(){if(a.ui.element&&a.visible){a.ui.fade("hide","hiding","hidden")}};a.save=function(){b("#title").val(b("#wp-fullscreen-title").val());tinyMCE.execCommand("wpFullScreenSaveContent");b("#hiddenaction").val("wp-fullscreen-save-post");b.post(ajaxurl,b("form#post").serialize(),function(e){if(e.message){b("#wp-fullscreen-saved").html(e.message)}if(e.last_edited){b("#wp-fullscreen-last-edit").html(e.last_edited)}},"json")};set_title_hint=function(e){if(!e.val().length){e.siblings("label").css("visibility","")}else{e.siblings("label").css("visibility","hidden")}};a._make_sticky=function(){b(document).unbind(".fullscreen");clearTimeout(a.timer);a.timer=0};d.subscribe("showToolbar",function(){a.fade.In(a.ui.topbar,600,function(){d.publish("toolbarShown")});b("#wp-fullscreen-body").addClass("wp-fullscreen-focus")});d.subscribe("hideToolbar",function(){a.fade.Out(a.ui.topbar,600,function(){d.publish("toolbarHidden")});b("#wp-fullscreen-body").removeClass("wp-fullscreen-focus");a.toolbarShown=false});d.subscribe("toolbarShown",function(){a.topbarshown=true;if(a.mouseisover){a._make_sticky()}});d.subscribe("toolbarHidden",function(){b(document).unbind(".fullscreen2").bind("mousemove.fullscreen",function(f){c("showToolbar","hideToolbar",2500)})});d.subscribe("show",function(){var e=b("#wp-fullscreen-title").val(b("#title").val());this.set_title_hint(e);b(document).bind("mousemove.fullscreen",function(f){c("showToolbar","hideToolbar",2500)})});d.subscribe("hide",function(){var e=b("#title").val(b("#wp-fullscreen-title").val());this.set_title_hint(e);tinyMCE.execCommand("wpFullScreenSave");b(document).unbind(".fullscreen")});d.subscribe("showing",function(){b("#wp-fullscreen-body").show();b(document.body).addClass("fullscreen-active");c("showToolbar","hideToolbar",3000);b("#wp-fullscreen-last-edit").html(b("#last-edit").html())});d.subscribe("hiding",function(){b("#wp-fullscreen-body").hide();b(document.body).removeClass("fullscreen-active");b("#last-edit").html(b("#wp-fullscreen-last-edit").html())});d.subscribe("shown",function(){a.visible=true});d.subscribe("hidden",function(){a.visible=false;b("#wp_mce_fullscreen").removeAttr("style");tinyMCE.execCommand("wpFullScreenClose")});a.b=function(){tinyMCE.execCommand("Bold")};a.i=function(){tinyMCE.execCommand("Italic")};a.ul=function(){tinyMCE.execCommand("InsertUnorderedList")};a.ol=function(){tinyMCE.execCommand("InsertOrderedList")};a.link=function(){tinyMCE.execCommand("WP_Link")};a.unlink=function(){tinyMCE.execCommand("unlink")};a.ui={init:function(){var e=a.ui.topbar=b("#fullscreen-topbar");a.ui.element=b("#fullscreen-fader");if(wptitlehint){wptitlehint("wp-fullscreen-title")}e.mouseenter(function(f){a.mouseisover=true;if(a.topbarshown){a._make_sticky()}}).mouseleave(function(f){a.mouseisover=false;b(document).bind("mousemove.fullscreen2",function(g){c("showToolbar","hideToolbar",600)})})},fade:function(f,e,g){if(f){d.publish(f)}a.fade.In(a.ui.element,600,function(){if(e){d.publish(e)}a.fade.Out(a.ui.element,600,function(){if(g){d.publish(g)}})})}};a.fade={transitionend:"transitionend webkitTransitionEnd oTransitionEnd",sensitivity:100,In:function(e,f,g){g=g||b.noop;f=f||400;if(a.fade.transitions){if(e.is(":visible")){e.addClass("fade-trigger");return e}e.show();e.one(this.transitionend,function(){g()});setTimeout(function(){e.addClass("fade-trigger")},this.sensitivity)}else{e.css("opacity",1).fadeIn(f,g)}return e},Out:function(e,f,g){g=g||b.noop;f=f||400;if(!e.is(":visible")){return e}if(a.fade.transitions){e.one(a.fade.transitionend,function(){if(e.hasClass("fade-trigger")){return}e.hide();g()});setTimeout(function(){e.removeClass("fade-trigger")},this.sensitivity)}else{e.fadeOut(f,g)}return e},transitions:(function(){var e=document.documentElement.style;return(typeof(e.WebkitTransition)=="string"||typeof(e.MozTransition)=="string"||typeof(e.OTransition)=="string"||typeof(e.transition)=="string")})()}})(jQuery);
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpincludesscriptloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/script-loader.php (17702 => 17703)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/script-loader.php        2011-04-26 01:19:26 UTC (rev 17702)
+++ trunk/wp-includes/script-loader.php        2011-04-26 07:20:56 UTC (rev 17703)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">         $scripts->add( 'editor', "/wp-admin/js/editor$suffix.js", array('utils','jquery'), '20110411' );
</span><span class="cx">         $scripts->add_data( 'editor', 'group', 1 );
</span><span class="cx">         
</span><del>-        $scripts->add( 'wp-fullscreen', "/wp-admin/js/wp-fullscreen$suffix.js", array('jquery'), '20110425' );
</del><ins>+        $scripts->add( 'wp-fullscreen', "/wp-admin/js/wp-fullscreen$suffix.js", array('jquery'), '20110425a' );
</ins><span class="cx">         $scripts->add_data( 'wp-fullscreen', 'group', 1 );
</span><span class="cx">
</span><span class="cx">         $scripts->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.6.1');
</span></span></pre>
</div>
</div>
</body>
</html>