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

Side by Side Diff: chrome/browser/ui/views/frame/browser_view.cc

Issue 10636023: Update BrowserView::ProcessFullscreen OmniboxViewWin use; etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync and merge. Created 8 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/ui/views/location_bar/location_bar_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/browser_view.h" 5 #include "chrome/browser/ui/views/frame/browser_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" 50 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
51 #include "chrome/browser/ui/views/browser_dialogs.h" 51 #include "chrome/browser/ui/views/browser_dialogs.h"
52 #include "chrome/browser/ui/views/download/download_in_progress_dialog_view.h" 52 #include "chrome/browser/ui/views/download/download_in_progress_dialog_view.h"
53 #include "chrome/browser/ui/views/download/download_shelf_view.h" 53 #include "chrome/browser/ui/views/download/download_shelf_view.h"
54 #include "chrome/browser/ui/views/frame/browser_view_layout.h" 54 #include "chrome/browser/ui/views/frame/browser_view_layout.h"
55 #include "chrome/browser/ui/views/frame/contents_container.h" 55 #include "chrome/browser/ui/views/frame/contents_container.h"
56 #include "chrome/browser/ui/views/fullscreen_exit_bubble_views.h" 56 #include "chrome/browser/ui/views/fullscreen_exit_bubble_views.h"
57 #include "chrome/browser/ui/views/infobars/infobar_container_view.h" 57 #include "chrome/browser/ui/views/infobars/infobar_container_view.h"
58 #include "chrome/browser/ui/views/location_bar/location_bar_container.h" 58 #include "chrome/browser/ui/views/location_bar/location_bar_container.h"
59 #include "chrome/browser/ui/views/location_bar/location_icon_view.h" 59 #include "chrome/browser/ui/views/location_bar/location_icon_view.h"
60 #include "chrome/browser/ui/views/omnibox/omnibox_views.h"
60 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h" 61 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
61 #include "chrome/browser/ui/views/password_generation_bubble_view.h" 62 #include "chrome/browser/ui/views/password_generation_bubble_view.h"
62 #include "chrome/browser/ui/views/status_bubble_views.h" 63 #include "chrome/browser/ui/views/status_bubble_views.h"
63 #include "chrome/browser/ui/views/tabs/browser_tab_strip_controller.h" 64 #include "chrome/browser/ui/views/tabs/browser_tab_strip_controller.h"
64 #include "chrome/browser/ui/views/tabs/tab_strip.h" 65 #include "chrome/browser/ui/views/tabs/tab_strip.h"
65 #include "chrome/browser/ui/views/toolbar_view.h" 66 #include "chrome/browser/ui/views/toolbar_view.h"
66 #include "chrome/browser/ui/views/update_recommended_message_box.h" 67 #include "chrome/browser/ui/views/update_recommended_message_box.h"
67 #include "chrome/browser/ui/views/website_settings_popup_view.h" 68 #include "chrome/browser/ui/views/website_settings_popup_view.h"
68 #include "chrome/browser/ui/webui/feedback_ui.h" 69 #include "chrome/browser/ui/webui/feedback_ui.h"
69 #include "chrome/browser/ui/window_sizer.h" 70 #include "chrome/browser/ui/window_sizer.h"
(...skipping 2057 matching lines...) Expand 10 before | Expand all | Expand 10 after
2127 FullscreenType type, 2128 FullscreenType type,
2128 const GURL& url, 2129 const GURL& url,
2129 FullscreenExitBubbleType bubble_type) { 2130 FullscreenExitBubbleType bubble_type) {
2130 // Reduce jankiness during the following position changes by: 2131 // Reduce jankiness during the following position changes by:
2131 // * Hiding the window until it's in the final position 2132 // * Hiding the window until it's in the final position
2132 // * Ignoring all intervening Layout() calls, which resize the webpage and 2133 // * Ignoring all intervening Layout() calls, which resize the webpage and
2133 // thus are slow and look ugly 2134 // thus are slow and look ugly
2134 ignore_layout_ = true; 2135 ignore_layout_ = true;
2135 LocationBarView* location_bar = GetLocationBarView(); 2136 LocationBarView* location_bar = GetLocationBarView();
2136 #if defined(OS_WIN) && !defined(USE_AURA) 2137 #if defined(OS_WIN) && !defined(USE_AURA)
2137 OmniboxViewWin* omnibox_view = 2138 OmniboxViewWin* omnibox_win =
2138 static_cast<OmniboxViewWin*>(location_bar->GetLocationEntry()); 2139 GetOmniboxViewWin(location_bar->GetLocationEntry());
2139 #endif 2140 #endif
2140 2141
2141 if (type == FOR_METRO || !fullscreen) { 2142 if (type == FOR_METRO || !fullscreen) {
2142 // Hide the fullscreen bubble as soon as possible, since the mode toggle can 2143 // Hide the fullscreen bubble as soon as possible, since the mode toggle can
2143 // take enough time for the user to notice. 2144 // take enough time for the user to notice.
2144 fullscreen_bubble_.reset(); 2145 fullscreen_bubble_.reset();
2145 } 2146 }
2146 2147
2147 if (fullscreen) { 2148 if (fullscreen) {
2148 // Move focus out of the location bar if necessary. 2149 // Move focus out of the location bar if necessary.
2149 views::FocusManager* focus_manager = GetFocusManager(); 2150 views::FocusManager* focus_manager = GetFocusManager();
2150 DCHECK(focus_manager); 2151 DCHECK(focus_manager);
2151 // Look for focus in the location bar itself or any child view. 2152 // Look for focus in the location bar itself or any child view.
2152 if (location_bar->Contains(focus_manager->GetFocusedView())) 2153 if (location_bar->Contains(focus_manager->GetFocusedView()))
2153 focus_manager->ClearFocus(); 2154 focus_manager->ClearFocus();
2154 2155
2155 #if defined(OS_WIN) && !defined(USE_AURA) 2156 #if defined(OS_WIN) && !defined(USE_AURA)
2156 // If we don't hide the edit and force it to not show until we come out of 2157 if (omnibox_win) {
2157 // fullscreen, then if the user was on the New Tab Page, the edit contents 2158 // If we don't hide the edit and force it to not show until we come out of
2158 // will appear atop the web contents once we go into fullscreen mode. This 2159 // fullscreen, then if the user was on the New Tab Page, the edit contents
2159 // has something to do with how we move the main window while it's hidden; 2160 // will appear atop the web contents once we go into fullscreen mode. This
2160 // if we don't hide the main window below, we don't get this problem. 2161 // has something to do with how we move the main window while it's hidden;
2161 omnibox_view->set_force_hidden(true); 2162 // if we don't hide the main window below, we don't get this problem.
2162 ShowWindow(omnibox_view->m_hWnd, SW_HIDE); 2163 omnibox_win->set_force_hidden(true);
2164 ShowWindow(omnibox_win->m_hWnd, SW_HIDE);
2165 }
2163 #endif 2166 #endif
2164 } 2167 }
2165 #if defined(OS_WIN) && !defined(USE_AURA) 2168 #if defined(OS_WIN) && !defined(USE_AURA)
2166 static_cast<views::NativeWidgetWin*>(frame_->native_widget())-> 2169 static_cast<views::NativeWidgetWin*>(frame_->native_widget())->
2167 PushForceHidden(); 2170 PushForceHidden();
2168 #endif 2171 #endif
2169 2172
2170 if (type == FOR_METRO) { 2173 if (type == FOR_METRO) {
2171 #if defined(OS_WIN) && !defined(USE_AURA) 2174 #if defined(OS_WIN) && !defined(USE_AURA)
2172 // Enter metro snap mode. 2175 // Enter metro snap mode.
2173 static_cast<views::NativeWidgetWin*>( 2176 static_cast<views::NativeWidgetWin*>(
2174 frame_->native_widget())->SetMetroSnapFullscreen(fullscreen); 2177 frame_->native_widget())->SetMetroSnapFullscreen(fullscreen);
2175 #endif 2178 #endif
2176 } else { 2179 } else {
2177 // Toggle fullscreen mode. 2180 // Toggle fullscreen mode.
2178 frame_->SetFullscreen(fullscreen); 2181 frame_->SetFullscreen(fullscreen);
2179 } 2182 }
2180 2183
2181 browser_->WindowFullscreenStateChanged(); 2184 browser_->WindowFullscreenStateChanged();
2182 2185
2183 if (fullscreen) { 2186 if (fullscreen) {
2184 bool is_kiosk = 2187 bool is_kiosk =
2185 CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode); 2188 CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode);
2186 if (!is_kiosk && type != FOR_METRO) { 2189 if (!is_kiosk && type != FOR_METRO) {
2187 fullscreen_bubble_.reset(new FullscreenExitBubbleViews( 2190 fullscreen_bubble_.reset(new FullscreenExitBubbleViews(
2188 GetWidget(), browser_.get(), url, bubble_type)); 2191 GetWidget(), browser_.get(), url, bubble_type));
2189 } 2192 }
2190 } else { 2193 } else {
2191 #if defined(OS_WIN) && !defined(USE_AURA) 2194 #if defined(OS_WIN) && !defined(USE_AURA)
2192 // Show the edit again since we're no longer in fullscreen mode. 2195 if (omnibox_win) {
2193 omnibox_view->set_force_hidden(false); 2196 // Show the edit again since we're no longer in fullscreen mode.
2194 ShowWindow(omnibox_view->m_hWnd, SW_SHOW); 2197 omnibox_win->set_force_hidden(false);
2198 ShowWindow(omnibox_win->m_hWnd, SW_SHOW);
2199 }
2195 #endif 2200 #endif
2196 } 2201 }
2197 2202
2198 // Undo our anti-jankiness hacks and force the window to re-layout now that 2203 // Undo our anti-jankiness hacks and force the window to re-layout now that
2199 // it's in its final position. 2204 // it's in its final position.
2200 ignore_layout_ = false; 2205 ignore_layout_ = false;
2201 Layout(); 2206 Layout();
2202 #if defined(OS_WIN) && !defined(USE_AURA) 2207 #if defined(OS_WIN) && !defined(USE_AURA)
2203 static_cast<views::NativeWidgetWin*>(frame_->native_widget())-> 2208 static_cast<views::NativeWidgetWin*>(frame_->native_widget())->
2204 PopForceHidden(); 2209 PopForceHidden();
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
2507 bubble->Show(); 2512 bubble->Show();
2508 } 2513 }
2509 2514
2510 void BrowserView::RestackLocationBarContainer() { 2515 void BrowserView::RestackLocationBarContainer() {
2511 #if defined(USE_AURA) 2516 #if defined(USE_AURA)
2512 if (search_view_controller_.get()) 2517 if (search_view_controller_.get())
2513 search_view_controller_->StackAtTop(); 2518 search_view_controller_->StackAtTop();
2514 #endif 2519 #endif
2515 toolbar_->location_bar_container()->StackAtTop(); 2520 toolbar_->location_bar_container()->StackAtTop();
2516 } 2521 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/views/location_bar/location_bar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698