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

Side by Side Diff: ui/aura/root_window_host_x11.cc

Issue 72503002: Remove some pass-thrus on RootWindow API in favor of exposing the RootWindowHost again. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 1 month 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
« no previous file with comments | « ui/aura/root_window_host_x11.h ('k') | ui/aura/root_window_host_x11_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/aura/root_window_host_x11.h" 5 #include "ui/aura/root_window_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/Xfixes.h> 9 #include <X11/extensions/Xfixes.h>
10 #include <X11/extensions/XInput2.h> 10 #include <X11/extensions/XInput2.h>
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 gfx::Point recent_locations_[kMaxEvents]; 313 gfx::Point recent_locations_[kMaxEvents];
314 size_t insert_index_; 314 size_t insert_index_;
315 315
316 DISALLOW_COPY_AND_ASSIGN(MouseMoveFilter); 316 DISALLOW_COPY_AND_ASSIGN(MouseMoveFilter);
317 }; 317 };
318 318
319 //////////////////////////////////////////////////////////////////////////////// 319 ////////////////////////////////////////////////////////////////////////////////
320 // RootWindowHostX11 320 // RootWindowHostX11
321 321
322 RootWindowHostX11::RootWindowHostX11(const gfx::Rect& bounds) 322 RootWindowHostX11::RootWindowHostX11(const gfx::Rect& bounds)
323 : delegate_(NULL), 323 : xdisplay_(gfx::GetXDisplay()),
324 xdisplay_(gfx::GetXDisplay()),
325 xwindow_(0), 324 xwindow_(0),
326 x_root_window_(DefaultRootWindow(xdisplay_)), 325 x_root_window_(DefaultRootWindow(xdisplay_)),
327 current_cursor_(ui::kCursorNull), 326 current_cursor_(ui::kCursorNull),
328 window_mapped_(false), 327 window_mapped_(false),
329 bounds_(bounds), 328 bounds_(bounds),
330 is_internal_display_(false), 329 is_internal_display_(false),
331 focus_when_shown_(false), 330 focus_when_shown_(false),
332 touch_calibrate_(new internal::TouchEventCalibrate), 331 touch_calibrate_(new internal::TouchEventCalibrate),
333 mouse_move_filter_(new MouseMoveFilter), 332 mouse_move_filter_(new MouseMoveFilter),
334 atom_cache_(xdisplay_, kAtomsToCache), 333 atom_cache_(xdisplay_, kAtomsToCache),
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 } 576 }
578 577
579 ui::MouseEvent mouseev(xev); 578 ui::MouseEvent mouseev(xev);
580 TranslateAndDispatchMouseEvent(&mouseev); 579 TranslateAndDispatchMouseEvent(&mouseev);
581 break; 580 break;
582 } 581 }
583 } 582 }
584 return true; 583 return true;
585 } 584 }
586 585
587 void RootWindowHostX11::SetDelegate(RootWindowHostDelegate* delegate) {
588 delegate_ = delegate;
589 }
590
591 RootWindow* RootWindowHostX11::GetRootWindow() { 586 RootWindow* RootWindowHostX11::GetRootWindow() {
592 return delegate_->AsRootWindow(); 587 return delegate_->AsRootWindow();
593 } 588 }
594 589
595 gfx::AcceleratedWidget RootWindowHostX11::GetAcceleratedWidget() { 590 gfx::AcceleratedWidget RootWindowHostX11::GetAcceleratedWidget() {
596 return xwindow_; 591 return xwindow_;
597 } 592 }
598 593
599 void RootWindowHostX11::Show() { 594 void RootWindowHostX11::Show() {
600 if (!window_mapped_) { 595 if (!window_mapped_) {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 void RootWindowHostX11::OnCursorVisibilityChanged(bool show) { 778 void RootWindowHostX11::OnCursorVisibilityChanged(bool show) {
784 SetCrOSTapPaused(!show); 779 SetCrOSTapPaused(!show);
785 } 780 }
786 781
787 void RootWindowHostX11::MoveCursorTo(const gfx::Point& location) { 782 void RootWindowHostX11::MoveCursorTo(const gfx::Point& location) {
788 XWarpPointer(xdisplay_, None, x_root_window_, 0, 0, 0, 0, 783 XWarpPointer(xdisplay_, None, x_root_window_, 0, 0, 0, 0,
789 bounds_.x() + location.x(), 784 bounds_.x() + location.x(),
790 bounds_.y() + location.y()); 785 bounds_.y() + location.y());
791 } 786 }
792 787
793 void RootWindowHostX11::SetFocusWhenShown(bool focus_when_shown) {
794 static const char* k_NET_WM_USER_TIME = "_NET_WM_USER_TIME";
795 focus_when_shown_ = focus_when_shown;
796 if (IsWindowManagerPresent() && !focus_when_shown_) {
797 ui::SetIntProperty(xwindow_,
798 k_NET_WM_USER_TIME,
799 k_NET_WM_USER_TIME,
800 0);
801 }
802 }
803
804 void RootWindowHostX11::PostNativeEvent( 788 void RootWindowHostX11::PostNativeEvent(
805 const base::NativeEvent& native_event) { 789 const base::NativeEvent& native_event) {
806 DCHECK(xwindow_); 790 DCHECK(xwindow_);
807 DCHECK(xdisplay_); 791 DCHECK(xdisplay_);
808 XEvent xevent = *native_event; 792 XEvent xevent = *native_event;
809 xevent.xany.display = xdisplay_; 793 xevent.xany.display = xdisplay_;
810 xevent.xany.window = xwindow_; 794 xevent.xany.window = xwindow_;
811 795
812 switch (xevent.type) { 796 switch (xevent.type) {
813 case EnterNotify: 797 case EnterNotify:
814 case LeaveNotify: 798 case LeaveNotify:
815 case MotionNotify: 799 case MotionNotify:
816 case KeyPress: 800 case KeyPress:
817 case KeyRelease: 801 case KeyRelease:
818 case ButtonPress: 802 case ButtonPress:
819 case ButtonRelease: { 803 case ButtonRelease: {
820 // The fields used below are in the same place for all of events 804 // The fields used below are in the same place for all of events
821 // above. Using xmotion from XEvent's unions to avoid repeating 805 // above. Using xmotion from XEvent's unions to avoid repeating
822 // the code. 806 // the code.
823 xevent.xmotion.root = x_root_window_; 807 xevent.xmotion.root = x_root_window_;
824 xevent.xmotion.time = CurrentTime; 808 xevent.xmotion.time = CurrentTime;
825 809
826 gfx::Point point(xevent.xmotion.x, xevent.xmotion.y); 810 gfx::Point point(xevent.xmotion.x, xevent.xmotion.y);
827 delegate_->AsRootWindow()->ConvertPointToNativeScreen(&point); 811 delegate_->AsRootWindow()->host()->ConvertPointToNativeScreen(&point);
828 xevent.xmotion.x_root = point.x(); 812 xevent.xmotion.x_root = point.x();
829 xevent.xmotion.y_root = point.y(); 813 xevent.xmotion.y_root = point.y();
830 } 814 }
831 default: 815 default:
832 break; 816 break;
833 } 817 }
834 XSendEvent(xdisplay_, xwindow_, False, 0, &xevent); 818 XSendEvent(xdisplay_, xwindow_, False, 0, &xevent);
835 } 819 }
836 820
837 void RootWindowHostX11::OnDeviceScaleFactorChanged( 821 void RootWindowHostX11::OnDeviceScaleFactorChanged(
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 } 1076 }
1093 1077
1094 namespace test { 1078 namespace test {
1095 1079
1096 void SetUseOverrideRedirectWindowByDefault(bool override_redirect) { 1080 void SetUseOverrideRedirectWindowByDefault(bool override_redirect) {
1097 default_override_redirect = override_redirect; 1081 default_override_redirect = override_redirect;
1098 } 1082 }
1099 1083
1100 } // namespace test 1084 } // namespace test
1101 } // namespace aura 1085 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/root_window_host_x11.h ('k') | ui/aura/root_window_host_x11_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698