Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5859)

Unified Diff: chrome/browser/ui/views/frame/contents_container.cc

Issue 13684002: cros: Instant extended support for immersive fullscreen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: works now Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/frame/contents_container.cc
diff --git a/chrome/browser/ui/views/frame/contents_container.cc b/chrome/browser/ui/views/frame/contents_container.cc
index d1b45f603673ec87f8bfc27597b4954fea43099d..b170ff012ec92245d346f0cb8e5d92c5add0ffbe 100644
--- a/chrome/browser/ui/views/frame/contents_container.cc
+++ b/chrome/browser/ui/views/frame/contents_container.cc
@@ -84,6 +84,7 @@ ContentsContainer::ContentsContainer(views::WebView* active)
overlay_web_contents_(NULL),
draw_drop_shadow_(false),
active_top_margin_(0),
+ overlay_top_margin_(0),
overlay_height_(100),
overlay_height_units_(INSTANT_SIZE_PERCENT) {
AddChildView(active_);
@@ -211,6 +212,7 @@ void ContentsContainer::MaybeStackOverlayAtTop() {
RemoveChildView(shadow_view_.get());
removed_shadow = true;
}
+ // TODO(jamescook): This can be done more efficiently with ReorderChildView().
kuan 2013/04/15 18:49:36 i think not. when porting 1993 to windows, mad@ h
James Cook 2013/04/16 18:51:01 OK. Removed TODO.
RemoveChildView(overlay_);
AddChildView(overlay_);
if (removed_shadow) // Add back shadow view if it was removed.
@@ -228,6 +230,15 @@ void ContentsContainer::SetActiveTopMargin(int margin) {
InvalidateLayout();
}
+void ContentsContainer::SetOverlayTopMargin(int margin) {
+ if (overlay_top_margin_ == margin)
+ return;
+ overlay_top_margin_ = margin;
+ // Make sure we layout next time around. We need this in case our bounds
+ // haven't changed.
+ InvalidateLayout();
+}
+
gfx::Rect ContentsContainer::GetOverlayBounds() const {
gfx::Point screen_loc;
ConvertPointToScreen(this, &screen_loc);
@@ -254,13 +265,13 @@ void ContentsContainer::Layout() {
active_->SetBounds(0, content_y, width(), content_height);
if (overlay_) {
- overlay_->SetBounds(0, 0, width(),
- OverlayHeightInPixels(height(), overlay_height_,
- overlay_height_units_));
+ int overlay_height_pixels =
+ OverlayHeightInPixels(height(), overlay_height_, overlay_height_units_);
+ overlay_->SetBounds(0, overlay_top_margin_, width(), overlay_height_pixels);
kuan 2013/04/15 18:49:36 so u have problem making the height like content_h
James Cook 2013/04/16 18:51:01 I thought that clamping the overlay size was causi
if (draw_drop_shadow_) {
#if !defined(OS_WIN)
DCHECK(shadow_view_.get() && shadow_view_->parent());
- shadow_view_->SetBounds(0, overlay_->bounds().height(), width(),
+ shadow_view_->SetBounds(0, overlay_->bounds().bottom(), width(),
shadow_view_->GetPreferredSize().height());
#endif // !defined(OS_WIN)
}

Powered by Google App Engine
This is Rietveld 408576698