Implemented borderless window functions on Linux.
This commit is contained in:
parent
58320b7f6c
commit
c3563b266f
@ -278,6 +278,13 @@ void OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_au
|
|||||||
xev.xclient.data.l[2] = 0;
|
xev.xclient.data.l[2] = 0;
|
||||||
|
|
||||||
XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureNotifyMask, &xev);
|
XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureNotifyMask, &xev);
|
||||||
|
} else if (current_videomode.borderless_window) {
|
||||||
|
Hints hints;
|
||||||
|
Atom property;
|
||||||
|
hints.flags = 2;
|
||||||
|
hints.decorations = 0;
|
||||||
|
property = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True);
|
||||||
|
XChangeProperty(x11_display, x11_window, property, property, 32, PropModeReplace, (unsigned char *)&hints, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable resizable window
|
// disable resizable window
|
||||||
@ -1018,6 +1025,25 @@ bool OS_X11::is_window_maximized() const {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OS_X11::set_borderless_window(int p_borderless) {
|
||||||
|
|
||||||
|
if (current_videomode.borderless_window == p_borderless)
|
||||||
|
return;
|
||||||
|
|
||||||
|
current_videomode.borderless_window = p_borderless;
|
||||||
|
|
||||||
|
Hints hints;
|
||||||
|
Atom property;
|
||||||
|
hints.flags = 2;
|
||||||
|
hints.decorations = current_videomode.borderless_window ? 0 : 1;
|
||||||
|
property = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True);
|
||||||
|
XChangeProperty(x11_display, x11_window, property, property, 32, PropModeReplace, (unsigned char *)&hints, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OS_X11::get_borderless_window() {
|
||||||
|
return current_videomode.borderless_window;
|
||||||
|
}
|
||||||
|
|
||||||
void OS_X11::request_attention() {
|
void OS_X11::request_attention() {
|
||||||
// Using EWMH -- Extended Window Manager Hints
|
// Using EWMH -- Extended Window Manager Hints
|
||||||
//
|
//
|
||||||
|
@ -251,6 +251,9 @@ public:
|
|||||||
virtual bool is_window_maximized() const;
|
virtual bool is_window_maximized() const;
|
||||||
virtual void request_attention();
|
virtual void request_attention();
|
||||||
|
|
||||||
|
virtual void set_borderless_window(int p_borderless);
|
||||||
|
virtual bool get_borderless_window();
|
||||||
|
|
||||||
virtual void move_window_to_foreground();
|
virtual void move_window_to_foreground();
|
||||||
virtual void alert(const String &p_alert, const String &p_title = "ALERT!");
|
virtual void alert(const String &p_alert, const String &p_title = "ALERT!");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user