mirror of
https://github.com/blender/blender
synced 2026-11-01 03:16:58 +03:00
Initial implementation of client side decorations (CSD) as a replacement for LibDecor integration. The main focus is for basic functionality, drawing is fairly simple. The implementation supports: - Wayland (only). - Hi-DPI & fractional scaling. - Mouse, tablet & touch input. - Blender windows and the animation player. Event handling: - Right click on the title-bar to show the menu. - Double-click on the title-bar to maximize. Details: - Events on the decorations still generate GHOST events, in practice they don't map to a area/region and are only handled as decorations. - Events are ignored by the decorations when the cursor is grabbed. - Existing icons are used for buttons were a close match from the existing icons, we may want to add icons for better control over the buttons look. - The animation player uses CSD as an overlay, showing the decorations on hover over the upper part of the window. Resolves: #144919, #108308, #107797. See design task #113795. Ref !148350
30 lines
549 B
C
30 lines
549 B
C
/* SPDX-FileCopyrightText: 2022 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup intern_wayland_dynload
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <stdbool.h>
|
|
|
|
bool wayland_dynload_client_init(bool verbose);
|
|
void wayland_dynload_client_exit(void);
|
|
|
|
bool wayland_dynload_cursor_init(bool verbose);
|
|
void wayland_dynload_cursor_exit(void);
|
|
|
|
#ifdef WITH_OPENGL_BACKEND
|
|
bool wayland_dynload_egl_init(bool verbose);
|
|
void wayland_dynload_egl_exit(void);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|