Commit 52a10448 authored by campaign's avatar campaign

修复shift+方向键问题

parent ee0677b8
...@@ -93,6 +93,7 @@ KityMinder.registerModule('TextEditModule', function() { ...@@ -93,6 +93,7 @@ KityMinder.registerModule('TextEditModule', function() {
if(selectionReadyShow){ if(selectionReadyShow){
textShape.setStyle('cursor', 'text'); textShape.setStyle('cursor', 'text');
sel.clearBaseOffset();
receiver.updateSelection(); receiver.updateSelection();
km.setStatus('textedit'); km.setStatus('textedit');
...@@ -143,6 +144,8 @@ KityMinder.registerModule('TextEditModule', function() { ...@@ -143,6 +144,8 @@ KityMinder.registerModule('TextEditModule', function() {
sel.setColor(node.getStyle('text-selection-color')); sel.setColor(node.getStyle('text-selection-color'));
sel.clearBaseOffset();
node.getTextShape().setStyle('cursor', 'text'); node.getTextShape().setStyle('cursor', 'text');
receiver.updateSelection(); receiver.updateSelection();
...@@ -161,6 +164,7 @@ KityMinder.registerModule('TextEditModule', function() { ...@@ -161,6 +164,7 @@ KityMinder.registerModule('TextEditModule', function() {
}else { }else {
//当有光标时,要同步选区 //当有光标时,要同步选区
if(!sel.collapsed){ if(!sel.collapsed){
sel.clearBaseOffset();
receiver.updateContainerRangeBySel(); receiver.updateContainerRangeBySel();
} }
......
...@@ -145,6 +145,7 @@ Minder.Receiver = kity.createClass('Receiver', { ...@@ -145,6 +145,7 @@ Minder.Receiver = kity.createClass('Receiver', {
}, 300); }, 300);
me.km.setStatus('textedit'); me.km.setStatus('textedit');
me.selection.clearBaseOffset();
} }
...@@ -196,31 +197,37 @@ Minder.Receiver = kity.createClass('Receiver', { ...@@ -196,31 +197,37 @@ Minder.Receiver = kity.createClass('Receiver', {
} }
//针对按住shift+方向键进行处理 //针对按住shift+方向键进行处理
if(orgEvt.shiftKey && keymap.direction[keyCode] && this.selection.isShow()){ if(orgEvt.shiftKey && keymap.direction[keyCode] && this.selection.isShow()){
if(this.selection.baseOffset === null){
this.selection.baseOffset = this.selection.startOffset;
this.selection.currentEndOffset = this.selection.endOffset;
}
var textlength = this.textShape.getContent().length; var textlength = this.textShape.getContent().length;
if(keymap.right == keyCode ){ if(keymap.right == keyCode ){
var endOffset = this.selection.endOffset+1; this.selection.currentEndOffset++;
if(endOffset > textlength){ if(this.selection.currentEndOffset > textlength){
endOffset = textlength; this.selection.currentEndOffset = textlength;
} }
this.selection.setEndOffset(endOffset);
}else if(keymap.left == keyCode){
endOffset = this.selection.endOffset-1; }else if(keymap.left == keyCode){
if(endOffset < 0){ this.selection.currentEndOffset--;
endOffset = 0; if(this.selection.currentEndOffset < 0){
this.selection.currentEndOffset = 0;
} }
if(endOffset <= this.selection.startOffset){
if(endOffset == this.selection.startOffset){
this.selection.setEndOffset(endOffset)
}else{
this.selection.setStartOffset(endOffset)
}
}else{
this.selection.setEndOffset(endOffset);
}
} }
if(this.selection.currentEndOffset >= this.selection.baseOffset){
this.selection.setEndOffset(this.selection.currentEndOffset);
if(this.selection.currentEndOffset == this.selection.baseOffset){
this.selection.setStartOffset(this.selection.baseOffset);
}
}else{
this.selection.setStartOffset(this.selection.currentEndOffset);
this.selection.setEndOffset(this.selection.baseOffset);
}
this.updateContainerRangeBySel(); this.updateContainerRangeBySel();
...@@ -448,7 +455,8 @@ Minder.Receiver = kity.createClass('Receiver', { ...@@ -448,7 +455,8 @@ Minder.Receiver = kity.createClass('Receiver', {
endOffset = this.textData[this.selection.endOffset], endOffset = this.textData[this.selection.endOffset],
width = 0; width = 0;
if (this.selection.collapsed) { if (this.selection.collapsed) {
this.selection.updateShow(startOffset || this.textData[this.textData.length - 1], 1);
this.selection.updateShow(startOffset || this.textData[this.textData.length - 1], 2);
return this; return this;
} }
if (!endOffset) { if (!endOffset) {
......
...@@ -115,5 +115,8 @@ Minder.Selection = kity.createClass( 'Selection', { ...@@ -115,5 +115,8 @@ Minder.Selection = kity.createClass( 'Selection', {
}, },
isHide:function(){ isHide:function(){
return !this._show; return !this._show;
},
clearBaseOffset:function(){
this.baseOffset = this.currentEndOffset = null;
} }
} ); } );
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment