diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c18ff6910a98a386626945b4c02f721a961c1071..0f6ec846479032d85a902103839697b9310bd817 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,7 +85,7 @@ variables: - .skip-git-clone variables: FDO_DISTRIBUTION_VERSION: 40 - BASE_TAG: '2024-04-29.0' + BASE_TAG: '2024-05-02.0' MUTTER_USER: 'meta-user' FDO_DISTRIBUTION_PACKAGES: asciidoc @@ -131,7 +131,13 @@ variables: rpm -e --nodeps gnome-bluetooth-libs-devel \ mutter mutter-devel \ - gnome-shell + gnome-shell \ + gtk3 + + # Contains fixes needed for tests not included in 3.24.33 + ./.gitlab-ci/install-meson-project.sh \ + https://gitlab.gnome.org/GNOME/gtk.git \ + gtk-3-24 46fe3224dd771b91e6976d5a632b452e2179a4f0 # Work-around for podman-push aborting on permission issue # https://gitlab.gnome.org/Infrastructure/Infrastructure/-/issues/1247 diff --git a/src/core/window.c b/src/core/window.c index 759e8a7485d4bb000d43c44e3f264968b9808d86..d0126b1b2be20ab5732c188a4eb82b6b0e5e6691 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -3997,9 +3997,6 @@ meta_window_move_resize_internal (MetaWindow *window, meta_stack_update_window_tile_matches (window->display->stack, workspace_manager->active_workspace); - if (flags & META_MOVE_RESIZE_WAYLAND_CLIENT_RESIZE) - meta_window_queue (window, META_QUEUE_MOVE_RESIZE); - /* This is a workaround for #1627. We still don't have any tests that can * reproduce this issue reliably and this is not a proper fix! */ if (flags & META_MOVE_RESIZE_WAYLAND_FINISH_MOVE_RESIZE && diff --git a/src/tests/stacking/client-resize-respect-constraints.metatest b/src/tests/stacking/client-resize-respect-constraints.metatest index 10789395f2b0cbad2d714ba529b0919e4a864b7b..1a66dc8314658e32bbf105e2bfbeb019ed13ea9d 100644 --- a/src/tests/stacking/client-resize-respect-constraints.metatest +++ b/src/tests/stacking/client-resize-respect-constraints.metatest @@ -19,7 +19,7 @@ move w/1 300 200 assert_position w/1 300 200 resize w/1 600 500 -wait_reconfigure +wait_size w/1 600 500 assert_position w/1 200 100 destroy w/1 @@ -38,7 +38,7 @@ move x/1 300 200 assert_position x/1 300 200 resize x/1 600 500 -wait_reconfigure +wait_size x/1 600 500 assert_position x/1 200 100 destroy x/1 diff --git a/src/tests/stacking/restore-size.metatest b/src/tests/stacking/restore-size.metatest index 198cc7a555b41e4c81bae43ad3911b31656c2498..f5942a97fde18ecf9722edeeebcaa1019abcaef9 100644 --- a/src/tests/stacking/restore-size.metatest +++ b/src/tests/stacking/restore-size.metatest @@ -18,8 +18,7 @@ wait assert_size x/1 500 400 resize x/1 300 200 -wait_reconfigure -assert_size x/1 300 200 +wait_size x/1 300 200 maximize x/1 wait_reconfigure unmaximize x/1 diff --git a/src/tests/test-runner.c b/src/tests/test-runner.c index 42871656db878ef5f79d8b6bae9d6ac3efed8ff8..51616076529a853ad04f88cb4892239fd1ade687 100644 --- a/src/tests/test-runner.c +++ b/src/tests/test-runner.c @@ -840,6 +840,35 @@ test_case_do (TestCase *test, if (!test_case_wait (test, error)) return FALSE; } + else if (strcmp (argv[0], "wait_size") == 0) + { + MetaTestClient *client; + const char *window_id; + MetaWindow *window; + int width, height; + + if (argc != 4) + BAD_COMMAND("usage: %s / ", argv[0]); + + if (!test_case_parse_window_id (test, argv[1], &client, &window_id, error)) + return FALSE; + + window = meta_test_client_find_window (client, window_id, error); + + width = atoi (argv[2]); + height = atoi (argv[3]); + + while (TRUE) + { + MtkRectangle rect; + + meta_window_get_frame_rect (window, &rect); + if (rect.width == width && rect.height == height) + break; + + g_main_context_iteration (NULL, TRUE); + } + } else if (strcmp (argv[0], "dispatch") == 0) { if (argc != 1) diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c index 354183106cafa0ea1fd5d90aebe720394b171ca8..bd3e40b91d86e51ce19d0d26300faf2ba8a34e5d 100644 --- a/src/wayland/meta-window-wayland.c +++ b/src/wayland/meta-window-wayland.c @@ -1253,8 +1253,12 @@ meta_window_wayland_finish_move_resize (MetaWindow *window, if (rect.width != window->rect.width || rect.height != window->rect.height) { flags |= META_MOVE_RESIZE_RESIZE_ACTION; + if (is_client_resize) - flags |= META_MOVE_RESIZE_WAYLAND_CLIENT_RESIZE; + { + flags |= META_MOVE_RESIZE_WAYLAND_CLIENT_RESIZE; + flags |= META_MOVE_RESIZE_CONSTRAIN; + } } g_clear_pointer (&wl_window->last_acked_configuration,