Hi, Beka and
Maribeth~~
Thank you for your kind assistance. I made it, but it needs to modify Blockly.WorkspaceSvg.getGesture function for avoiding interruption. I wiil continue to research this issue. Sorry for my bad English.
Share my code.
Step 1: ContinuousFlyout.jsclass ContinuousFlyout extends Blockly.VerticalFlyout {
this.autoClose =
true;
}
Step 2: ContinuousMetrics.js
getViewMetrics(getWorkspaceCoordinates = undefined) {
if (toolboxPosition == Blockly.TOOLBOX_AT_TOP || toolboxPosition == Blockly.TOOLBOX_AT_BOTTOM) {
} else if (toolboxPosition == Blockly.TOOLBOX_AT_LEFT || toolboxPosition == Blockly.TOOLBOX_AT_RIGHT) {
svgMetrics.width -= toolboxMetrics.width;
}
}
getAbsoluteMetrics() {
if (this.workspace_.getToolbox() && toolboxPosition == Blockly.TOOLBOX_AT_LEFT) {
absoluteLeft = toolboxMetrics.width;
}
}
Step 3:
function start() {
var workspace = Blockly.inject('blocklyDiv',
{
media: media,
//renderer: 'zelos',
toolbox: toolboxXmlString,
zoom:{
controls: true,
wheel: false,
startScale: 1.0,
maxScale: 3,
minScale: 0.3,
scaleSpeed: 1.2
},
move: {
scrollbars: {
horizontal: true,
vertical: true
},
drag: true,
wheel: true
},
trashcan: true,
plugins: {
'toolbox': ContinuousToolbox,
'flyoutsVerticalToolbox': ContinuousFlyout,
'metricsManager': ContinuousMetrics,
}
});
var continuousFlyout = Blockly.getMainWorkspace().toolbox_.flyout_;
continuousFlyout.setVisible(false);
var blocklyWorkspace = document.getElementsByClassName("blocklyFlyout");
for (var f=0;f<blocklyWorkspace.length;f++) {
blocklyWorkspace[f].addEventListener('dblclick', function(){
continuousFlyout.setVisible(false);
Blockly.hideChaff();
});
}
function onWorkspaceChanged(event) {
if ((event.type=="create"||event.type=="click"||event.type=="delete")&&continuousFlyout.isVisible_==true) {
continuousFlyout.setVisible(false);
}
else if (event.type=="toolbox_item_select"&&continuousFlyout.isVisible_==false) {
continuousFlyout.setVisible(true);
}
else if (event.type=="toolbox_item_select"&&(!event.newItem)&&continuousFlyout.isVisible_==true) {
continuousFlyout.setVisible(false);
}
}
workspace.addChangeListener(onWorkspaceChanged);
}
Best wishes
Fu6...