From 50fdbf2ef7d0139d59392a427a8e87514aca5635 Mon Sep 17 00:00:00 2001 From: Jeff Haynie Date: Mon, 4 Jul 2016 17:48:38 -0700 Subject: [PATCH] add standard behavior when you double click window (#32) * add standard behavior when you double click window title to maximize/unmaximize the window * reset on unmount and added comments about click vs. double click --- app/hyperterm.js | 17 +++++++++++++++++ index.js | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/app/hyperterm.js b/app/hyperterm.js index c3ea5241..ad0815f1 100644 --- a/app/hyperterm.js +++ b/app/hyperterm.js @@ -398,6 +398,22 @@ export default class HyperTerm extends Component { onHeaderMouseDown () { this.headerMouseDownWindowX = window.screenX; this.headerMouseDownWindowY = window.screenY; + + this.clicks = this.clicks || 1; + + if (this.clicks++ >= 2) { + if (this.maximized) { + this.rpc.emit('unmaximize'); + } else { + this.rpc.emit('maximize'); + } + this.clicks = 0; + this.maximized = !this.maximized; + } else { + // http://www.quirksmode.org/dom/events/click.html + // https://en.wikipedia.org/wiki/Double-click + this.clickTimer = setTimeout(() => this.clicks = 0, 500); + } } componentWillUnmount () { @@ -406,6 +422,7 @@ export default class HyperTerm extends Component { if (this.keys) { this.keys.reset(); } + delete this.clicks; this.updateChecker.destroy(); } } diff --git a/index.js b/index.js index 3b99a487..8835cbc5 100644 --- a/index.js +++ b/index.js @@ -85,6 +85,14 @@ app.on('ready', () => { sessions.get(uid).exit(); }); + rpc.on('unmaximize', () => { + win.unmaximize(); + }); + + rpc.on('maximize', () => { + win.maximize(); + }); + rpc.on('resize', ({ cols, rows }) => { sessions.forEach((session) => { session.resize({ cols, rows });