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

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

Issue 11819008: Refactors building the system menu model into a common place (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to trunk and fix windows build Created 7 years, 11 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/browser_desktop_root_window_host_win.cc
diff --git a/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc
index 69e58a4428329ff1ed2ca9ec38b3736937b6a469..07ba37d98befa8b4785524e7b78b0888bc210631 100644
--- a/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc
+++ b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc
@@ -10,6 +10,7 @@
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/tabs/tab_strip.h"
#include "ui/base/theme_provider.h"
+#include "ui/views/controls/menu/native_menu_win.h"
#pragma comment(lib, "dwmapi.lib")
@@ -41,6 +42,16 @@ BrowserDesktopRootWindowHostWin::BrowserDesktopRootWindowHostWin(
BrowserDesktopRootWindowHostWin::~BrowserDesktopRootWindowHostWin() {
}
+views::NativeMenuWin* BrowserDesktopRootWindowHostWin::GetSystemMenu() {
+ if (!system_menu_.get()) {
+ system_menu_.reset(
+ new views::NativeMenuWin(browser_frame_->GetSystemMenuModel(),
+ GetHWND()));
+ system_menu_->Rebuild();
+ }
+ return system_menu_.get();
+}
+
////////////////////////////////////////////////////////////////////////////////
// BrowserDesktopRootWindowHostWin, BrowserDesktopRootWindowHost implementation:
@@ -53,6 +64,10 @@ int BrowserDesktopRootWindowHostWin::GetMinimizeButtonOffset() const {
return minimize_button_metrics_.GetMinimizeButtonOffsetX();
}
+bool BrowserDesktopRootWindowHostWin::UsesNativeSystemMenu() const {
+ return true;
+}
+
////////////////////////////////////////////////////////////////////////////////
// BrowserDesktopRootWindowHostWin, views::DesktopRootWindowHostWin overrides:
@@ -96,13 +111,16 @@ bool BrowserDesktopRootWindowHostWin::PreHandleMSG(UINT message,
LPARAM l_param,
LRESULT* result) {
switch (message) {
- case WM_ACTIVATE:
- if (LOWORD(w_param) != WA_INACTIVE)
- minimize_button_metrics_.OnHWNDActivated();
- return false;
- case WM_ENDSESSION:
- browser::SessionEnding();
- return true;
+ case WM_ACTIVATE:
+ if (LOWORD(w_param) != WA_INACTIVE)
+ minimize_button_metrics_.OnHWNDActivated();
+ return false;
+ case WM_ENDSESSION:
+ browser::SessionEnding();
+ return true;
+ case WM_INITMENUPOPUP:
+ GetSystemMenu()->UpdateStates();
+ return true;
}
return DesktopRootWindowHostWin::PreHandleMSG(
message, w_param, l_param, result);
« no previous file with comments | « chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.h ('k') | chrome/browser/ui/views/frame/browser_frame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698