summaryrefslogtreecommitdiffstats
path: root/ash/shell.h
diff options
context:
space:
mode:
authormiletus@chromium.org <miletus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 17:55:41 +0000
committermiletus@chromium.org <miletus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-09 17:55:41 +0000
commit02418cca1bcf86ebd4cdec162d81c1ea10c7bed7 (patch)
tree84cb369b12b648da4fd19aee0b42a4c48cc3c7b1 /ash/shell.h
parentb74340984753c1b4bfa93290952b3f3d6208b1b8 (diff)
downloadchromium_src-02418cca1bcf86ebd4cdec162d81c1ea10c7bed7.zip
chromium_src-02418cca1bcf86ebd4cdec162d81c1ea10c7bed7.tar.gz
chromium_src-02418cca1bcf86ebd4cdec162d81c1ea10c7bed7.tar.bz2
Move touch CTM from X into Chrome
Currently we compute the touch CTM in OutputConfigurator and push that into X. This CL makes computing the touch CTM in DisplayController, and pushing it into WindowTreeHostX11. This moves the functionality of touch CTM from X into Chrome. Basically, when there is output configuration change, we compute the TouchCTM for each touch device, and push the TouchCTM into the WindowTreeHostX11 that is associated with the touchscreen. Then when X events reaching root window, we use the CTM to map the events coordinate in framebuffer space into the root window's coordinate space. BUG=351019, chrome-os-partner:25788 TEST=tested on Pixel/Clapper with external touch/non-touch displays on both extended/mirror mode. Touch events are correctly mapped to chrome window or discarded if it is from blank region from letterboxing/pillarboxing mirror mode. Review URL: https://codereview.chromium.org/191223007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269371 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/shell.h')
-rw-r--r--ash/shell.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/ash/shell.h b/ash/shell.h
index 718a6c6..6b987606 100644
--- a/ash/shell.h
+++ b/ash/shell.h
@@ -136,6 +136,7 @@ class SystemTray;
class SystemTrayDelegate;
class SystemTrayNotifier;
class ToplevelWindowEventHandler;
+class TouchTransformerController;
class TouchObserverHUD;
class UserActivityDetector;
class UserWallpaperDelegate;
@@ -370,6 +371,11 @@ class ASH_EXPORT Shell : public SystemModalContainerEventFilterDelegate,
DisplayController* display_controller() {
return display_controller_.get();
}
+#if defined(OS_CHROMEOS) && defined(USE_X11)
+ TouchTransformerController* touch_transformer_controller() {
+ return touch_transformer_controller_.get();
+ }
+#endif // defined(OS_CHROMEOS) && defined(USE_X11)
MouseCursorEventFilter* mouse_cursor_filter() {
return mouse_cursor_filter_.get();
}
@@ -714,6 +720,7 @@ class ASH_EXPORT Shell : public SystemModalContainerEventFilterDelegate,
#if defined(USE_X11)
scoped_ptr<ui::EventHandler> magnifier_key_scroll_handler_;
scoped_ptr<ui::EventHandler> speech_feedback_handler_;
+ scoped_ptr<TouchTransformerController> touch_transformer_controller_;
#endif // defined(USE_X11)
#endif // defined(OS_CHROMEOS)