| 505 | | if ( document.selection ) { // IE |
| 506 | | canvas.focus(); |
| 507 | | sel = document.selection.createRange(); |
| 508 | | if ( sel.text.length > 0 ) { |
| 509 | | if ( !t.tagEnd ) { |
| 510 | | sel.text = sel.text + t.tagStart; |
| 511 | | } else { |
| 512 | | sel.text = t.tagStart + sel.text + endTag; |
| 513 | | } |
| | 516 | if ( canvas.selectionStart || canvas.selectionStart === 0 ) { // FF, WebKit, Opera, IE9+ |
| | 517 | // Check if there has been a keyboard selection |
| | 518 | // reverse tabbing doesn't always make canvas.selectionStart available |
| | 519 | if ( keyboardSelection ) { |
| | 520 | startPos = keyboardSelection[0] || canvas.selectionStart; |
| | 521 | endPos = keyboardSelection[1] || canvas.selectionEnd; |
| | 522 | // Reset it right away, no need for it from here |
| | 523 | keyboardSelection = false; |
| | 561 | } else if ( document.selection ) { // IE8 |
| | 562 | canvas.focus(); |
| | 563 | // Check if we already have an IE keyboard selection first. |
| | 564 | sel = keyboardSelection || document.selection.createRange(); |
| | 565 | |
| | 566 | if ( sel.text.length > 0 ) { |
| | 567 | if ( !t.tagEnd ) { |
| | 568 | sel.text = sel.text + t.tagStart; |
| | 569 | } else { |
| | 570 | sel.text = t.tagStart + sel.text + endTag; |
| | 571 | } |
| | 572 | } else { |
| | 573 | if ( !t.tagEnd ) { |
| | 574 | sel.text = t.tagStart; |
| | 575 | } else if ( t.isOpen(ed) === false ) { |
| | 576 | sel.text = t.tagStart; |
| | 577 | t.openTag(element, ed); |
| | 578 | } else { |
| | 579 | sel.text = endTag; |
| | 580 | t.closeTag(element, ed); |
| | 581 | } |
| | 582 | } |
| | 583 | // Reset IE keyboard selection |
| | 584 | keyboardSelection = false; |
| | 585 | canvas.focus(); |
| | 600 | // IE keyboard selection: get and store the selection when reverse tabbing. |
| | 601 | qt.OnTab = function( event, canvas ) { |
| | 602 | var key; |
| | 603 | |
| | 604 | if ( 'keydown' === event.type ) { |
| | 605 | key = event.keyCode || event.charCode; |
| | 606 | if ( event.shiftKey && 9 === key ) { |
| | 607 | if ( canvas.selectionStart || canvas.selectionStart === 0 ) { |
| | 608 | keyboardSelection = [canvas.selectionStart, canvas.selectionEnd]; |
| | 609 | } else if ( document.selection ) { |
| | 610 | keyboardSelection = document.selection.createRange(); |
| | 611 | } |
| | 612 | } |
| | 613 | } |
| | 614 | }; |
| | 615 | |