OLD | NEW |
---|---|
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/aura/window_tree_host_x11.h" | 5 #include "ui/aura/window_tree_host_x11.h" |
6 | 6 |
7 #include <strings.h> | 7 #include <strings.h> |
8 #include <X11/cursorfont.h> | 8 #include <X11/cursorfont.h> |
9 #include <X11/extensions/XInput2.h> | 9 #include <X11/extensions/XInput2.h> |
10 #include <X11/extensions/Xrandr.h> | 10 #include <X11/extensions/Xrandr.h> |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
142 // which need to be expanded when converting to screen coordinates, | 142 // which need to be expanded when converting to screen coordinates, |
143 // so that location on bezels will be outside of screen area. | 143 // so that location on bezels will be outside of screen area. |
144 void Calibrate(ui::TouchEvent* event, const gfx::Rect& bounds) { | 144 void Calibrate(ui::TouchEvent* event, const gfx::Rect& bounds) { |
145 int x = event->x(); | 145 int x = event->x(); |
146 int y = event->y(); | 146 int y = event->y(); |
147 | 147 |
148 if (!left_ && !right_ && !top_ && !bottom_) | 148 if (!left_ && !right_ && !top_ && !bottom_) |
149 return; | 149 return; |
150 | 150 |
151 const int resolution_x = bounds.width(); | 151 const int resolution_x = bounds.width(); |
152 const int resolution_y = bounds.height(); | 152 const int resolution_y = bounds.height(); |
pkotwicz
2015/01/23 19:34:33
My understanding is that the following is always t
Mr4D (OOO till 08-26)
2015/01/27 13:35:45
This has to be enabled by the TP driver. It was me
| |
153 // The "grace area" (10% in this case) is to make it easier for the user to | |
154 // navigate to the corner. | |
155 const double kGraceAreaFraction = 0.1; | |
156 if (left_ || right_) { | 153 if (left_ || right_) { |
157 // Offset the x position to the real | 154 // Offset the x position to the real |
158 x -= left_; | 155 x -= left_; |
159 // Check if we are in the grace area of the left side. | |
160 // Note: We might not want to do this when the gesture is locked? | |
161 if (x < 0 && x > -left_ * kGraceAreaFraction) | |
162 x = 0; | |
163 // Check if we are in the grace area of the right side. | |
164 // Note: We might not want to do this when the gesture is locked? | |
165 if (x > resolution_x - left_ && | |
166 x < resolution_x - left_ + right_ * kGraceAreaFraction) | |
167 x = resolution_x - left_; | |
168 // Scale the screen area back to the full resolution of the screen. | 156 // Scale the screen area back to the full resolution of the screen. |
169 x = (x * resolution_x) / (resolution_x - (right_ + left_)); | 157 x = (x * resolution_x) / (resolution_x - (right_ + left_)); |
170 } | 158 } |
171 if (top_ || bottom_) { | 159 if (top_ || bottom_) { |
172 // When there is a top bezel we add our border, | 160 // When there is a top bezel we add our border, |
173 y -= top_; | 161 y -= top_; |
174 | |
175 // Check if we are in the grace area of the top side. | |
176 // Note: We might not want to do this when the gesture is locked? | |
177 if (y < 0 && y > -top_ * kGraceAreaFraction) | |
178 y = 0; | |
179 | |
180 // Check if we are in the grace area of the bottom side. | |
181 // Note: We might not want to do this when the gesture is locked? | |
182 if (y > resolution_y - top_ && | |
183 y < resolution_y - top_ + bottom_ * kGraceAreaFraction) | |
pkotwicz
2015/01/23 19:34:33
My understanding is that this if statement is neve
Mr4D (OOO till 08-26)
2015/01/27 13:35:45
At the moment only the bottom bezel is reliable. Y
| |
184 y = resolution_y - top_; | |
185 // Scale the screen area back to the full resolution of the screen. | 162 // Scale the screen area back to the full resolution of the screen. |
186 y = (y * resolution_y) / (resolution_y - (bottom_ + top_)); | 163 y = (y * resolution_y) / (resolution_y - (bottom_ + top_)); |
187 } | 164 } |
188 | 165 |
189 // Set the modified coordinate back to the event. | 166 // Set the modified coordinate back to the event. |
190 if (event->root_location() == event->location()) { | 167 if (event->root_location() == event->location()) { |
191 // Usually those will be equal, | 168 // Usually those will be equal, |
192 // if not, I am not sure what the correct value should be. | 169 // if not, I am not sure what the correct value should be. |
193 event->set_root_location(gfx::Point(x, y)); | 170 event->set_root_location(gfx::Point(x, y)); |
194 } | 171 } |
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
692 } | 669 } |
693 | 670 |
694 namespace test { | 671 namespace test { |
695 | 672 |
696 void SetUseOverrideRedirectWindowByDefault(bool override_redirect) { | 673 void SetUseOverrideRedirectWindowByDefault(bool override_redirect) { |
697 default_override_redirect = override_redirect; | 674 default_override_redirect = override_redirect; |
698 } | 675 } |
699 | 676 |
700 } // namespace test | 677 } // namespace test |
701 } // namespace aura | 678 } // namespace aura |
OLD | NEW |