Files
mutter/src/wayland/meta-window-wayland.h
Jonas Ådahl 5e6aee6367 tests/runner: Make 'wait_reconfigure' actually wait for a reconfigure
We just made an half assed attempt to wait, but e.g. when clients were
waiting for a frame event, the attempt was not enough, as the clients
would not ack any configure until the time they were scheduled to paint
again.

Fix this by actually tracking newly pending configurations, and waiting
for them to return.

On X11, still be lazy and hope for the best, as there is no similar
configuration tracking there.

Some tests were updated to use just 'wait' when there was no actual need
for any extra waiting.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3701>
2024-05-17 15:33:52 +00:00

84 lines
3.2 KiB
C

/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2014 Red Hat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*
* Written by:
* Jasper St. Pierre <jstpierre@mecheye.net>
*/
#pragma once
#include "core/window-private.h"
#include "meta/window.h"
#include "wayland/meta-wayland-types.h"
G_BEGIN_DECLS
#define META_TYPE_WINDOW_WAYLAND (meta_window_wayland_get_type())
META_EXPORT_TEST
G_DECLARE_FINAL_TYPE (MetaWindowWayland, meta_window_wayland,
META, WINDOW_WAYLAND,
MetaWindow)
MetaWindow * meta_window_wayland_new (MetaDisplay *display,
MetaWaylandSurface *surface);
void meta_window_wayland_finish_move_resize (MetaWindow *window,
MtkRectangle new_geom,
MetaWaylandSurfaceState *pending);
int meta_window_wayland_get_geometry_scale (MetaWindow *window);
void meta_window_place_with_placement_rule (MetaWindow *window,
MetaPlacementRule *placement_rule);
void meta_window_update_placement_rule (MetaWindow *window,
MetaPlacementRule *placement_rule);
META_EXPORT_TEST
MetaWaylandWindowConfiguration *
meta_window_wayland_peek_configuration (MetaWindowWayland *wl_window,
uint32_t serial);
void meta_window_wayland_set_min_size (MetaWindow *window,
int width,
int height);
void meta_window_wayland_set_max_size (MetaWindow *window,
int width,
int height);
void meta_window_wayland_get_min_size (MetaWindow *window,
int *width,
int *height);
void meta_window_wayland_get_max_size (MetaWindow *window,
int *width,
int *height);
gboolean meta_window_wayland_is_resize (MetaWindowWayland *wl_window,
int width,
int height);
META_EXPORT_TEST
gboolean meta_window_wayland_is_acked_fullscreen (MetaWindowWayland *wl_window);
META_EXPORT_TEST
gboolean meta_window_wayland_get_pending_serial (MetaWindowWayland *wl_window,
uint32_t *serial);