Index: ui/base/x/events_x.cc |
diff --git a/ui/base/x/events_x.cc b/ui/base/x/events_x.cc |
index cf2499ead1c88b33ab83357a33ceb20a64bda57a..dffd32944461181b6f012ab8059598858145d5fb 100644 |
--- a/ui/base/x/events_x.cc |
+++ b/ui/base/x/events_x.cc |
@@ -12,6 +12,10 @@ |
#include "ui/base/touch/touch_factory.h" |
#include "ui/gfx/point.h" |
+#if !defined(TOOLKIT_USES_GTK) |
+#include "base/message_pump_x.h" |
+#endif |
+ |
namespace { |
// Scroll amount for each wheelscroll event. 53 is also the value used for GTK+. |
@@ -371,12 +375,24 @@ float GetTouchForce(const base::NativeEvent& native_event) { |
} |
base::NativeEvent CreateNoopEvent() { |
- static XEvent* noop = new XEvent(); |
- noop->xclient.type = ClientMessage; |
- noop->xclient.display = NULL; |
- noop->xclient.window = None; |
- noop->xclient.message_type = 0; |
- noop->xclient.format = 0; |
+ static XEvent* noop = NULL; |
+ if (!noop) { |
+ noop = new XEvent(); |
Daniel Erat
2011/11/22 01:46:14
i don't think there's any non-default constructor
oshima
2011/11/22 03:02:09
C++ supposed to be able to initialize POD types in
|
+ noop->xclient.type = ClientMessage; |
+ noop->xclient.window = None; |
Daniel Erat
2011/11/22 01:46:14
None == 0
oshima
2011/11/22 03:02:09
Hmm, it's implementation details and I think we sh
|
+ noop->xclient.format = 8; |
+ DCHECK(!noop->xclient.display); |
+ } |
+ // TODO(oshima): Remove ifdef once gtk is removed from views. |
+#if defined(TOOLKIT_USES_GTK) |
+ NOTREACHED(); |
+#else |
+ // Make sure we use atom from current xdisplay, which may |
+ // change during the test. |
+ noop->xclient.message_type = XInternAtom( |
+ base::MessagePumpX::GetDefaultXDisplay(), |
+ "noop", False); |
+#endif |
return noop; |
} |