Как изменить размер с помощью xdg-shell? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь настроить изменение размера окна xdg_toplevel в RetroArch, но после последнего «else» верхний уровень прерывается

static void handle_toplevel_config(void *data, struct xdg_toplevel *toplevel,
                                   int32_t width, int32_t height, struct wl_array *states)
{
    gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;

    /* TODO: implement resizing */
    printf("Configure event got, width: %d, height: %d\n", width, height);
    wl->fullscreen = false;
    wl->maximized = wl->resize = false;
    enum xdg_toplevel_state *state;
    wl_array_for_each(state, states) {
        switch (*state) {
            case XDG_TOPLEVEL_STATE_FULLSCREEN:
                wl->fullscreen = true;
                break;
            case XDG_TOPLEVEL_STATE_MAXIMIZED:
            printf("Surface state: XDG_SURFACE_STATE_MAXIMIZED\n");
                wl->maximized = true;
                break;
            case XDG_TOPLEVEL_STATE_RESIZING:
            printf("Surface state: XDG_SURFACE_STATE_RESIZING\n");
                wl->resize = true;
                break;
            case XDG_TOPLEVEL_STATE_ACTIVATED:
            printf("Surface state: XDG_SURFACE_STATE_ACTIVATED\n");
                wl->activated = true;
                break;
            }
    }
    if (width > 0 && height > 0) {
        if (!wl->fullscreen) {
            wl->prev_width = width;
            wl->prev_height = height;
            wl->width = width;
            wl->height = height;
        }
    }
    else {
        wl->width = wl->prev_width;
        wl->height = wl->prev_height;
    }

    wl->configured = false;
}

[WARN] [stb] Слишком большой атлас шрифтов: 2457x2457 [ERROR] Failedсоздать рендеринг backend: stb.[INFO] [Font]: Использование рендеринга шрифтов: backmap: bitmap.[WARN] [stb] Слишком большой атлас шрифтов: 2457x2457 [ERROR] Не удалось создать сервер рендеринга: stb.[INFO] [Шрифт]: Использование рендеринга шрифтов: backmap: bitmap.

Без последнего блока else, он работает отлично.

...