Opened 9 years ago
Closed 7 years ago
#16644 closed defect (wontfix)
dojox.drawing incorrectly connects key listeners to entire document
Reported by: | bdmayes | Owned by: | dylan |
---|---|---|---|
Priority: | low | Milestone: | 2.0 |
Component: | DojoX Drawing | Version: | 1.8.3 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description
It appears that the dojox.drawing module incorrectly handles keyboard event listeners. The problem appears to be rooted in dojo/dojox/drawing/manager/keys.js. In version 1.8.3 the offending lines are 162, 168, 192, and 232.
Because the listeners are connected to "document", it intercepts keyboard events fired by other, completely unrelated HTML elements and causes incorrect behavior because it "handles" the event by stopping it. I am attaching an SSCCE that demonstrates this.
Due to the inclusion of the dojox.drawing module, certain keys no longer have any effect in the textarea. Some keys that are known not to work (there may be others):
- backspace
- delete
- arrow keys
- space (depending on browser)
It makes it impossible to type or edit text in the textarea in any meaningful way. If you simply comment out the require statement then the textarea will work correctly.
Instead of connecting the keyboard events to document, maybe the code in keys.js should connect to this? I'm not 100% certain that "this" is the correct object but "document" certainly seems wrong.
Attachments (1)
Change History (4)
Changed 9 years ago by
Attachment: | sscce.html added |
---|
comment:1 Changed 9 years ago by
Milestone: | tbd → 1.9 |
---|---|
Owner: | changed from Mike Wilcox to dylan |
Priority: | undecided → low |
Status: | new → assigned |
comment:2 Changed 9 years ago by
Milestone: | 1.9 → 2.0 |
---|
Because key events are generally bound to a document element (since they aren't usually associated with a particular DOM node), this one is particularly challenging to solve without completely rewriting dojox/drawing.
I looked for several simple fixes (e.g. passing in a dom node), etc., but none of these options appear likely to work.
Unfortunately, I need to punt this to 2.0, at which time dojox/drawing should be split out to a separate project on GitHub?.
comment:3 Changed 7 years ago by
Resolution: | → wontfix |
---|---|
Status: | assigned → closed |
dojox/drawing is currently in an abandoned state. Closing this out, unless someone wants to take this on for Dojo 2.
simple HTML to demonstrate the problem