Chromium Code Reviews| 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/views/widget/desktop_aura/desktop_root_window_host_x11.h" | 5 #include "ui/views/widget/desktop_aura/desktop_root_window_host_x11.h" |
| 6 | 6 |
| 7 #include <X11/extensions/shape.h> | 7 #include <X11/extensions/shape.h> |
| 8 #include <X11/extensions/XInput2.h> | 8 #include <X11/extensions/XInput2.h> |
| 9 #include <X11/Xatom.h> | 9 #include <X11/Xatom.h> |
| 10 #include <X11/Xregion.h> | 10 #include <X11/Xregion.h> |
| (...skipping 1095 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1106 delegate_->OnHostMouseEvent(event); | 1106 delegate_->OnHostMouseEvent(event); |
| 1107 } else { | 1107 } else { |
| 1108 // Another DesktopRootWindowHostX11 has installed itself as | 1108 // Another DesktopRootWindowHostX11 has installed itself as |
| 1109 // capture. Translate the event's location and dispatch to the other. | 1109 // capture. Translate the event's location and dispatch to the other. |
| 1110 event->ConvertLocationToTarget(root_window_->window(), | 1110 event->ConvertLocationToTarget(root_window_->window(), |
| 1111 g_current_capture->root_window_->window()); | 1111 g_current_capture->root_window_->window()); |
| 1112 g_current_capture->delegate_->OnHostMouseEvent(event); | 1112 g_current_capture->delegate_->OnHostMouseEvent(event); |
| 1113 } | 1113 } |
| 1114 } | 1114 } |
| 1115 | 1115 |
| 1116 void DesktopRootWindowHostX11::DispatchTouchEvent(ui::TouchEvent* event) { | |
| 1117 if (g_current_capture && g_current_capture != this && | |
| 1118 event->type() == ui::ET_MOUSE_PRESSED) { | |
|
dshwang
2013/12/04 17:37:27
s/ET_MOUSE_PRESSED/ET_TOUCH_PRESSED/ ?
why Dispat
sadrul
2013/12/04 17:57:29
Whoops. Fixed.
| |
| 1119 event->ConvertLocationToTarget(root_window_->window(), | |
| 1120 g_current_capture->root_window_->window()); | |
| 1121 g_current_capture->delegate_->OnHostTouchEvent(event); | |
| 1122 } else { | |
| 1123 delegate_->OnHostTouchEvent(event); | |
| 1124 } | |
| 1125 } | |
| 1126 | |
| 1116 void DesktopRootWindowHostX11::ResetWindowRegion() { | 1127 void DesktopRootWindowHostX11::ResetWindowRegion() { |
| 1117 if (!IsMaximized()) { | 1128 if (!IsMaximized()) { |
| 1118 gfx::Path window_mask; | 1129 gfx::Path window_mask; |
| 1119 views::Widget* widget = native_widget_delegate_->AsWidget(); | 1130 views::Widget* widget = native_widget_delegate_->AsWidget(); |
| 1120 if (widget->non_client_view()) { | 1131 if (widget->non_client_view()) { |
| 1121 // Some frame views define a custom (non-rectangular) window mask. If | 1132 // Some frame views define a custom (non-rectangular) window mask. If |
| 1122 // so, use it to define the window shape. If not, fall through. | 1133 // so, use it to define the window shape. If not, fall through. |
| 1123 widget->non_client_view()->GetWindowMask(bounds_.size(), &window_mask); | 1134 widget->non_client_view()->GetWindowMask(bounds_.size(), &window_mask); |
| 1124 if (window_mask.countPoints() > 0) { | 1135 if (window_mask.countPoints() > 0) { |
| 1125 Region region = gfx::CreateRegionFromSkPath(window_mask); | 1136 Region region = gfx::CreateRegionFromSkPath(window_mask); |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1271 case GenericEvent: { | 1282 case GenericEvent: { |
| 1272 ui::TouchFactory* factory = ui::TouchFactory::GetInstance(); | 1283 ui::TouchFactory* factory = ui::TouchFactory::GetInstance(); |
| 1273 if (!factory->ShouldProcessXI2Event(xev)) | 1284 if (!factory->ShouldProcessXI2Event(xev)) |
| 1274 break; | 1285 break; |
| 1275 | 1286 |
| 1276 ui::EventType type = ui::EventTypeFromNative(xev); | 1287 ui::EventType type = ui::EventTypeFromNative(xev); |
| 1277 XEvent last_event; | 1288 XEvent last_event; |
| 1278 int num_coalesced = 0; | 1289 int num_coalesced = 0; |
| 1279 | 1290 |
| 1280 switch (type) { | 1291 switch (type) { |
| 1281 // case ui::ET_TOUCH_MOVED: | 1292 case ui::ET_TOUCH_MOVED: |
| 1282 // num_coalesced = CoalescePendingMotionEvents(xev, &last_event); | 1293 num_coalesced = ui::CoalescePendingMotionEvents(xev, &last_event); |
| 1283 // if (num_coalesced > 0) | 1294 if (num_coalesced > 0) |
| 1284 // xev = &last_event; | 1295 xev = &last_event; |
| 1285 // // fallthrough | 1296 // fallthrough |
| 1286 // case ui::ET_TOUCH_PRESSED: | 1297 case ui::ET_TOUCH_PRESSED: |
| 1287 // case ui::ET_TOUCH_RELEASED: { | 1298 case ui::ET_TOUCH_RELEASED: { |
| 1288 // ui::TouchEvent touchev(xev); | 1299 ui::TouchEvent touchev(xev); |
| 1289 // delegate_->OnHostTouchEvent(&touchev); | 1300 DispatchTouchEvent(&touchev); |
| 1290 // break; | 1301 break; |
| 1291 // } | 1302 } |
| 1292 case ui::ET_MOUSE_MOVED: | 1303 case ui::ET_MOUSE_MOVED: |
| 1293 case ui::ET_MOUSE_DRAGGED: | 1304 case ui::ET_MOUSE_DRAGGED: |
| 1294 case ui::ET_MOUSE_PRESSED: | 1305 case ui::ET_MOUSE_PRESSED: |
| 1295 case ui::ET_MOUSE_RELEASED: | 1306 case ui::ET_MOUSE_RELEASED: |
| 1296 case ui::ET_MOUSE_ENTERED: | 1307 case ui::ET_MOUSE_ENTERED: |
| 1297 case ui::ET_MOUSE_EXITED: { | 1308 case ui::ET_MOUSE_EXITED: { |
| 1298 if (type == ui::ET_MOUSE_MOVED || type == ui::ET_MOUSE_DRAGGED) { | 1309 if (type == ui::ET_MOUSE_MOVED || type == ui::ET_MOUSE_DRAGGED) { |
| 1299 // If this is a motion event, we want to coalesce all pending motion | 1310 // If this is a motion event, we want to coalesce all pending motion |
| 1300 // events that are at the top of the queue. | 1311 // events that are at the top of the queue. |
| 1301 num_coalesced = ui::CoalescePendingMotionEvents(xev, &last_event); | 1312 num_coalesced = ui::CoalescePendingMotionEvents(xev, &last_event); |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1516 if (linux_ui) { | 1527 if (linux_ui) { |
| 1517 ui::NativeTheme* native_theme = linux_ui->GetNativeTheme(); | 1528 ui::NativeTheme* native_theme = linux_ui->GetNativeTheme(); |
| 1518 if (native_theme) | 1529 if (native_theme) |
| 1519 return native_theme; | 1530 return native_theme; |
| 1520 } | 1531 } |
| 1521 | 1532 |
| 1522 return ui::NativeTheme::instance(); | 1533 return ui::NativeTheme::instance(); |
| 1523 } | 1534 } |
| 1524 | 1535 |
| 1525 } // namespace views | 1536 } // namespace views |
| OLD | NEW |