diff --git a/HISTORY.md b/HISTORY.md
index 486d1541..e7949047 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -35,6 +35,7 @@
* made scrollbars thinner by default and slightly transparent in flat design mode
* blocked xhr requests to from Snap! to s.b.e
* the "message" reporter and watcher in the control category has been deprecated and moved to dev mode for backwards compatibility
+ * removed old hidden "prefer smooth animations" setting (no longer used, old projects will continue to work just fine)
* **Notable Fixes:**
* made scrollbars in the wardrobe and jukebox more responsive
* fixed centering of menus, thanks, Brian Broll!
@@ -59,6 +60,7 @@
### 2021-11-15
* German translation update
* gui: made "Hyper blocks support" setting hidden in the gears menu
+* gui, objects, threads, store, translations: Removed old hidden "prefer smooth animations" setting
### 2021-11-14
* locale: contextualize translations
diff --git a/locale/lang-de.js b/locale/lang-de.js
index 7f81c724..1fc6cc99 100644
--- a/locale/lang-de.js
+++ b/locale/lang-de.js
@@ -1153,12 +1153,6 @@ SnapTranslator.dict.de = {
'verhindert, dass unvollendete\nSkripte erneut gestartet werden',
'check to disallow\nscript reentrance':
'verhindert, dass unvollendete\nSkripte erneut gestartet werden',
- 'Prefer smooth animations':
- 'Fixe Framerate',
- 'uncheck for greater speed\nat variable frame rates':
- 'ausschalten, um Animationen \ndynamischer auszuf\u00fchren',
- 'check for smooth, predictable\nanimations across computers':
- 'einschalten, damit Animationen\n\u00fcberall gleich laufen',
'Flat line ends':
'Flache Pinselstriche',
'check for flat ends of lines':
diff --git a/src/gui.js b/src/gui.js
index 47e0901c..b92d3a41 100644
--- a/src/gui.js
+++ b/src/gui.js
@@ -2725,16 +2725,6 @@ IDE_Morph.prototype.toggleFastTracking = function () {
}
};
-IDE_Morph.prototype.toggleVariableFrameRate = function () {
- if (StageMorph.prototype.frameRate) {
- StageMorph.prototype.frameRate = 0;
- this.stage.fps = 0;
- } else {
- StageMorph.prototype.frameRate = 30;
- this.stage.fps = 30;
- }
-};
-
IDE_Morph.prototype.toggleSingleStepping = function () {
this.stage.threads.toggleSingleStepping();
this.controlBar.steppingButton.refresh();
@@ -2751,7 +2741,6 @@ IDE_Morph.prototype.toggleCameraSupport = function () {
IDE_Morph.prototype.startFastTracking = function () {
this.stage.isFastTracked = true;
- this.stage.fps = 0;
this.controlBar.startButton.labelString = new SymbolMorph('flash', 14);
this.controlBar.startButton.createLabel();
this.controlBar.startButton.fixLayout();
@@ -2760,7 +2749,6 @@ IDE_Morph.prototype.startFastTracking = function () {
IDE_Morph.prototype.stopFastTracking = function () {
this.stage.isFastTracked = false;
- this.stage.fps = this.stage.frameRate;
this.controlBar.startButton.labelString = new SymbolMorph('flag', 14);
this.controlBar.startButton.createLabel();
this.controlBar.startButton.fixLayout();
@@ -4146,14 +4134,6 @@ IDE_Morph.prototype.settingsMenu = function () {
'uncheck to allow\nscript reentrance',
'check to disallow\nscript reentrance'
);
- addPreference(
- 'Prefer smooth animations',
- 'toggleVariableFrameRate',
- StageMorph.prototype.frameRate,
- 'uncheck for greater speed\nat variable frame rates',
- 'check for smooth, predictable\nanimations across computers',
- true
- );
addPreference(
'Flat line ends',
() => SpriteMorph.prototype.useFlatLineEnds =
diff --git a/src/objects.js b/src/objects.js
index 10add14a..54085d8d 100644
--- a/src/objects.js
+++ b/src/objects.js
@@ -87,7 +87,7 @@ BlockVisibilityDialogMorph*/
/*jshint esversion: 6*/
-modules.objects = '2021-November-12';
+modules.objects = '2021-November-15';
var SpriteMorph;
var StageMorph;
@@ -7708,7 +7708,6 @@ StageMorph.uber = FrameMorph.prototype;
// StageMorph preferences settings
StageMorph.prototype.dimensions = new Point(480, 360); // fallback unscaled ext
-StageMorph.prototype.frameRate = 0; // unscheduled per default
StageMorph.prototype.isCachingPrimitives
= SpriteMorph.prototype.isCachingPrimitives;
@@ -7827,7 +7826,6 @@ StageMorph.prototype.init = function (globals) {
]();
this.acceptsDrops = false;
this.setColor(new Color(255, 255, 255));
- this.fps = this.frameRate;
};
// StageMorph scaling
diff --git a/src/store.js b/src/store.js
index dbe2365c..b4073952 100644
--- a/src/store.js
+++ b/src/store.js
@@ -63,7 +63,7 @@ Project*/
// Global stuff ////////////////////////////////////////////////////////
-modules.store = '2021-November-12';
+modules.store = '2021-November-15';
// XML_Serializer ///////////////////////////////////////////////////////
/*
@@ -397,7 +397,6 @@ SnapSerializer.prototype.loadScene = function (xmlNode, remixID) {
/* Stage */
model.stage = model.scene.require('stage');
- StageMorph.prototype.frameRate = 0;
scene.stage.remixID = remixID;
if (Object.prototype.hasOwnProperty.call(
@@ -415,10 +414,6 @@ SnapSerializer.prototype.loadScene = function (xmlNode, remixID) {
SpriteMorph.prototype.penColorModel
]();
}
- if (model.stage.attributes.scheduled === 'true') {
- scene.stage.fps = 30;
- StageMorph.prototype.frameRate = 30;
- }
if (model.stage.attributes.volume) {
scene.stage.volume = +model.stage.attributes.volume;
}
@@ -1788,7 +1783,6 @@ StageMorph.prototype.toXML = function (serializer) {
'codify="@" ' +
'inheritance="@" ' +
'sublistIDs="@" ' +
- 'scheduled="@" ~>' +
'$' +
'%' + // current costume, if it's not in the wardrobe
'%' +
@@ -1818,7 +1812,6 @@ StageMorph.prototype.toXML = function (serializer) {
this.enableCodeMapping,
this.enableInheritance,
this.enableSublistIDs,
- StageMorph.prototype.frameRate !== 0,
normalizeCanvas(this.trailsCanvas, true).toDataURL('image/png'),
// current costume, if it's not in the wardrobe
diff --git a/src/threads.js b/src/threads.js
index bf3d9d2a..9c9158a3 100644
--- a/src/threads.js
+++ b/src/threads.js
@@ -64,7 +64,7 @@ SnapExtensions, AlignmentMorph, TextMorph, Cloud, HatBlockMorph*/
/*jshint esversion: 6*/
-modules.threads = '2021-November-11';
+modules.threads = '2021-November-15';
var ThreadManager;
var Process;
@@ -2473,9 +2473,6 @@ Process.prototype.doWarp = function (body) {
this.homeContext.receiver.startWarp();
}
stage = this.homeContext.receiver.parentThatIsA(StageMorph);
- if (stage) {
- stage.fps = 0; // variable frame rate
- }
}
// this.pushContext('doYield'); // no longer needed in Morphic2
@@ -2503,9 +2500,6 @@ Process.prototype.doStopWarping = function () {
this.homeContext.receiver.endWarp();
}
stage = this.homeContext.receiver.parentThatIsA(StageMorph);
- if (stage) {
- stage.fps = stage.frameRate; // back to fixed frame rate
- }
}
};