|
69 | 69 | #define _NET_WM_STATE_REMOVE 0L // remove/unset property
|
70 | 70 | #define _NET_WM_STATE_ADD 1L // add/set property
|
71 | 71 |
|
| 72 | +#define _NET_WM_MOVERESIZE_MOVE 8L |
| 73 | + |
72 | 74 | // 2.2 is the first release with multitouch
|
73 | 75 | #define XINPUT_CLIENT_VERSION_MAJOR 2
|
74 | 76 | #define XINPUT_CLIENT_VERSION_MINOR 2
|
@@ -5422,6 +5424,40 @@ DisplayServer::VSyncMode DisplayServerX11::window_get_vsync_mode(WindowID p_wind
|
5422 | 5424 | return DisplayServer::VSYNC_ENABLED;
|
5423 | 5425 | }
|
5424 | 5426 |
|
| 5427 | +void DisplayServerX11::window_start_drag(WindowID p_window) { |
| 5428 | + _THREAD_SAFE_METHOD_ |
| 5429 | + |
| 5430 | + ERR_FAIL_COND(!windows.has(p_window)); |
| 5431 | + WindowData &wd = windows[p_window]; |
| 5432 | + |
| 5433 | + XClientMessageEvent m; |
| 5434 | + memset(&m, 0, sizeof(m)); |
| 5435 | + |
| 5436 | + XUngrabPointer(x11_display, CurrentTime); |
| 5437 | + |
| 5438 | + Window root_return, child_return; |
| 5439 | + int root_x, root_y, win_x, win_y; |
| 5440 | + unsigned int mask_return; |
| 5441 | + |
| 5442 | + Bool xquerypointer_result = XQueryPointer(x11_display, wd.x11_window, &root_return, &child_return, &root_x, &root_y, &win_x, &win_y, &mask_return); |
| 5443 | + |
| 5444 | + m.type = ClientMessage; |
| 5445 | + m.window = wd.x11_window; |
| 5446 | + m.message_type = XInternAtom(x11_display, "_NET_WM_MOVERESIZE", True); |
| 5447 | + m.format = 32; |
| 5448 | + if (xquerypointer_result) { |
| 5449 | + m.data.l[0] = root_x; |
| 5450 | + m.data.l[1] = root_y; |
| 5451 | + m.data.l[3] = Button1; |
| 5452 | + } |
| 5453 | + m.data.l[2] = _NET_WM_MOVERESIZE_MOVE; |
| 5454 | + m.data.l[4] = 1; // Source - normal application. |
| 5455 | + |
| 5456 | + XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, (XEvent *)&m); |
| 5457 | + |
| 5458 | + XSync(x11_display, 0); |
| 5459 | +} |
| 5460 | + |
5425 | 5461 | Vector<String> DisplayServerX11::get_rendering_drivers_func() {
|
5426 | 5462 | Vector<String> drivers;
|
5427 | 5463 |
|
|
0 commit comments