XF 1.5 Mouse Hover menus or popups no longer function after latest Win10 updates.

Isil`Zha

Active member
Recently, I had one of my laptops run the latest batch of Windows 10 updates (so I'm now running 10.0.14393 Build 14393.) Since then, every browser behaves the same: All mouse hover pop-ups or menus are disabled, and XF is serving up a "touch friendly" version. I do not have a touch screen. I have checked 4 different Xenforo sites and they all behave the same in Edge, Chrome, and Firefox, with or without add-ons, and after clearing all cache/cookie data.

For example: Thread preview popups don't work. Forum node descriptions, if set to show as a pop up, display in-line already. All menus, such as alerts, no longer pop-up on hover, but have to be clicked on.

This is how it displays on my mobile devices. I have a desktop I have not run the latest updates of Windows 10 yet, and everything still functions.

I have checked other websites with similar functionality, and they still work. So far, it is only Xenforo sites that I have discovered exhibiting this problem.
 
Last edited:
What exactly is XF looking for to make the determination that it should serve up the page as touch friendly?
This appears to be something of a design flaw, it makes some assumptions about touch that the industry has basically moved to invalidate by baking touch support in everywhere.

http://www.stucox.com/blog/you-cant-detect-a-touchscreen/
https://github.com/Modernizr/Modernizr/issues/548
http://code.google.com/p/chromium/issues/detail?id=152149

At the moment (to avoid broadly breaking sites like you describe) touch event support is enabled dynamically at run-time when we detect a touch screen. So any site that assumes that touch event support implies a mobile device (or lack of mouse support generally) will be broken on Windows/ChromeOS with a touch screen. Also, mobile devices like blackberry (and to a lesser extent Android) support mice in addition to a touch screen - so it's never really been true that touch event support implies you can ignore mouse events.

Also, I believe you're conflating the concept of "the browser supports touch events" and "the user has a touch screen". Just because there is currently no touch screen on a device, doesn't mean chrome shouldn't support touch events. See issue 159527 for more discussion.

Obviously we have a long way to go to make it standard practice and easy for websites to support touch events on desktop devices, but with the rise in popularity of touchscreen laptops (eg. with Win8) this is going to be an important area of focus.
 
This is in line with the timeframe that I started experiencing the problem:

https://forums.lenovo.com/t5/ThinkP...ndomly-thinks-it-is-a-touchscreen/m-p/3612467

Windows 10 info says my laptop is a "touch enabled device," even though it's not, and never has been. (Is Win10 now just assuming if it's a laptop, it's a touch screen?) I even went into the BIOS and disabled the touch pad in case that was causing it to believe I'm on a touch device. Along with @Xon's info above, asking the browser if the end user is using a touch screen or not is unreliable, at best. It's broken all XF sites on this machine, or anyone else that runs into this problem, with no way for the end-user to get around it.

@Brogan
 
It's pretty consistent that the browsers only provide touch events when they believe that touch is available. Given that Windows itself is reporting that it thinks the device is touch, then that would appear to be the underlying issue.

IMO, "broken" is not really an accurate description. All of the core functionality will still be there. There may be features that are tweaked because we don't believe hover is an option though. Not doing that would break functionality for legitimate touch devices, unless we were to generally drop hover-based functions.
 
"Irritating to use" may be more accurate, yeah. At first I was concerned how the theme had been modified with nothing in the admin log; the experience is inconsistent. At the very least I would like to have the option to disable touch-detection (have several users on my board reporting broken menus and functionality due to this issue.)
 
Untested, but if you ensure that this JS is injected immediately after xenforo.js, it may help your particular issue:
Code:
XenForo.isTouchBrowser = function() { return false; }; $('html').addClass('NoTouch').removeClass('Touch');
I'd note though that this may affect the behavior on legitimate touch devices though.
 
Top Bottom