support dragging blocks out from result bubbles

snap7
Jens Mönig 2022-01-22 00:21:09 +01:00
rodzic 3f972a04bf
commit 94007283fd
3 zmienionych plików z 26 dodań i 2 usunięć

Wyświetl plik

@ -3,12 +3,16 @@
## in development:
* **New Features:**
* support dragging blocks out from result bubbles
* **Notable Changes:**
* **Notable Fixes:**
* fixed layout for scrolling custom categories, thanks, Eckart, for the bug report!
* **Documentation Updates:**
* **Translation Updates:**
### 2022-01-22
* blocks: support dragging blocks out from result bubbles
### 2022-01-21
* new dev version
* gui: fixed layout for scrolling custom categories, thanks, Eckart, for the bug report!

Wyświetl plik

@ -16,7 +16,7 @@
<script src="src/morphic.js?version=2021-12-10"></script>
<script src="src/symbols.js?version=2021-03-03"></script>
<script src="src/widgets.js?version=2021-17-09"></script>
<script src="src/blocks.js?version=2022-01-07"></script>
<script src="src/blocks.js?version=2022-01-22"></script>
<script src="src/threads.js?version=2022-01-21"></script>
<script src="src/objects.js?version=2022-01-20"></script>
<script src="src/scenes.js?version=2021-11-24"></script>

Wyświetl plik

@ -160,7 +160,7 @@ CustomCommandBlockMorph, ToggleButtonMorph, DialMorph, SnapExtensions*/
// Global stuff ////////////////////////////////////////////////////////
modules.blocks = '2022-January-07';
modules.blocks = '2022-January-22';
var SyntaxElementMorph;
var BlockMorph;
@ -2259,6 +2259,26 @@ SyntaxElementMorph.prototype.showBubble = function (value, exportPic, target) {
morphToShow.bounds.setWidth(img.width);
morphToShow.bounds.setHeight(img.height);
morphToShow.cachedImage = img;
// support blocks to be dragged out of result bubbles:
morphToShow.isDraggable = true;
morphToShow.selectForEdit = function () {
var script = value.toBlock(),
prepare = script.prepareToBeGrabbed;
script.prepareToBeGrabbed = function (hand) {
prepare.call(this, hand);
hand.grabOrigin = {
origin: ide.palette,
position: ide.palette.center()
};
this.prepareToBeGrabbed = prepare;
};
script.setPosition(this.position());
return script;
};
} else if (typeof value === 'boolean') {
morphToShow = SpriteMorph.prototype.booleanMorph.call(
null,