Index: ui/base/x/x11_util.cc |
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc |
index ec6b5363d72403d266c487e9e625a49ff7751e1d..31a6eed6c1b5339304227b311e084ccc72d21a06 100644 |
--- a/ui/base/x/x11_util.cc |
+++ b/ui/base/x/x11_util.cc |
@@ -495,6 +495,30 @@ void SetUseOSWindowFrame(XID window, bool use_os_window_frame) { |
sizeof(MotifWmHints)/sizeof(long)); |
} |
+void MoveResizeManagedWindow(XID window, |
+ gfx::Point root_location, |
+ NetWmMoveResize mode) { |
+ XDisplay* display = gfx::GetXDisplay(); |
+ XAtom message_type = GetAtom("_NET_WM_MOVERESIZE"); |
+ XEvent event; |
+ memset(&event, 0, sizeof(event)); |
+ event.xclient.type = ClientMessage; |
+ event.xclient.display = display; |
+ event.xclient.window = window; |
+ event.xclient.message_type = message_type; |
+ event.xclient.format = 32; |
+ event.xclient.data.l[0] = root_location.x(); |
+ event.xclient.data.l[1] = root_location.y(); |
+ event.xclient.data.l[2] = static_cast<long>(mode); |
+ event.xclient.data.l[3] = |
+ Button1; // Currently all our managed dragging is done with LMB. |
+ event.xclient.data.l[4] = 1; // Requested by normal application |
+ |
+ XSendEvent(display, DefaultRootWindow(display), False, |
+ SubstructureRedirectMask | SubstructureNotifyMask, &event); |
+ XFlush(display); |
+} |
+ |
bool IsShapeExtensionAvailable() { |
int dummy; |
static bool is_shape_available = |