mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 17:40:40 -05:00
window: Make border_width private to X11
This commit is contained in:
parent
5b7dff7a57
commit
e215c07439
@ -432,8 +432,6 @@ struct _MetaWindow
|
||||
/* Cached net_wm_icon_geometry */
|
||||
MetaRectangle icon_geometry;
|
||||
|
||||
/* Requested geometry */
|
||||
int border_width;
|
||||
/* x/y/w/h here get filled with ConfigureRequest values */
|
||||
XSizeHints size_hints;
|
||||
|
||||
|
@ -828,8 +828,7 @@ _meta_window_shared_new (MetaDisplay *display,
|
||||
window->rect.width = attrs->width;
|
||||
window->rect.height = attrs->height;
|
||||
|
||||
/* And border width, size_hints are the "request" */
|
||||
window->border_width = attrs->border_width;
|
||||
/* size_hints are the "request" */
|
||||
window->size_hints.x = attrs->x;
|
||||
window->size_hints.y = attrs->y;
|
||||
window->size_hints.width = attrs->width;
|
||||
|
@ -51,6 +51,9 @@ struct _MetaWindowX11Private
|
||||
|
||||
Atom type_atom;
|
||||
|
||||
/* Requested geometry */
|
||||
int border_width;
|
||||
|
||||
MetaResizePopup *grab_resize_popup;
|
||||
};
|
||||
|
||||
|
@ -200,6 +200,8 @@ update_sm_hints (MetaWindow *window)
|
||||
static void
|
||||
send_configure_notify (MetaWindow *window)
|
||||
{
|
||||
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
|
||||
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
|
||||
XEvent event;
|
||||
|
||||
/* from twm */
|
||||
@ -208,8 +210,8 @@ send_configure_notify (MetaWindow *window)
|
||||
event.xconfigure.display = window->display->xdisplay;
|
||||
event.xconfigure.event = window->xwindow;
|
||||
event.xconfigure.window = window->xwindow;
|
||||
event.xconfigure.x = window->rect.x - window->border_width;
|
||||
event.xconfigure.y = window->rect.y - window->border_width;
|
||||
event.xconfigure.x = window->rect.x - priv->border_width;
|
||||
event.xconfigure.y = window->rect.y - priv->border_width;
|
||||
if (window->frame)
|
||||
{
|
||||
if (window->withdrawn)
|
||||
@ -233,7 +235,7 @@ send_configure_notify (MetaWindow *window)
|
||||
}
|
||||
event.xconfigure.width = window->rect.width;
|
||||
event.xconfigure.height = window->rect.height;
|
||||
event.xconfigure.border_width = window->border_width; /* requested not actual */
|
||||
event.xconfigure.border_width = priv->border_width; /* requested not actual */
|
||||
event.xconfigure.above = None; /* FIXME */
|
||||
event.xconfigure.override_redirect = False;
|
||||
|
||||
@ -256,6 +258,8 @@ adjust_for_gravity (MetaWindow *window,
|
||||
int gravity,
|
||||
MetaRectangle *rect)
|
||||
{
|
||||
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
|
||||
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
|
||||
int ref_x, ref_y;
|
||||
int bw;
|
||||
int child_x, child_y;
|
||||
@ -263,7 +267,7 @@ adjust_for_gravity (MetaWindow *window,
|
||||
MetaFrameBorders borders;
|
||||
|
||||
if (coords_assume_border)
|
||||
bw = window->border_width;
|
||||
bw = priv->border_width;
|
||||
else
|
||||
bw = 0;
|
||||
|
||||
@ -550,6 +554,9 @@ meta_window_x11_manage (MetaWindow *window)
|
||||
static void
|
||||
meta_window_x11_unmanage (MetaWindow *window)
|
||||
{
|
||||
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
|
||||
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
|
||||
|
||||
meta_error_trap_push (window->display);
|
||||
|
||||
meta_window_x11_destroy_sync_request_alarm (window);
|
||||
@ -593,10 +600,10 @@ meta_window_x11_unmanage (MetaWindow *window)
|
||||
meta_display_unregister_x_window (window->display, window->xwindow);
|
||||
|
||||
/* Put back anything we messed up */
|
||||
if (window->border_width != 0)
|
||||
if (priv->border_width != 0)
|
||||
XSetWindowBorderWidth (window->display->xdisplay,
|
||||
window->xwindow,
|
||||
window->border_width);
|
||||
priv->border_width);
|
||||
|
||||
/* No save set */
|
||||
XRemoveFromSaveSet (window->display->xdisplay,
|
||||
@ -1157,7 +1164,7 @@ meta_window_x11_move_resize_internal (MetaWindow *window,
|
||||
if (is_configure_request &&
|
||||
!(need_move_client || need_move_frame ||
|
||||
need_resize_client || need_resize_frame ||
|
||||
window->border_width != 0))
|
||||
priv->border_width != 0))
|
||||
need_configure_notify = TRUE;
|
||||
|
||||
/* We must send configure notify if we move but don't resize, since
|
||||
@ -1218,7 +1225,7 @@ meta_window_x11_move_resize_internal (MetaWindow *window,
|
||||
values.height = window->rect.height;
|
||||
|
||||
mask = 0;
|
||||
if (is_configure_request && window->border_width != 0)
|
||||
if (is_configure_request && priv->border_width != 0)
|
||||
mask |= CWBorderWidth; /* must force to 0 */
|
||||
if (need_move_client)
|
||||
mask |= (CWX | CWY);
|
||||
@ -2126,6 +2133,9 @@ gboolean
|
||||
meta_window_x11_configure_request (MetaWindow *window,
|
||||
XEvent *event)
|
||||
{
|
||||
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
|
||||
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
|
||||
|
||||
/* Note that x, y is the corner of the window border,
|
||||
* and width, height is the size of the window inside
|
||||
* its border, but that we always deny border requests
|
||||
@ -2133,7 +2143,7 @@ meta_window_x11_configure_request (MetaWindow *window,
|
||||
* requested border here.
|
||||
*/
|
||||
if (event->xconfigurerequest.value_mask & CWBorderWidth)
|
||||
window->border_width = event->xconfigurerequest.border_width;
|
||||
priv->border_width = event->xconfigurerequest.border_width;
|
||||
|
||||
meta_window_move_resize_request(window,
|
||||
event->xconfigurerequest.value_mask,
|
||||
@ -3069,6 +3079,11 @@ meta_window_x11_new (MetaDisplay *display,
|
||||
effect,
|
||||
&attrs);
|
||||
|
||||
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
|
||||
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
|
||||
|
||||
priv->border_width = attrs.border_width;
|
||||
|
||||
meta_window_grab_keys (window);
|
||||
if (window->type != META_WINDOW_DOCK && !window->override_redirect)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user