mirror of
https://github.com/scratchfoundation/scratch-paint.git
synced 2024-12-23 05:52:42 -05:00
Fix some bugs
This commit is contained in:
parent
240282f9d2
commit
f9aabe1beb
3 changed files with 31 additions and 27 deletions
|
@ -263,15 +263,17 @@ const mapStateToProps = state => ({
|
||||||
});
|
});
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
onKeyPress: event => {
|
onKeyPress: event => {
|
||||||
// if (event.key === 'e') {
|
// TODO if text tool not in text edit mode
|
||||||
// dispatch(changeMode(Modes.ERASER));
|
// TODO unfocus other text input fields
|
||||||
// } else if (event.key === 'b') {
|
if (event.key === 'e') {
|
||||||
// dispatch(changeMode(Modes.BRUSH));
|
dispatch(changeMode(Modes.ERASER));
|
||||||
// } else if (event.key === 'l') {
|
} else if (event.key === 'b') {
|
||||||
// dispatch(changeMode(Modes.LINE));
|
dispatch(changeMode(Modes.BRUSH));
|
||||||
// } else if (event.key === 's') {
|
} else if (event.key === 'l') {
|
||||||
// dispatch(changeMode(Modes.SELECT));
|
dispatch(changeMode(Modes.LINE));
|
||||||
// }
|
} else if (event.key === 's') {
|
||||||
|
dispatch(changeMode(Modes.SELECT));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
clearSelectedItems: () => {
|
clearSelectedItems: () => {
|
||||||
dispatch(clearSelectedItems());
|
dispatch(clearSelectedItems());
|
||||||
|
|
|
@ -30,8 +30,12 @@ const hoverItem = function (item) {
|
||||||
return clone;
|
return clone;
|
||||||
};
|
};
|
||||||
|
|
||||||
const hoverBounds = function (item) {
|
const hoverBounds = function (item, expandBy) {
|
||||||
const rect = new paper.Path.Rectangle(item.internalBounds);
|
let bounds = item.internalBounds;
|
||||||
|
if (expandBy) {
|
||||||
|
bounds = bounds.expand(expandBy);
|
||||||
|
}
|
||||||
|
const rect = new paper.Path.Rectangle(bounds);
|
||||||
rect.matrix = item.matrix;
|
rect.matrix = item.matrix;
|
||||||
setDefaultGuideStyle(rect);
|
setDefaultGuideStyle(rect);
|
||||||
rect.parent = getGuideLayer();
|
rect.parent = getGuideLayer();
|
||||||
|
|
|
@ -5,7 +5,6 @@ import {clearSelection} from '../selection';
|
||||||
import BoundingBoxTool from '../selection-tools/bounding-box-tool';
|
import BoundingBoxTool from '../selection-tools/bounding-box-tool';
|
||||||
import NudgeTool from '../selection-tools/nudge-tool';
|
import NudgeTool from '../selection-tools/nudge-tool';
|
||||||
import {hoverBounds} from '../guides';
|
import {hoverBounds} from '../guides';
|
||||||
import {expandBy} from '../math';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tool for adding text. Text elements have limited editability; they can't be reshaped,
|
* Tool for adding text. Text elements have limited editability; they can't be reshaped,
|
||||||
|
@ -130,7 +129,8 @@ class TextTool extends paper.Tool {
|
||||||
clearSelection(this.clearSelectedItems);
|
clearSelection(this.clearSelectedItems);
|
||||||
this.textBox = doubleClickHitTest.item;
|
this.textBox = doubleClickHitTest.item;
|
||||||
this.mode = TextTool.TEXT_EDIT_MODE;
|
this.mode = TextTool.TEXT_EDIT_MODE;
|
||||||
} else if (this.boundingBoxTool.onMouseDown(
|
} else if (
|
||||||
|
this.boundingBoxTool.onMouseDown(
|
||||||
event, false /* clone */, false /* multiselect */, this.getBoundingBoxHitOptions())) {
|
event, false /* clone */, false /* multiselect */, this.getBoundingBoxHitOptions())) {
|
||||||
// In select mode staying in select mode
|
// In select mode staying in select mode
|
||||||
this.mode = TextTool.SELECT_MODE;
|
this.mode = TextTool.SELECT_MODE;
|
||||||
|
@ -147,16 +147,20 @@ class TextTool extends paper.Tool {
|
||||||
this.mode = TextTool.TEXT_EDIT_MODE;
|
this.mode = TextTool.TEXT_EDIT_MODE;
|
||||||
} else if (this.mode === TextTool.TEXT_EDIT_MODE) {
|
} else if (this.mode === TextTool.TEXT_EDIT_MODE) {
|
||||||
// In text mode clicking away to begin select mode
|
// In text mode clicking away to begin select mode
|
||||||
|
if (this.textBox) {
|
||||||
this.mode = TextTool.SELECT_MODE;
|
this.mode = TextTool.SELECT_MODE;
|
||||||
this.textBox.selected = true;
|
this.textBox.selected = true;
|
||||||
this.setSelectedItems();
|
this.setSelectedItems();
|
||||||
|
} else {
|
||||||
|
this.mode = null;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// In no mode or select mode clicking away to begin text edit mode
|
// In no mode or select mode clicking away to begin text edit mode
|
||||||
this.mode = TextTool.TEXT_EDIT_MODE;
|
this.mode = TextTool.TEXT_EDIT_MODE;
|
||||||
clearSelection(this.clearSelectedItems);
|
clearSelection(this.clearSelectedItems);
|
||||||
this.textBox = new paper.PointText({
|
this.textBox = new paper.PointText({
|
||||||
point: event.point,
|
point: event.point,
|
||||||
content: 'لوحة المفاتKeyboardيح العربية',
|
content: '',
|
||||||
font: 'Times',
|
font: 'Times',
|
||||||
fontSize: 30
|
fontSize: 30
|
||||||
});
|
});
|
||||||
|
@ -165,8 +169,7 @@ class TextTool extends paper.Tool {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.mode === TextTool.TEXT_EDIT_MODE) {
|
if (this.mode === TextTool.TEXT_EDIT_MODE) {
|
||||||
this.guide = hoverBounds(this.textBox);
|
this.guide = hoverBounds(this.textBox, TextTool.TEXT_PADDING);
|
||||||
expandBy(this.guide, TextTool.TEXT_PADDING);
|
|
||||||
this.guide.dashArray = [4, 4];
|
this.guide.dashArray = [4, 4];
|
||||||
} else if (this.guide) {
|
} else if (this.guide) {
|
||||||
this.guide.remove();
|
this.guide.remove();
|
||||||
|
@ -180,9 +183,6 @@ class TextTool extends paper.Tool {
|
||||||
this.boundingBoxTool.onMouseDrag(event);
|
this.boundingBoxTool.onMouseDrag(event);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO selection
|
|
||||||
|
|
||||||
}
|
}
|
||||||
handleMouseUp (event) {
|
handleMouseUp (event) {
|
||||||
if (event.event.button > 0 || !this.active) return; // only first mouse button
|
if (event.event.button > 0 || !this.active) return; // only first mouse button
|
||||||
|
@ -193,7 +193,6 @@ class TextTool extends paper.Tool {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
|
||||||
this.active = false;
|
this.active = false;
|
||||||
}
|
}
|
||||||
handleKeyUp (event) {
|
handleKeyUp (event) {
|
||||||
|
@ -210,11 +209,10 @@ class TextTool extends paper.Tool {
|
||||||
} else if (!(event.modifiers.alt || event.modifiers.comand || event.modifiers.control ||
|
} else if (!(event.modifiers.alt || event.modifiers.comand || event.modifiers.control ||
|
||||||
event.modifiers.meta || event.modifiers.option)) {
|
event.modifiers.meta || event.modifiers.option)) {
|
||||||
this.textBox.content = this.textBox.content + event.character;
|
this.textBox.content = this.textBox.content + event.character;
|
||||||
if (this.guide) this.guide.remove();
|
|
||||||
this.guide = hoverBounds(this.textBox);
|
|
||||||
expandBy(this.guide, TextTool.TEXT_PADDING);
|
|
||||||
this.guide.dashArray = [4, 4];
|
|
||||||
}
|
}
|
||||||
|
if (this.guide) this.guide.remove();
|
||||||
|
this.guide = hoverBounds(this.textBox, TextTool.TEXT_PADDING);
|
||||||
|
this.guide.dashArray = [4, 4];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
deactivateTool () {
|
deactivateTool () {
|
||||||
|
|
Loading…
Reference in a new issue