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 extern "C" { | 5 extern "C" { |
6 #include <X11/Xlib.h> | 6 #include <X11/Xlib.h> |
7 } | 7 } |
8 | 8 |
9 #include "ui/gl/gl_surface_glx.h" | 9 #include "ui/gl/gl_surface_glx.h" |
10 | 10 |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 gfx::AcceleratedWidget child_window) { | 325 gfx::AcceleratedWidget child_window) { |
326 DCHECK(child_to_parent_map_.find(child_window) != | 326 DCHECK(child_to_parent_map_.find(child_window) != |
327 child_to_parent_map_.end()); | 327 child_to_parent_map_.end()); |
328 child_to_parent_map_.erase(child_window); | 328 child_to_parent_map_.erase(child_window); |
329 | 329 |
330 if (child_to_parent_map_.empty()) | 330 if (child_to_parent_map_.empty()) |
331 base::MessagePumpX11::Current()->RemoveObserver(this); | 331 base::MessagePumpX11::Current()->RemoveObserver(this); |
332 } | 332 } |
333 | 333 |
334 private: | 334 private: |
335 virtual base::EventStatus WillProcessEvent ( | 335 virtual void WillProcessEvent(const base::NativeEvent& xevent) OVERRIDE { |
336 const base::NativeEvent& xevent) OVERRIDE { | |
337 if (xevent->type != Expose) | 336 if (xevent->type != Expose) |
338 return base::EVENT_CONTINUE; | 337 return; |
339 | 338 |
340 WindowMap::const_iterator found = child_to_parent_map_.find( | 339 WindowMap::const_iterator found = child_to_parent_map_.find( |
341 xevent->xexpose.window); | 340 xevent->xexpose.window); |
342 if (found == child_to_parent_map_.end()) | 341 if (found == child_to_parent_map_.end()) |
343 return base::EVENT_CONTINUE; | 342 return; |
344 | 343 |
345 gfx::AcceleratedWidget target_window = found->second; | 344 gfx::AcceleratedWidget target_window = found->second; |
346 XEvent forwarded_event = *xevent; | 345 XEvent forwarded_event = *xevent; |
347 forwarded_event.xexpose.window = target_window; | 346 forwarded_event.xexpose.window = target_window; |
348 XSendEvent(g_display, target_window, False, ExposureMask, | 347 XSendEvent(g_display, target_window, False, ExposureMask, |
349 &forwarded_event); | 348 &forwarded_event); |
350 return base::EVENT_CONTINUE; | |
351 } | 349 } |
352 virtual void DidProcessEvent(const base::NativeEvent& xevent) OVERRIDE { | 350 virtual void DidProcessEvent(const base::NativeEvent& xevent) OVERRIDE { |
353 } | 351 } |
354 | 352 |
355 typedef std::map<gfx::AcceleratedWidget, gfx::AcceleratedWidget> WindowMap; | 353 typedef std::map<gfx::AcceleratedWidget, gfx::AcceleratedWidget> WindowMap; |
356 WindowMap child_to_parent_map_; | 354 WindowMap child_to_parent_map_; |
357 | 355 |
358 DISALLOW_COPY_AND_ASSIGN(XExposeEventForwarder); | 356 DISALLOW_COPY_AND_ASSIGN(XExposeEventForwarder); |
359 }; | 357 }; |
360 | 358 |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
789 | 787 |
790 void* PbufferGLSurfaceGLX::GetConfig() { | 788 void* PbufferGLSurfaceGLX::GetConfig() { |
791 return config_; | 789 return config_; |
792 } | 790 } |
793 | 791 |
794 PbufferGLSurfaceGLX::~PbufferGLSurfaceGLX() { | 792 PbufferGLSurfaceGLX::~PbufferGLSurfaceGLX() { |
795 Destroy(); | 793 Destroy(); |
796 } | 794 } |
797 | 795 |
798 } // namespace gfx | 796 } // namespace gfx |
OLD | NEW |