mirror of
https://github.com/brl/mutter.git
synced 2025-02-04 07:34:09 +00:00
core: Add a in-tree copy of GtkBorder
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2407>
This commit is contained in:
parent
b0b21e8274
commit
64ee8d02f7
@ -345,7 +345,7 @@ meta_frame_query_borders (MetaFrame *frame,
|
||||
|
||||
if (res == Success && nitems == 4)
|
||||
{
|
||||
borders->invisible = (GtkBorder) {
|
||||
borders->invisible = (MetaFrameBorder) {
|
||||
((long *) data)[0],
|
||||
((long *) data)[1],
|
||||
((long *) data)[2],
|
||||
@ -371,7 +371,7 @@ meta_frame_query_borders (MetaFrame *frame,
|
||||
|
||||
if (res == Success && nitems == 4)
|
||||
{
|
||||
borders->visible = (GtkBorder) {
|
||||
borders->visible = (MetaFrameBorder) {
|
||||
((long *) data)[0],
|
||||
((long *) data)[1],
|
||||
((long *) data)[2],
|
||||
@ -381,7 +381,7 @@ meta_frame_query_borders (MetaFrame *frame,
|
||||
|
||||
g_clear_pointer (&data, XFree);
|
||||
|
||||
borders->total = (GtkBorder) {
|
||||
borders->total = (MetaFrameBorder) {
|
||||
borders->invisible.left + frame->cached_borders.visible.left,
|
||||
borders->invisible.right + frame->cached_borders.visible.right,
|
||||
borders->invisible.top + frame->cached_borders.visible.top,
|
||||
|
@ -278,7 +278,7 @@ struct _MetaWindow
|
||||
Window user_time_window;
|
||||
|
||||
gboolean has_custom_frame_extents;
|
||||
GtkBorder custom_frame_extents;
|
||||
MetaFrameBorder custom_frame_extents;
|
||||
|
||||
/* The rectangles here are in "frame rect" coordinates. See the
|
||||
* comment at the top of meta_window_move_resize_internal() for more
|
||||
|
@ -4354,7 +4354,7 @@ meta_window_client_rect_to_frame_rect (MetaWindow *window,
|
||||
}
|
||||
else
|
||||
{
|
||||
const GtkBorder *extents = &window->custom_frame_extents;
|
||||
const MetaFrameBorder *extents = &window->custom_frame_extents;
|
||||
frame_rect->x += extents->left;
|
||||
frame_rect->y += extents->top;
|
||||
if (frame_rect->width != G_MAXINT)
|
||||
@ -4395,7 +4395,7 @@ meta_window_frame_rect_to_client_rect (MetaWindow *window,
|
||||
}
|
||||
else
|
||||
{
|
||||
const GtkBorder *extents = &window->custom_frame_extents;
|
||||
const MetaFrameBorder *extents = &window->custom_frame_extents;
|
||||
client_rect->x -= extents->left;
|
||||
client_rect->y -= extents->top;
|
||||
client_rect->width += extents->left + extents->right;
|
||||
|
@ -70,6 +70,21 @@ struct _MetaButtonLayout
|
||||
gboolean right_buttons_has_spacer[MAX_BUTTONS_PER_CORNER];
|
||||
};
|
||||
|
||||
/**
|
||||
* MetaFrameBorder:
|
||||
* @left: left border
|
||||
* @right: right border
|
||||
* @top: top border
|
||||
* @bottom: bottom border
|
||||
*/
|
||||
typedef struct _MetaFrameBorder
|
||||
{
|
||||
int16_t left;
|
||||
int16_t right;
|
||||
int16_t top;
|
||||
int16_t bottom;
|
||||
} MetaFrameBorder;
|
||||
|
||||
/**
|
||||
* MetaFrameBorders:
|
||||
* @visible: inner visible portion of frame border
|
||||
@ -82,12 +97,12 @@ struct _MetaFrameBorders
|
||||
/* The frame border is made up of two pieces - an inner visible portion
|
||||
* and an outer portion that is invisible but responds to events.
|
||||
*/
|
||||
GtkBorder visible;
|
||||
GtkBorder invisible;
|
||||
MetaFrameBorder visible;
|
||||
MetaFrameBorder invisible;
|
||||
|
||||
/* For convenience, we have a "total" border which is equal to the sum
|
||||
* of the two borders above. */
|
||||
GtkBorder total;
|
||||
MetaFrameBorder total;
|
||||
};
|
||||
|
||||
/* sets all dimensions to zero */
|
||||
|
@ -1163,7 +1163,7 @@ meta_window_wayland_finish_move_resize (MetaWindow *window,
|
||||
}
|
||||
else
|
||||
{
|
||||
window->custom_frame_extents = (GtkBorder) { 0 };
|
||||
window->custom_frame_extents = (MetaFrameBorder) { 0 };
|
||||
}
|
||||
|
||||
flags = META_MOVE_RESIZE_WAYLAND_FINISH_MOVE_RESIZE;
|
||||
|
@ -347,14 +347,14 @@ reload_icon_geometry (MetaWindow *window,
|
||||
}
|
||||
|
||||
static void
|
||||
meta_window_set_custom_frame_extents (MetaWindow *window,
|
||||
GtkBorder *extents,
|
||||
gboolean is_initial)
|
||||
meta_window_set_custom_frame_extents (MetaWindow *window,
|
||||
MetaFrameBorder *extents,
|
||||
gboolean is_initial)
|
||||
{
|
||||
if (extents)
|
||||
{
|
||||
if (window->has_custom_frame_extents &&
|
||||
memcmp (&window->custom_frame_extents, extents, sizeof (GtkBorder)) == 0)
|
||||
memcmp (&window->custom_frame_extents, extents, sizeof (MetaFrameBorder)) == 0)
|
||||
return;
|
||||
|
||||
window->has_custom_frame_extents = TRUE;
|
||||
@ -397,7 +397,7 @@ reload_gtk_frame_extents (MetaWindow *window,
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkBorder extents;
|
||||
MetaFrameBorder extents;
|
||||
extents.left = (int)value->v.cardinal_list.cardinals[0];
|
||||
extents.right = (int)value->v.cardinal_list.cardinals[1];
|
||||
extents.top = (int)value->v.cardinal_list.cardinals[2];
|
||||
|
Loading…
x
Reference in New Issue
Block a user