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

Unified Diff: ui/base/x/x11_util.cc

Issue 2410773002: Linux Aura: Use managed tab dragging when possible (Reland)
Patch Set: Tested on various WMs Created 4 years, 2 months 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 side-by-side diff with in-line comments
Download patch
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..01ce47bce67162b3d525e7ed267bf16352d9d134 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 MoveResizeWindowManaged(XID window,
+ gfx::Point origin,
+ 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] = origin.x();
+ event.xclient.data.l[1] = origin.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;
Daniel Erat 2016/10/12 16:13:10 nit: add something like "// Requested by normal ap
Tom (Use chromium acct) 2016/10/12 18:08:27 Done.
+
+ XSendEvent(display, DefaultRootWindow(display), False,
+ SubstructureRedirectMask | SubstructureNotifyMask, &event);
+ XFlush(display);
+}
+
bool IsShapeExtensionAvailable() {
int dummy;
static bool is_shape_available =

Powered by Google App Engine
This is Rietveld 408576698