[MetaWindow] Expose maximized state as properties
Add properties for the EWMH _NET_WM_STATE_MAXIMIZED_HORZ and _NET_WM_STATE_MAXIMIZED_VERT hints. https://bugzilla.gnome.org/show_bug.cgi?id=590706
This commit is contained in:
parent
ba700e6387
commit
d21da5643b
@ -141,6 +141,8 @@ enum {
|
|||||||
PROP_MINI_ICON,
|
PROP_MINI_ICON,
|
||||||
PROP_DECORATED,
|
PROP_DECORATED,
|
||||||
PROP_FULLSCREEN,
|
PROP_FULLSCREEN,
|
||||||
|
PROP_MAXIMIZED_HORIZONTALLY,
|
||||||
|
PROP_MAXIMIZED_VERTICALLY,
|
||||||
PROP_WINDOW_TYPE,
|
PROP_WINDOW_TYPE,
|
||||||
PROP_USER_TIME,
|
PROP_USER_TIME,
|
||||||
PROP_DEMANDS_ATTENTION,
|
PROP_DEMANDS_ATTENTION,
|
||||||
@ -208,6 +210,12 @@ meta_window_get_property(GObject *object,
|
|||||||
case PROP_FULLSCREEN:
|
case PROP_FULLSCREEN:
|
||||||
g_value_set_boolean (value, win->fullscreen);
|
g_value_set_boolean (value, win->fullscreen);
|
||||||
break;
|
break;
|
||||||
|
case PROP_MAXIMIZED_HORIZONTALLY:
|
||||||
|
g_value_set_boolean (value, win->maximized_horizontally);
|
||||||
|
break;
|
||||||
|
case PROP_MAXIMIZED_VERTICALLY:
|
||||||
|
g_value_set_boolean (value, win->maximized_vertically);
|
||||||
|
break;
|
||||||
case PROP_WINDOW_TYPE:
|
case PROP_WINDOW_TYPE:
|
||||||
g_value_set_enum (value, win->type);
|
g_value_set_enum (value, win->type);
|
||||||
break;
|
break;
|
||||||
@ -277,7 +285,7 @@ meta_window_class_init (MetaWindowClass *klass)
|
|||||||
PROP_DECORATED,
|
PROP_DECORATED,
|
||||||
g_param_spec_boolean ("decorated",
|
g_param_spec_boolean ("decorated",
|
||||||
"Decorated",
|
"Decorated",
|
||||||
"Whether windos is decorated",
|
"Whether window is decorated",
|
||||||
TRUE,
|
TRUE,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
@ -285,7 +293,23 @@ meta_window_class_init (MetaWindowClass *klass)
|
|||||||
PROP_FULLSCREEN,
|
PROP_FULLSCREEN,
|
||||||
g_param_spec_boolean ("fullscreen",
|
g_param_spec_boolean ("fullscreen",
|
||||||
"Fullscreen",
|
"Fullscreen",
|
||||||
"Whether windos is fullscreened",
|
"Whether window is fullscreened",
|
||||||
|
FALSE,
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_MAXIMIZED_HORIZONTALLY,
|
||||||
|
g_param_spec_boolean ("maximized-horizontally",
|
||||||
|
"Maximized horizontally",
|
||||||
|
"Whether window is maximized horizontally",
|
||||||
|
FALSE,
|
||||||
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class,
|
||||||
|
PROP_MAXIMIZED_VERTICALLY,
|
||||||
|
g_param_spec_boolean ("maximized-vertically",
|
||||||
|
"Maximizing vertically",
|
||||||
|
"Whether window is maximized vertically",
|
||||||
FALSE,
|
FALSE,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
|
||||||
@ -3027,6 +3051,11 @@ meta_window_maximize_internal (MetaWindow *window,
|
|||||||
|
|
||||||
recalc_window_features (window);
|
recalc_window_features (window);
|
||||||
set_net_wm_state (window);
|
set_net_wm_state (window);
|
||||||
|
|
||||||
|
g_object_freeze_notify (G_OBJECT (window));
|
||||||
|
g_object_notify (G_OBJECT (window), "maximized-horizontally");
|
||||||
|
g_object_notify (G_OBJECT (window), "maximized-vertically");
|
||||||
|
g_object_thaw_notify (G_OBJECT (window));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -3231,6 +3260,11 @@ meta_window_unmaximize (MetaWindow *window,
|
|||||||
recalc_window_features (window);
|
recalc_window_features (window);
|
||||||
set_net_wm_state (window);
|
set_net_wm_state (window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_object_freeze_notify (G_OBJECT (window));
|
||||||
|
g_object_notify (G_OBJECT (window), "maximized-horizontally");
|
||||||
|
g_object_notify (G_OBJECT (window), "maximized-vertically");
|
||||||
|
g_object_thaw_notify (G_OBJECT (window));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user