|
@@ -1184,18 +1184,20 @@ void OS_X11::set_window_position(const Point2 &p_position) {
|
|
//exclude window decorations
|
|
//exclude window decorations
|
|
XSync(x11_display, False);
|
|
XSync(x11_display, False);
|
|
Atom prop = XInternAtom(x11_display, "_NET_FRAME_EXTENTS", True);
|
|
Atom prop = XInternAtom(x11_display, "_NET_FRAME_EXTENTS", True);
|
|
- Atom type;
|
|
|
|
- int format;
|
|
|
|
- unsigned long len;
|
|
|
|
- unsigned long remaining;
|
|
|
|
- unsigned char *data = NULL;
|
|
|
|
- if (XGetWindowProperty(x11_display, x11_window, prop, 0, 4, False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) {
|
|
|
|
- if (format == 32 && len == 4) {
|
|
|
|
- long *extents = (long *)data;
|
|
|
|
- x = extents[0];
|
|
|
|
- y = extents[2];
|
|
|
|
|
|
+ if (prop != None) {
|
|
|
|
+ Atom type;
|
|
|
|
+ int format;
|
|
|
|
+ unsigned long len;
|
|
|
|
+ unsigned long remaining;
|
|
|
|
+ unsigned char *data = NULL;
|
|
|
|
+ if (XGetWindowProperty(x11_display, x11_window, prop, 0, 4, False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) {
|
|
|
|
+ if (format == 32 && len == 4) {
|
|
|
|
+ long *extents = (long *)data;
|
|
|
|
+ x = extents[0];
|
|
|
|
+ y = extents[2];
|
|
|
|
+ }
|
|
|
|
+ XFree(data);
|
|
}
|
|
}
|
|
- XFree(data);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
XMoveWindow(x11_display, x11_window, p_position.x - x, p_position.y - y);
|
|
XMoveWindow(x11_display, x11_window, p_position.x - x, p_position.y - y);
|
|
@@ -1215,18 +1217,20 @@ Size2 OS_X11::get_real_window_size() const {
|
|
int w = xwa.width;
|
|
int w = xwa.width;
|
|
int h = xwa.height;
|
|
int h = xwa.height;
|
|
Atom prop = XInternAtom(x11_display, "_NET_FRAME_EXTENTS", True);
|
|
Atom prop = XInternAtom(x11_display, "_NET_FRAME_EXTENTS", True);
|
|
- Atom type;
|
|
|
|
- int format;
|
|
|
|
- unsigned long len;
|
|
|
|
- unsigned long remaining;
|
|
|
|
- unsigned char *data = NULL;
|
|
|
|
- if (XGetWindowProperty(x11_display, x11_window, prop, 0, 4, False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) {
|
|
|
|
- if (format == 32 && len == 4) {
|
|
|
|
- long *extents = (long *)data;
|
|
|
|
- w += extents[0] + extents[1]; // left, right
|
|
|
|
- h += extents[2] + extents[3]; // top, bottom
|
|
|
|
|
|
+ if (prop != None) {
|
|
|
|
+ Atom type;
|
|
|
|
+ int format;
|
|
|
|
+ unsigned long len;
|
|
|
|
+ unsigned long remaining;
|
|
|
|
+ unsigned char *data = NULL;
|
|
|
|
+ if (XGetWindowProperty(x11_display, x11_window, prop, 0, 4, False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) {
|
|
|
|
+ if (format == 32 && len == 4) {
|
|
|
|
+ long *extents = (long *)data;
|
|
|
|
+ w += extents[0] + extents[1]; // left, right
|
|
|
|
+ h += extents[2] + extents[3]; // top, bottom
|
|
|
|
+ }
|
|
|
|
+ XFree(data);
|
|
}
|
|
}
|
|
- XFree(data);
|
|
|
|
}
|
|
}
|
|
return Size2(w, h);
|
|
return Size2(w, h);
|
|
}
|
|
}
|