在具有id的窗口上设置边界

时间:2015-01-31 10:37:21

标签: google-chrome-app

我的应用程序有一个设置窗口,我希望此窗口是唯一的,这样用户就无法同时显示两个设置窗口。问题是我还希望窗口与主窗口相比居中。我使用这段代码(在主窗口的JS中):

chrome.app.window.create("settings.html",
   {
        alwaysOnTop: true,
        bounds: {
            left: Math.round((window.screenX + (($(window).width() - 498) / 2))), // Perfect left position.
            top: Math.round((window.screenY + (($(window).height() - 664) / 2))), // Perfect top position.
            width: 498,
            height: 664
        },
        frame : "none",
        id: "settings",
        resizable: false
    }
);

问题是,如果指定id并且之前已显示匹配id的窗口,则会使用记住的bounds,但我更愿意设置边界我在每个创作时都有边界选项。因此,如果用户移动窗口并关闭窗口,那么位置仍将是完美的"在下一个创作。有这种行为的解决方案吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我担心你无法覆盖这一点。

您可以使用outerBounds.setPosition

在回调中立即重新定位窗口
chrome.app.window.create(
  "settings.html",
  {/*...*/},
  function(win) {
    win.outerBounds.setPosition(
      /*left, top*/
    );
  }
);

顺便说一下,我们已弃用bounds,您应该切换为使用innerBounds / outerBounds


或者,您可以尝试实施自己的ID系统。不要使用ID,并在创建之前检查您需要的窗口是否打开(以某种方式识别它)。