[gtk+/gtk-3-22] Quartz: Implement gdk_window_set_functions
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-22] Quartz: Implement gdk_window_set_functions
- Date: Mon, 6 Mar 2017 03:53:13 +0000 (UTC)
commit 7160e3a12f56ab52ea3e0ff2097b8912128a3677
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Mar 5 22:52:03 2017 -0500
Quartz: Implement gdk_window_set_functions
This is useful, and easy to implement.
gdk/quartz/gdkwindow-quartz.c | 40 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 39 insertions(+), 1 deletions(-)
---
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index b11aec5..2e7dc0a 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -2474,9 +2474,47 @@ static void
gdk_quartz_window_set_functions (GdkWindow *window,
GdkWMFunction functions)
{
+ GdkWindowImplQuartz *impl;
+ gboolean min, max, close;
+
g_return_if_fail (GDK_IS_WINDOW (window));
- /* FIXME: Implement */
+ imple = GDK_WINDOW_IMPL_QUARTZ (window->impl);
+
+ if (functions & GDK_FUNC_ALL)
+ {
+ min = !(functions & GDK_FUNC_MINIMIZE);
+ max = !(functions & GDK_FUNC_MAXIMIZE);
+ close = !(functions & GDK_FUNC_CLOSE);
+ }
+ else
+ {
+ min = (functions & GDK_FUNC_MINIMIZE);
+ max = (functions & GDK_FUNC_MAXIMIZE);
+ close = (functions & GDK_FUNC_CLOSE);
+ }
+
+ if (impl->toplevel)
+ {
+ NSWindowStyleMask mask = [impl->toplevel styleMask];
+
+ if (min)
+ mask = mask | NSMiniaturizableWindowMask;
+ else
+ mask = mask & ~NSMiniaturizableWindowMask;
+
+ if (max)
+ mask = mask | NSResizableWindowMask;
+ else
+ mask = mask & ~NSResizableWindowMask;
+
+ if (close)
+ mask = mask | NSClosableWindowMask;
+ else
+ mask = mask & ~NSClosableWindowMask;
+
+ [impl->toplevel setStyleMask:mask];
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]