5

I'm using the latest version of Chrome on two machines; one Windows 7 and another Windows 8.1. One has a number of extensions included, but the other has zilch.


Whenever I vote to "Delete" in the Low Quality Posts queue, the vertical scroll bar will be unclickable when the next (and all future) posts load. If I click any other action (e.g. "Skip"), this problem does not occur.

I can still use my spacebar and arrow keys on the keyboard to move the page up and down, but the scroll bar won't let me click to drag, nor can I click the arrows at the top and bottom of the scroll bar to move it.

enter image description here


I've not seen this behaviour in other browsers (but I couldn't say I use them that often), and only seen this behaviour on this page (out of the wholllllle Internet).

3
  • 1
    Reproduced; no idea what's going on here though. Commented Jun 4, 2014 at 17:01
  • 1
    @Shog9: That makes two of us. If I'd come across a question on Stack Overflow asking how to disable clicking on the scroll bar, but allow scrolling via the keyboard, I'd tell them it wasn't possible :P. Commented Jun 4, 2014 at 17:31
  • 1
    @Shog9: Looks like actually voting to delete a post is not required: just bringing up the dialog is enough. Also, while the dialog is open, clicking the scroll bar closes the dialog. I suspect there's a stray event handler that isn't being properly cleaned up. Commented Jun 13, 2014 at 12:51

2 Answers 2

4

Fix rolling out in build rev 2014.6.13.2312 on meta and 2014.6.13.1659 on sites.

5

Aha! I found the bug!

It's in review.en.js, lines 4415–4417, in the function deleteClosePopup(), which looks like this:

function deleteClosePopup($popup) { $popup.fadeOutAndRemove(); $('.review-actions input').removeAttr('disabled'); $(document).off("mousedown", { parent: $popup }, deleteOnMouseDown); $(document).off("click", '.popup-close, .popup-actions-cancel', { parent: $popup }, deleteOnClick); $(document).off("keyup", { parent: $popup }, deleteOnKeyUp); } 

when it should look like this:

function deleteClosePopup($popup) { $popup.fadeOutAndRemove(); $('.review-actions input').removeAttr('disabled'); $(document).off("mousedown", deleteOnMouseDown); $(document).off("click", '.popup-close, .popup-actions-cancel', deleteOnClick); $(document).off("keyup", deleteOnKeyUp); } 

That is, the { parent: $popup } parameter should not be passed to the jQuery .off() method.

Specifically, the extra parameter causes .off() to silently fail, leaving the deleteOnMouseDown event handler to swallow all mousedown events that propagate down to the document object. On Chrome, that apparently includes any mousedown events on the scroll bar, making it unclickable.

1
  • 1
    That is some incredible detective work there Sherlock! Commented Jun 13, 2014 at 16:27

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.