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); } },