diff --git a/draw.js b/draw.js
index e44414c..1723807 100644
--- a/draw.js
+++ b/draw.js
@@ -701,6 +701,7 @@ var DrawingArea = new Lang.Class({
this.emit('show-osd', 'document-save-symbolic', name, -1);
if (name != DEFAULT_FILE_NAME)
this.jsonName = name;
+ this.lastJsonContents = contents;
}
},
@@ -733,6 +734,7 @@ var DrawingArea = new Lang.Class({
this.emit('show-osd', 'document-open-symbolic', name, -1);
if (name != DEFAULT_FILE_NAME)
this.jsonName = name;
+ this.lastJsonContents = contents;
},
_loadPersistent: function() {
@@ -767,6 +769,11 @@ var DrawingArea = new Lang.Class({
this.loadJson(previousName, true);
},
+ get drawingContentsHasChanged() {
+ let contents = `[\n ` + new Array(...this.elements.map(element => JSON.stringify(element))).join(`,\n\n `) + `\n]`;
+ return contents != this.lastJsonContents;
+ },
+
disable: function() {
this.erase();
this.menu.disable();
@@ -1387,7 +1394,8 @@ var DrawingMenu = new Lang.Class({
_updateDrawingNameMenuItem: function() {
getActor(this.drawingNameMenuItem).visible = this.area.jsonName ? true : false;
if (this.area.jsonName) {
- this.drawingNameMenuItem.label.set_text(`${this.area.jsonName}`);
+ let prefix = this.area.drawingContentsHasChanged ? "* " : "";
+ this.drawingNameMenuItem.label.set_text(`${prefix}${this.area.jsonName}`);
this.drawingNameMenuItem.label.get_clutter_text().set_use_markup(true);
}
},