From 4f9872c037bb6602a6e000b4a29ce6f43df5a0c1 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Thu, 13 Mar 2014 18:15:26 -0400 Subject: [PATCH] window: Export a bunch of state flags as accessor methods This is necessary to reimplement window menus in gnome-shell. https://bugzilla.gnome.org/show_bug.cgi?id=726352 --- src/core/window-private.h | 3 --- src/core/window.c | 54 ++++++++++++++++++++++++++++++++++----- src/meta/window.h | 10 ++++++++ 3 files changed, 58 insertions(+), 9 deletions(-) diff --git a/src/core/window-private.h b/src/core/window-private.h index 03f671525..fbeacabad 100644 --- a/src/core/window-private.h +++ b/src/core/window-private.h @@ -607,9 +607,6 @@ void meta_window_show_menu (MetaWindow *window, int button, guint32 timestamp); -gboolean meta_window_titlebar_is_onscreen (MetaWindow *window); -void meta_window_shove_titlebar_onscreen (MetaWindow *window); - void meta_window_set_gravity (MetaWindow *window, int gravity); diff --git a/src/core/window.c b/src/core/window.c index d6fdb0a37..8fca023db 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -11403,12 +11403,6 @@ meta_window_compute_tile_match (MetaWindow *window) } } -gboolean -meta_window_can_close (MetaWindow *window) -{ - return window->has_close_func; -} - Window meta_window_get_toplevel_xwindow (MetaWindow *window) { @@ -11424,3 +11418,51 @@ meta_window_set_opacity (MetaWindow *window, if (window->display->compositor) meta_compositor_window_opacity_changed (window->display->compositor, window); } + +gboolean +meta_window_can_maximize (MetaWindow *window) +{ + return window->has_maximize_func; +} + +gboolean +meta_window_can_minimize (MetaWindow *window) +{ + return window->has_minimize_func; +} + +gboolean +meta_window_can_shade (MetaWindow *window) +{ + return window->has_shade_func; +} + +gboolean +meta_window_can_close (MetaWindow *window) +{ + return window->has_close_func; +} + +gboolean +meta_window_is_always_on_all_workspaces (MetaWindow *window) +{ + return window->always_sticky; +} + +gboolean +meta_window_is_above (MetaWindow *window) +{ + return window->wm_state_above; +} + +gboolean +meta_window_allows_move (MetaWindow *window) +{ + return META_WINDOW_ALLOWS_MOVE (window); +} + +gboolean +meta_window_allows_resize (MetaWindow *window) +{ + return META_WINDOW_ALLOWS_RESIZE (window); +} diff --git a/src/meta/window.h b/src/meta/window.h index 0a5145d2c..671060f4c 100644 --- a/src/meta/window.h +++ b/src/meta/window.h @@ -244,6 +244,16 @@ void meta_window_begin_grab_op (MetaWindow *window, gboolean frame_action, guint32 timestamp); +gboolean meta_window_can_maximize (MetaWindow *window); +gboolean meta_window_can_minimize (MetaWindow *window); +gboolean meta_window_can_shade (MetaWindow *window); gboolean meta_window_can_close (MetaWindow *window); +gboolean meta_window_is_always_on_all_workspaces (MetaWindow *window); +gboolean meta_window_is_above (MetaWindow *window); +gboolean meta_window_allows_move (MetaWindow *window); +gboolean meta_window_allows_resize (MetaWindow *window); + +gboolean meta_window_titlebar_is_onscreen (MetaWindow *window); +void meta_window_shove_titlebar_onscreen (MetaWindow *window); #endif