diff --git a/lib/browser/app.js b/lib/browser/app.js index 6b2021ed..9142a3f7 100644 --- a/lib/browser/app.js +++ b/lib/browser/app.js @@ -25,6 +25,8 @@ const _ = require('lodash'); const electron = require('electron'); const shell = electron.remote.require('shell'); const dialog = electron.remote.require('./src/dialog'); +const BrowserWindow = electron.remote.BrowserWindow; +const currentWindow = BrowserWindow.fromId(1); require('angular-ui-bootstrap'); require('./browser/modules/track'); @@ -139,9 +141,20 @@ app.controller('AppController', function($q, $log, DriveScannerService, Selectio return self.writer.burn(image, drive, function(state) { self.state = state; $log.debug(`Progress: ${self.state.progress}% at ${self.state.speed} MB/s`); + + // Show progress inline in operating system task bar + currentWindow.setProgressBar(self.state.progress / 100); + }).then(function() { $log.debug('Done!'); - }).catch(dialog.showError); + }).catch(dialog.showError).finally(function() { + + // Remove progress bar from task bar + // Passing 0 or null/undefined doesn't do + // the trick for Electron for some reason. + currentWindow.setProgressBar(-1); + + }); }; this.open = shell.openExternal;