r2764 - made sure_safemouseup toggling only occurs for popup style menus, and that a mouseover on...

r2764 - made sure_safemouseup toggling only occurs for popup style menus, and that a mouseover on...


Author: scottjehl
Date: Mon Jun 15 08:30:59 2009
New Revision: 2764
Modified:
branches/labs/selectmenu/ui.selectmenu.js
Log:
made sure_safemouseup toggling only occurs for popup style menus, and that
a mouseover on a non-selected option will enable mouseup to fire even if
the timeout hasn't finished.
Modified: branches/labs/selectmenu/ui.selectmenu.js
==============================================================================
--- branches/labs/selectmenu/ui.selectmenu.js    (original)
+++ branches/labs/selectmenu/ui.selectmenu.js    Mon Jun 15 08:30:59 2009
@@ -46,8 +46,10 @@
            self._closeOthers();
            self._toggle();
            //make sure a click won't open/close instantly
-            self._safemouseup = false;
-            setTimeout(function(){self._safemouseup = true;}, 500);
+            if(o.style == "popup"){
+                self._safemouseup = false;
+                setTimeout(function(){self._safemouseup = true;}, 500);
+            }    
            return false;
        })
        .bind('click',function(){
@@ -120,6 +122,10 @@
                    
$(this).parent().find('.ui-selectmenu-item-selected').addClass(activeClass);
                    
$(this).parent().find('.ui-selectmenu-item-focus').removeClass('ui-selectmenu-item-focus
ui-state-hover');
                    
$(this).removeClass('ui-state-active').addClass('ui-selectmenu-item-focus
ui-state-hover');
+                    //if it's a popup menu, if the hovered item isn't selected, let the
mouseup event fire
+                    if(o.style == "popup" && !$(this).is('.ui-selectmenu-item-selected')){
+                        self._safemouseup = true;
+                    }    
                })
                .bind('mouseout blur', function(){
                    if($(this).is('.ui-selectmenu-item-selected')){
$(this).addClass(activeClass); }