diff options
-rw-r--r-- | chrome/browser/ui/views/chrome_views_delegate.cc | 4 | ||||
-rw-r--r-- | ui/base/ui_base_switches.cc | 3 | ||||
-rw-r--r-- | ui/base/ui_base_switches.h | 1 | ||||
-rw-r--r-- | ui/views/widget/widget_hwnd_utils.cc | 5 |
4 files changed, 13 insertions, 0 deletions
diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc index 7a16efc..60db143 100644 --- a/chrome/browser/ui/views/chrome_views_delegate.cc +++ b/chrome/browser/ui/views/chrome_views_delegate.cc @@ -14,6 +14,7 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/views/accessibility/accessibility_event_router_views.h" #include "chrome/common/pref_names.h" +#include "ui/base/ui_base_switches.h" #include "ui/gfx/rect.h" #include "ui/gfx/screen.h" #include "ui/views/widget/native_widget.h" @@ -194,6 +195,9 @@ void ChromeViewsDelegate::OnBeforeWidgetInit( if (base::win::GetVersion() >= base::win::VERSION_VISTA) { BOOL composition_enabled = FALSE; HRESULT hr = DwmIsCompositionEnabled(&composition_enabled); + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableDwmComposition)) + composition_enabled = FALSE; if (SUCCEEDED(hr) && composition_enabled) { if (chrome::GetActiveDesktop() != chrome::HOST_DESKTOP_TYPE_ASH && params->parent && diff --git a/ui/base/ui_base_switches.cc b/ui/base/ui_base_switches.cc index ef10e6d..80fcb0a 100644 --- a/ui/base/ui_base_switches.cc +++ b/ui/base/ui_base_switches.cc @@ -6,6 +6,9 @@ namespace switches { +// Disables use of DWM composition for top level windows. +const char kDisableDwmComposition[] = "disable-dwm-composition"; + // Disables touch adjustment. const char kDisableTouchAdjustment[] = "disable-touch-adjustment"; diff --git a/ui/base/ui_base_switches.h b/ui/base/ui_base_switches.h index 6dfeded..1319563 100644 --- a/ui/base/ui_base_switches.h +++ b/ui/base/ui_base_switches.h @@ -12,6 +12,7 @@ namespace switches { +UI_EXPORT extern const char kDisableDwmComposition[]; UI_EXPORT extern const char kDisableTouchAdjustment[]; UI_EXPORT extern const char kDisableViewsTextfield[]; UI_EXPORT extern const char kEnableBezelTouch[]; diff --git a/ui/views/widget/widget_hwnd_utils.cc b/ui/views/widget/widget_hwnd_utils.cc index 346a668..6e66e59 100644 --- a/ui/views/widget/widget_hwnd_utils.cc +++ b/ui/views/widget/widget_hwnd_utils.cc @@ -6,8 +6,10 @@ #include <dwmapi.h> +#include "base/command_line.h" #include "base/win/windows_version.h" #include "ui/base/l10n/l10n_util_win.h" +#include "ui/base/ui_base_switches.h" #include "ui/views/widget/widget_delegate.h" #include "ui/views/win/hwnd_message_handler.h" @@ -59,6 +61,9 @@ void CalculateWindowStylesFromInitParams( if (base::win::GetVersion() >= base::win::VERSION_VISTA) { BOOL enabled = FALSE; HRESULT hr = DwmIsCompositionEnabled(&enabled); + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableDwmComposition)) + enabled = FALSE; if (SUCCEEDED(hr) && (enabled == TRUE)) *ex_style |= WS_EX_COMPOSITED; } |