parent
3d30e6ddc4
commit
0ab32bfe17
3 changed files with 38 additions and 4 deletions
|
@ -221,7 +221,7 @@ NativeWindowViews::NativeWindowViews(content::WebContents* web_contents,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Add web view.
|
// Add web view.
|
||||||
SetLayoutManager(new MenuLayout(kMenuBarHeight));
|
SetLayoutManager(new MenuLayout(this, kMenuBarHeight));
|
||||||
set_background(views::Background::CreateStandardPanelBackground());
|
set_background(views::Background::CreateStandardPanelBackground());
|
||||||
AddChildView(web_view_);
|
AddChildView(web_view_);
|
||||||
|
|
||||||
|
|
|
@ -4,16 +4,47 @@
|
||||||
|
|
||||||
#include "atom/browser/ui/views/menu_layout.h"
|
#include "atom/browser/ui/views/menu_layout.h"
|
||||||
|
|
||||||
|
#if defined(OS_WIN)
|
||||||
|
#include "atom/browser/native_window_views.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
MenuLayout::MenuLayout(int menu_height)
|
namespace {
|
||||||
: menu_height_(menu_height) {
|
|
||||||
|
#if defined(OS_WIN)
|
||||||
|
gfx::Rect SubstractBorderSize(gfx::Rect bounds) {
|
||||||
|
int border_width = GetSystemMetrics(SM_CXSIZEFRAME) - 1;
|
||||||
|
int border_height = GetSystemMetrics(SM_CYSIZEFRAME) - 1;
|
||||||
|
bounds.set_x(bounds.x() + border_width);
|
||||||
|
bounds.set_y(bounds.y() + border_height);
|
||||||
|
bounds.set_width(bounds.width() - 2 * border_width);
|
||||||
|
bounds.set_height(bounds.height() - 2 * border_height);
|
||||||
|
return bounds;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
MenuLayout::MenuLayout(NativeWindowViews* window, int menu_height)
|
||||||
|
: window_(window),
|
||||||
|
menu_height_(menu_height) {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuLayout::~MenuLayout() {
|
MenuLayout::~MenuLayout() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MenuLayout::Layout(views::View* host) {
|
void MenuLayout::Layout(views::View* host) {
|
||||||
|
#if defined(OS_WIN)
|
||||||
|
// Reserve border space for maximized frameless window so we won't have the
|
||||||
|
// content go outside of screen.
|
||||||
|
if (!window_->has_frame() && window_->IsMaximized()) {
|
||||||
|
gfx::Rect bounds = SubstractBorderSize(host->GetContentsBounds());
|
||||||
|
host->child_at(0)->SetBoundsRect(bounds);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!HasMenu(host)) {
|
if (!HasMenu(host)) {
|
||||||
views::FillLayout::Layout(host);
|
views::FillLayout::Layout(host);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -9,9 +9,11 @@
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
|
class NativeWindowViews;
|
||||||
|
|
||||||
class MenuLayout : public views::FillLayout {
|
class MenuLayout : public views::FillLayout {
|
||||||
public:
|
public:
|
||||||
explicit MenuLayout(int menu_height);
|
MenuLayout(NativeWindowViews* window, int menu_height);
|
||||||
virtual ~MenuLayout();
|
virtual ~MenuLayout();
|
||||||
|
|
||||||
// views::LayoutManager:
|
// views::LayoutManager:
|
||||||
|
@ -23,6 +25,7 @@ class MenuLayout : public views::FillLayout {
|
||||||
private:
|
private:
|
||||||
bool HasMenu(const views::View* host) const;
|
bool HasMenu(const views::View* host) const;
|
||||||
|
|
||||||
|
NativeWindowViews* window_;
|
||||||
int menu_height_;
|
int menu_height_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(MenuLayout);
|
DISALLOW_COPY_AND_ASSIGN(MenuLayout);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue