/* Copyright (c) 2010, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html version: 3.4.0 build: nightly */ YUI.add('event-resize', function(Y) { /** * Adds a window resize event that has its behavior normalized to fire at the * end of the resize rather than constantly during the resize. * @module event * @submodule event-resize */ /** * Old firefox fires the window resize event once when the resize action * finishes, other browsers fire the event periodically during the * resize. This code uses timeout logic to simulate the Firefox * behavior in other browsers. * @event windowresize * @for YUI */ Y.Event.define('windowresize', { on: (Y.UA.gecko && Y.UA.gecko < 1.91) ? function (node, sub, notifier) { sub._handle = Y.Event.attach('resize', function (e) { notifier.fire(e); }); } : function (node, sub, notifier) { // interval bumped from 40 to 100ms as of 3.4.1 var delay = Y.config.windowResizeDelay || 100; sub._handle = Y.Event.attach('resize', function (e) { if (sub._timer) { sub._timer.cancel(); } sub._timer = Y.later(delay, Y, function () { notifier.fire(e); }); }); }, detach: function (node, sub) { if (sub._timer) { sub._timer.cancel(); } sub._handle.detach(); } // delegate methods not defined because this only works for window // subscriptions, so...yeah. }); }, '3.4.0' ,{requires:['event-synthetic']});