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

Side by Side Diff: ui/views/widget/widget_hwnd_utils.cc

Issue 133053004: Ensure that trackpad and trackpoint scrolling works on Windows desktop Aura with legacy trackpad dr… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
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 "ui/views/widget/widget_hwnd_utils.h" 5 #include "ui/views/widget/widget_hwnd_utils.h"
6 6
7 #include <dwmapi.h> 7 #include <dwmapi.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/win/windows_version.h" 10 #include "base/win/windows_version.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 case Widget::InitParams::TYPE_POPUP: 126 case Widget::InitParams::TYPE_POPUP:
127 *style |= WS_POPUP; 127 *style |= WS_POPUP;
128 *ex_style |= WS_EX_TOOLWINDOW; 128 *ex_style |= WS_EX_TOOLWINDOW;
129 break; 129 break;
130 case Widget::InitParams::TYPE_MENU: 130 case Widget::InitParams::TYPE_MENU:
131 *style |= WS_POPUP; 131 *style |= WS_POPUP;
132 break; 132 break;
133 default: 133 default:
134 NOTREACHED(); 134 NOTREACHED();
135 } 135 }
136
137 #if defined(USE_AURA)
138 // Certain trackpad drivers on Windows have bugs where in they don't generate
139 // WM_MOUSEWHEEL messages for the trackpoint and trackpad scrolling gestures
140 // unless there is an entry for Chrome with the class name of the Window.
141 // These drivers check if the window under the trackpoint has the WS_VSCROLL/
142 // WS_HSCROLL style and if yes they generate the legacy WM_VSCROLL/WM_HSCROLL
143 // messages. We add these styles to ensure that trackpad/trackpoint scrolling
144 // work.
145 if (!params.child)
146 *style |= WS_VSCROLL | WS_HSCROLL;
147 #endif
136 } 148 }
137 149
138 } // namespace 150 } // namespace
139 151
140 bool DidClientAreaSizeChange(const WINDOWPOS* window_pos) { 152 bool DidClientAreaSizeChange(const WINDOWPOS* window_pos) {
141 return !(window_pos->flags & SWP_NOSIZE) || 153 return !(window_pos->flags & SWP_NOSIZE) ||
142 window_pos->flags & SWP_FRAMECHANGED; 154 window_pos->flags & SWP_FRAMECHANGED;
143 } 155 }
144 156
145 void ConfigureWindowStyles( 157 void ConfigureWindowStyles(
146 HWNDMessageHandler* handler, 158 HWNDMessageHandler* handler,
147 const Widget::InitParams& params, 159 const Widget::InitParams& params,
148 WidgetDelegate* widget_delegate, 160 WidgetDelegate* widget_delegate,
149 internal::NativeWidgetDelegate* native_widget_delegate) { 161 internal::NativeWidgetDelegate* native_widget_delegate) {
150 // Configure the HWNDMessageHandler with the appropriate 162 // Configure the HWNDMessageHandler with the appropriate
151 DWORD style = 0; 163 DWORD style = 0;
152 DWORD ex_style = 0; 164 DWORD ex_style = 0;
153 DWORD class_style = 0; 165 DWORD class_style = 0;
154 CalculateWindowStylesFromInitParams(params, widget_delegate, 166 CalculateWindowStylesFromInitParams(params, widget_delegate,
155 native_widget_delegate, &style, &ex_style, 167 native_widget_delegate, &style, &ex_style,
156 &class_style); 168 &class_style);
157 handler->set_initial_class_style(class_style); 169 handler->set_initial_class_style(class_style);
158 handler->set_window_style(handler->window_style() | style); 170 handler->set_window_style(handler->window_style() | style);
159 handler->set_window_ex_style(handler->window_ex_style() | ex_style); 171 handler->set_window_ex_style(handler->window_ex_style() | ex_style);
160 } 172 }
161 173
162 } // namespace views 174 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698