[mutter] window: Move _NET_WM_ALLOWED_ACTIONS setting to window-x11 as well
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] window: Move _NET_WM_ALLOWED_ACTIONS setting to window-x11 as well
- Date: Tue, 29 Apr 2014 21:58:40 +0000 (UTC)
commit 7bf0c7719316fd8f4da8f94d0937db158d70ad4b
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Tue Apr 29 15:18:40 2014 -0400
window: Move _NET_WM_ALLOWED_ACTIONS setting to window-x11 as well
src/core/window.c | 78 ++++---------------------------------------------
src/x11/window-x11.c | 71 +++++++++++++++++++++++++++++++++++++++++++++
src/x11/window-x11.h | 1 +
3 files changed, 79 insertions(+), 71 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index 7fb02de..7ad2b61 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1688,6 +1688,13 @@ set_net_wm_state (MetaWindow *window)
meta_window_x11_set_net_wm_state (window);
}
+static void
+set_allowed_actions_hint (MetaWindow *window)
+{
+ if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
+ meta_window_x11_set_allowed_actions_hint (window);
+}
+
/**
* meta_window_located_on_workspace:
* @window: a #MetaWindow
@@ -5731,77 +5738,6 @@ meta_window_frame_size_changed (MetaWindow *window)
}
static void
-set_allowed_actions_hint (MetaWindow *window)
-{
-#define MAX_N_ACTIONS 12
- unsigned long data[MAX_N_ACTIONS];
- int i;
-
- i = 0;
- if (window->has_move_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_MOVE;
- ++i;
- }
- if (window->has_resize_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_RESIZE;
- ++i;
- }
- if (window->has_fullscreen_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_FULLSCREEN;
- ++i;
- }
- if (window->has_minimize_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_MINIMIZE;
- ++i;
- }
- if (window->has_shade_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_SHADE;
- ++i;
- }
- /* sticky according to EWMH is different from mutter's sticky;
- * mutter doesn't support EWMH sticky
- */
- if (window->has_maximize_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_MAXIMIZE_HORZ;
- ++i;
- data[i] = window->display->atom__NET_WM_ACTION_MAXIMIZE_VERT;
- ++i;
- }
- /* We always allow this */
- data[i] = window->display->atom__NET_WM_ACTION_CHANGE_DESKTOP;
- ++i;
- if (window->has_close_func)
- {
- data[i] = window->display->atom__NET_WM_ACTION_CLOSE;
- ++i;
- }
-
- /* I guess we always allow above/below operations */
- data[i] = window->display->atom__NET_WM_ACTION_ABOVE;
- ++i;
- data[i] = window->display->atom__NET_WM_ACTION_BELOW;
- ++i;
-
- g_assert (i <= MAX_N_ACTIONS);
-
- meta_verbose ("Setting _NET_WM_ALLOWED_ACTIONS with %d atoms\n", i);
-
- meta_error_trap_push (window->display);
- XChangeProperty (window->display->xdisplay, window->xwindow,
- window->display->atom__NET_WM_ALLOWED_ACTIONS,
- XA_ATOM,
- 32, PropModeReplace, (guchar*) data, i);
- meta_error_trap_pop (window->display);
-#undef MAX_N_ACTIONS
-}
-
-static void
meta_window_get_default_skip_hints (MetaWindow *window,
gboolean *skip_taskbar_out,
gboolean *skip_pager_out)
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 60fc253..507822c 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2856,3 +2856,74 @@ meta_window_x11_configure_notify (MetaWindow *window,
meta_compositor_sync_window_geometry (window->display->compositor, window, FALSE);
}
+
+void
+meta_window_x11_set_allowed_actions_hint (MetaWindow *window)
+{
+#define MAX_N_ACTIONS 12
+ unsigned long data[MAX_N_ACTIONS];
+ int i;
+
+ i = 0;
+ if (window->has_move_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_MOVE;
+ ++i;
+ }
+ if (window->has_resize_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_RESIZE;
+ ++i;
+ }
+ if (window->has_fullscreen_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_FULLSCREEN;
+ ++i;
+ }
+ if (window->has_minimize_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_MINIMIZE;
+ ++i;
+ }
+ if (window->has_shade_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_SHADE;
+ ++i;
+ }
+ /* sticky according to EWMH is different from mutter's sticky;
+ * mutter doesn't support EWMH sticky
+ */
+ if (window->has_maximize_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_MAXIMIZE_HORZ;
+ ++i;
+ data[i] = window->display->atom__NET_WM_ACTION_MAXIMIZE_VERT;
+ ++i;
+ }
+ /* We always allow this */
+ data[i] = window->display->atom__NET_WM_ACTION_CHANGE_DESKTOP;
+ ++i;
+ if (window->has_close_func)
+ {
+ data[i] = window->display->atom__NET_WM_ACTION_CLOSE;
+ ++i;
+ }
+
+ /* I guess we always allow above/below operations */
+ data[i] = window->display->atom__NET_WM_ACTION_ABOVE;
+ ++i;
+ data[i] = window->display->atom__NET_WM_ACTION_BELOW;
+ ++i;
+
+ g_assert (i <= MAX_N_ACTIONS);
+
+ meta_verbose ("Setting _NET_WM_ALLOWED_ACTIONS with %d atoms\n", i);
+
+ meta_error_trap_push (window->display);
+ XChangeProperty (window->display->xdisplay, window->xwindow,
+ window->display->atom__NET_WM_ALLOWED_ACTIONS,
+ XA_ATOM,
+ 32, PropModeReplace, (guchar*) data, i);
+ meta_error_trap_pop (window->display);
+#undef MAX_N_ACTIONS
+}
diff --git a/src/x11/window-x11.h b/src/x11/window-x11.h
index 29d95b0..5c40024 100644
--- a/src/x11/window-x11.h
+++ b/src/x11/window-x11.h
@@ -42,6 +42,7 @@ typedef struct _MetaWindowX11Class MetaWindowX11Class;
void meta_window_x11_set_net_wm_state (MetaWindow *window);
void meta_window_x11_set_wm_state (MetaWindow *window);
+void meta_window_x11_set_allowed_actions_hint (MetaWindow *window);
void meta_window_x11_update_role (MetaWindow *window);
void meta_window_x11_update_net_wm_type (MetaWindow *window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]