Implement always-on-top for MacOS
Courtesy of @bruvzg.
(cherry picked from commit 2e8c7824c0
)
This commit is contained in:
parent
1c25e50490
commit
4f0b5f7307
|
@ -222,6 +222,8 @@ public:
|
||||||
virtual bool is_window_minimized() const;
|
virtual bool is_window_minimized() const;
|
||||||
virtual void set_window_maximized(bool p_enabled);
|
virtual void set_window_maximized(bool p_enabled);
|
||||||
virtual bool is_window_maximized() const;
|
virtual bool is_window_maximized() const;
|
||||||
|
virtual void set_window_always_on_top(bool p_enabled);
|
||||||
|
virtual bool is_window_always_on_top() const;
|
||||||
virtual void request_attention();
|
virtual void request_attention();
|
||||||
virtual String get_joy_guid(int p_device) const;
|
virtual String get_joy_guid(int p_device) const;
|
||||||
|
|
||||||
|
|
|
@ -1976,6 +1976,20 @@ void OS_OSX::move_window_to_foreground() {
|
||||||
[window_object orderFrontRegardless];
|
[window_object orderFrontRegardless];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OS_OSX::set_window_always_on_top(bool p_enabled) {
|
||||||
|
if (is_window_always_on_top() == p_enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (p_enabled)
|
||||||
|
[window_object setLevel:NSFloatingWindowLevel];
|
||||||
|
else
|
||||||
|
[window_object setLevel:NSNormalWindowLevel];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool OS_OSX::is_window_always_on_top() const {
|
||||||
|
return [window_object level] == NSFloatingWindowLevel;
|
||||||
|
}
|
||||||
|
|
||||||
void OS_OSX::request_attention() {
|
void OS_OSX::request_attention() {
|
||||||
|
|
||||||
[NSApp requestUserAttention:NSCriticalRequest];
|
[NSApp requestUserAttention:NSCriticalRequest];
|
||||||
|
|
Loading…
Reference in New Issue