| Index: remoting/webapp/window_frame.js
|
| diff --git a/remoting/webapp/window_frame.js b/remoting/webapp/window_frame.js
|
| index 6aa32b03e193309aa73136f8378132182db93cbe..3ebae903ba1c29e78677bc58e50bac99c3991d65 100644
|
| --- a/remoting/webapp/window_frame.js
|
| +++ b/remoting/webapp/window_frame.js
|
| @@ -30,14 +30,6 @@ remoting.WindowFrame = function(titleBar) {
|
| this.titleBar_ = titleBar;
|
|
|
| /**
|
| - * @type {HTMLElement}
|
| - * @private
|
| - */
|
| - this.hoverTarget_ = /** @type {HTMLElement} */
|
| - (titleBar.querySelector('.window-controls-hover-target'));
|
| - base.debug.assert(this.hoverTarget_ != null);
|
| -
|
| - /**
|
| * @type {remoting.OptionsMenu}
|
| * @private
|
| */
|
| @@ -73,6 +65,14 @@ remoting.WindowFrame = function(titleBar) {
|
| this.onHideOptionsMenu_.bind(this));
|
|
|
| /**
|
| + * @type {HTMLElement}
|
| + * @private
|
| + */
|
| + this.optionsMenuList_ = /** @type {HTMLElement} */
|
| + (optionsButton.querySelector('.window-options-menu'));
|
| + base.debug.assert(this.optionsMenu_ != null);
|
| +
|
| + /**
|
| * @type {Array.<{cls:string, fn: function()}>}
|
| */
|
| var handlers = [
|
| @@ -90,13 +90,13 @@ remoting.WindowFrame = function(titleBar) {
|
| }
|
|
|
| // Ensure that tool-tips are always correct.
|
| - this.updateMaximizeOrRestoreIconTitle_();
|
| + this.handleWindowStateChange_();
|
| chrome.app.window.current().onMaximized.addListener(
|
| - this.updateMaximizeOrRestoreIconTitle_.bind(this));
|
| + this.handleWindowStateChange_.bind(this));
|
| chrome.app.window.current().onRestored.addListener(
|
| - this.updateMaximizeOrRestoreIconTitle_.bind(this));
|
| + this.handleWindowStateChange_.bind(this));
|
| chrome.app.window.current().onFullscreened.addListener(
|
| - this.updateMaximizeOrRestoreIconTitle_.bind(this));
|
| + this.handleWindowStateChange_.bind(this));
|
| chrome.app.window.current().onFullscreened.addListener(
|
| this.showWindowControlsPreview_.bind(this));
|
| };
|
| @@ -120,7 +120,7 @@ remoting.WindowFrame.prototype.setClientSession = function(clientSession) {
|
| windowTitle.innerText =
|
| chrome.i18n.getMessage(/*i18n-content*/'PRODUCT_NAME');
|
| }
|
| - this.updateMaximizeOrRestoreIconTitle_();
|
| + this.handleWindowStateChange_();
|
| };
|
|
|
| /**
|
| @@ -186,7 +186,7 @@ remoting.WindowFrame.prototype.minimizeWindow_ = function() {
|
| * @private
|
| */
|
| remoting.WindowFrame.prototype.toggleWindowControls_ = function() {
|
| - this.hoverTarget_.classList.toggle('opened');
|
| + this.titleBar_.classList.toggle('opened');
|
| };
|
|
|
| /**
|
| @@ -195,7 +195,8 @@ remoting.WindowFrame.prototype.toggleWindowControls_ = function() {
|
| *
|
| * @private
|
| */
|
| -remoting.WindowFrame.prototype.updateMaximizeOrRestoreIconTitle_ = function() {
|
| +remoting.WindowFrame.prototype.handleWindowStateChange_ = function() {
|
| + // Set the title for the maximize/restore/full-screen button
|
| /** @type {string} */
|
| var tag = '';
|
| if (chrome.app.window.current().isFullscreen()) {
|
| @@ -208,6 +209,14 @@ remoting.WindowFrame.prototype.updateMaximizeOrRestoreIconTitle_ = function() {
|
| tag = /*i18n-content*/'MAXIMIZE_WINDOW';
|
| }
|
| this.maximizeRestoreControl_.title = l10n.getTranslationOrError(tag);
|
| +
|
| + // Ensure that the options menu aligns correctly for the side of the window
|
| + // it occupies.
|
| + if (chrome.app.window.current().isFullscreen()) {
|
| + this.optionsMenuList_.classList.add('right-align');
|
| + } else {
|
| + this.optionsMenuList_.classList.remove('right-align');
|
| + }
|
| };
|
|
|
| /**
|
| @@ -216,7 +225,7 @@ remoting.WindowFrame.prototype.updateMaximizeOrRestoreIconTitle_ = function() {
|
| */
|
| remoting.WindowFrame.prototype.onShowOptionsMenu_ = function() {
|
| this.optionsMenu_.onShow();
|
| - this.hoverTarget_.classList.add('menu-opened');
|
| + this.titleBar_.classList.add('menu-opened');
|
| };
|
|
|
| /**
|
| @@ -224,7 +233,7 @@ remoting.WindowFrame.prototype.onShowOptionsMenu_ = function() {
|
| * @private
|
| */
|
| remoting.WindowFrame.prototype.onHideOptionsMenu_ = function() {
|
| - this.hoverTarget_.classList.remove('menu-opened');
|
| + this.titleBar_.classList.remove('menu-opened');
|
| };
|
|
|
| /**
|
| @@ -236,7 +245,7 @@ remoting.WindowFrame.prototype.showWindowControlsPreview_ = function() {
|
| /**
|
| * @type {HTMLElement}
|
| */
|
| - var target = this.hoverTarget_;
|
| + var target = this.titleBar_;
|
| var kPreviewTimeoutMs = 3000;
|
| var hidePreview = function() {
|
| target.classList.remove('preview');
|
|
|