Scott González [Thu, 11 May 2017 17:58:08 +0000 (13:58 -0400)]
Dialog: Fix shared event handler for modal dialogs
The old logic worked when all widgets of the same type used the same
event namespace. However, now that each instance has its own namespace,
we cannot use `_on()` for shared event handlers.
A. Wells [Thu, 16 Feb 2017 18:48:45 +0000 (13:48 -0500)]
Sortable: Fix various scrolling issues
* Created _scroll extension point and migrated scroll code from _mouseDrag
* Cleaned up logic for scrolled
* Fixed appendTo functionality to match documentation
* Remove unnecessary function calls
* Move set-up position functions to appropriate place
* Base scrollParent on placeholder and not helper
* Update scrollParent when switching containers
Ryan Oriecuia [Thu, 12 Jan 2017 19:16:20 +0000 (11:16 -0800)]
Autocomplete: Fix IE/Edge scrolling issues
IE11 and scrolling autocompletes didn't get along great; this should help fix
their relationship.
When you click on an autocomplete scrollbar in IE11, the menu temporarily
gains focus, which caused a couple problems.
1. Depending on how long you clicked, the dropdown could close.
2. Scrolling down by clicking the scrollbar's down arrow would misbehave. The
list would pop back up to the top with the first item selected.
We can fix both problems by modifying the focus/blur handling a bit.
1. There is a flag to instruct the control to ignore blurs, but it was getting
cleared too quickly; when the code refocused the input after it was blurred,
IE would send *another* blur event, which wasn't getting ignored and would
close the dropdown. We now wait for the focus/blur pair to process before
clearing the flag.
2. We remove the tabindex from the dropdown menu, which prevents menu's focus
handler from firing. When you focus a menu, it will select the first menu item
if none are selected. Selecting a menu item will scroll it into view if it's
not visible. This combination of behaviors was causing the strange behavior
when attempting to scroll down.
I couldn't figure out a way to write a unit test for this, since it's IE only
and seems to require user interaction. You can verify the previous behavior
(and the fix) on `demos/autocomplete/maxheight.html`
Node.js 0.12 loses upstream support at the end of 2016, while Node 6 is in the
Active support phase until 2018-04-18 and will receive security fixes until
2019-04-18.
Ryan Oriecuia [Tue, 16 Aug 2016 23:52:15 +0000 (16:52 -0700)]
Draggable: Fix spurious blur in dialogs on mousedown
I was running into a problem with a popup menu control in a dialog; clicks
weren't working (but keyboard was working fine). It turned out that the menu
was getting destroyed before the click event could fire.
Tracked down the issue to the way draggable blurs focused controls; it was
doing the blur before it ran through the logic to figure out if the drag was
actually on the handle. I've moved the blur below these checks, so it'll only
blur things if it actually needs to handle the drag. Otherwise, it asserts no
opinion on what should and shouldn't be focused, which seems like the way
things ought to be.
Also, added a unit test to check for the expected behavior.
Scott González [Tue, 30 Aug 2016 20:26:18 +0000 (16:26 -0400)]
Effects: Adjust animation duration in tests
With jQuery 3 using `requestAnimationFrame()`, the `setTimeout()` timing
for short animations wasn't working consistently. This resulted in infrequent
failures everywhere (but infrequent enough that it's hard to even notice), but
consistent failures in IE and Edge. Bumping up the duration and running the
assertions in the middle seems to give consistent results.
Eventually, we should refactor this to use `requestAnimationFrame()` in the
tests themselves to avoid problems like this.
Scott González [Wed, 6 Jul 2016 17:09:15 +0000 (13:09 -0400)]
Tabs: Remove test for Ajax URLs containing hashes
This hasn't been a problem for a long time and jQuery no longer removes
the hash in 3.0.0, so the test started to fail even though the actual
code is working just fine.
Tests: Stop testing against core 2.0.2 on testswarm
jQuery 2.0.3 fixed very few things from 2.0.2, the list is here:
http://blog.jquery.com/2013/07/03/jquery-1-10-2-and-2-0-3-released/
One of the fixes was http://bugs.jquery.com/ticket/13980, though which was
about cross-domain iframe issues. The problem is TestSwarm loads a cross-domain
iframe: the main page is swarm.jquery.org, the frame is on
builds.jenkins.jquery.com so it might be causing issues. You can see jQuery UI
tests are timing out in all IE versions in jQuery 2.0.2:
http://swarm.jquery.org/job/2918
The problem is that it doesn't just fail, it starves the available IE pool,
making it sometimes harder for other projects to get their tests run on IE.
That's why tests with jQuery 2.0.2 on TestSwarm need to be removed as it's been
done with 1.10.1.