mirror of
https://github.com/brl/mutter.git
synced 2025-02-13 11:54:09 +00:00
Revert "frames: Always initialize _MUTTER_FRAME_EXTENTS to zero"
The _MUTTER_FRAME_EXTENTS need to have the correct size before the window is shown, otherwise the client window size will effectively have the headarbar height subtracted when initially syncing the frame/client geometries. This reverts commit f10b3eac62cfaa015984584a12567e6a59869b61. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3628>
This commit is contained in:
parent
c12991936e
commit
9e77d45704
@ -532,6 +532,8 @@ meta_frame_new (Window window)
|
|||||||
GdkDisplay *display;
|
GdkDisplay *display;
|
||||||
GtkWidget *frame, *header, *content;
|
GtkWidget *frame, *header, *content;
|
||||||
GdkSurface *surface;
|
GdkSurface *surface;
|
||||||
|
int frame_height = 0;
|
||||||
|
double scale;
|
||||||
|
|
||||||
frame = g_object_new (META_TYPE_FRAME, NULL);
|
frame = g_object_new (META_TYPE_FRAME, NULL);
|
||||||
|
|
||||||
@ -546,9 +548,21 @@ meta_frame_new (Window window)
|
|||||||
surface = gtk_native_get_surface (GTK_NATIVE (frame));
|
surface = gtk_native_get_surface (GTK_NATIVE (frame));
|
||||||
gdk_x11_surface_set_frame_sync_enabled (surface, TRUE);
|
gdk_x11_surface_set_frame_sync_enabled (surface, TRUE);
|
||||||
|
|
||||||
update_extents (META_FRAME (frame), (GtkBorder) { 0, 0, 0, 0 });
|
|
||||||
|
|
||||||
frame_sync_wm_state (META_FRAME (frame), window);
|
frame_sync_wm_state (META_FRAME (frame), window);
|
||||||
|
|
||||||
|
if (!gtk_window_is_fullscreen (GTK_WINDOW (frame)))
|
||||||
|
{
|
||||||
|
gtk_widget_measure (header,
|
||||||
|
GTK_ORIENTATION_VERTICAL, 1,
|
||||||
|
&frame_height,
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
scale = gdk_surface_get_scale_factor (gtk_native_get_surface (GTK_NATIVE (frame)));
|
||||||
|
|
||||||
|
update_extents (META_FRAME (frame),
|
||||||
|
(GtkBorder) { 0, 0, frame_height * scale, 0 });
|
||||||
|
|
||||||
frame_sync_net_wm_visible_name (GTK_WINDOW (frame), window);
|
frame_sync_net_wm_visible_name (GTK_WINDOW (frame), window);
|
||||||
frame_sync_net_wm_name (GTK_WINDOW (frame), window);
|
frame_sync_net_wm_name (GTK_WINDOW (frame), window);
|
||||||
frame_sync_wm_name (GTK_WINDOW (frame), window);
|
frame_sync_wm_name (GTK_WINDOW (frame), window);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user