Blender
V3.3
|
#include "GHOST_SystemWayland.h"
#include "GHOST_Event.h"
#include "GHOST_EventButton.h"
#include "GHOST_EventCursor.h"
#include "GHOST_EventDragnDrop.h"
#include "GHOST_EventKey.h"
#include "GHOST_EventWheel.h"
#include "GHOST_TimerManager.h"
#include "GHOST_WindowManager.h"
#include "GHOST_utildefines.h"
#include "GHOST_ContextEGL.h"
#include <EGL/egl.h>
#include <wayland-egl.h>
#include <algorithm>
#include <atomic>
#include <stdexcept>
#include <thread>
#include <unordered_map>
#include <unordered_set>
#include <wayland-cursor.h>
#include "GHOST_WaylandCursorSettings.h"
#include <xkbcommon/xkbcommon.h>
#include <pointer-constraints-unstable-v1-client-protocol.h>
#include <relative-pointer-unstable-v1-client-protocol.h>
#include <tablet-unstable-v2-client-protocol.h>
#include <xdg-output-unstable-v1-client-protocol.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <unistd.h>
#include <cstring>
#include <mutex>
#include "CLG_log.h"
Go to the source code of this file.
Classes | |
struct | cursor_t |
struct | tablet_tool_input_t |
struct | data_offer_t |
struct | data_source_t |
struct | key_repeat_payload_t |
struct | input_grab_state_t |
struct | input_state_pointer_t |
struct | input_state_keyboard_t |
struct | input_t |
struct | display_t |
Macros | |
#define | USE_GNOME_CONFINE_HACK |
#define | GXMAP(k, x, y) |
#define | SURFACE_CLEAR_PTR(surface_test) |
Inline Event Codes | |
Selected input event code defines from | |
#define | BTN_LEFT 0x110 |
#define | BTN_RIGHT 0x111 |
#define | BTN_MIDDLE 0x112 |
#define | BTN_SIDE 0x113 |
#define | BTN_EXTRA 0x114 |
#define | BTN_FORWARD 0x115 |
#define | BTN_BACK 0x116 |
#define | BTN_STYLUS 0x14b /* Use as right-mouse. */ |
#define | BTN_STYLUS2 0x14c /* Use as middle-mouse. */ |
#define | BTN_STYLUS3 0x149 |
#define | KEY_GRAVE 41 |
Private Types & Defines | |
#define | EVDEV_OFFSET 8 |
Functions | |
Public WAYLAND Query Access | |
struct output_t * | ghost_wl_output_user_data (struct wl_output *wl_output) |
GHOST_WindowWayland * | ghost_wl_surface_user_data (struct wl_surface *surface) |
Variables | |
static bool | use_gnome_confine_hack = false |
Listener (Registry), #wl_registry_listener | |
#define | LOG (&LOG_WL_RELATIVE_POINTER) |
#define | LOG (&LOG_WL_DATA_SOURCE) |
#define | LOG (&LOG_WL_DATA_OFFER) |
#define | LOG (&LOG_WL_DATA_DEVICE) |
#define | LOG (&LOG_WL_CURSOR_BUFFER) |
#define | LOG (&LOG_WL_CURSOR_SURFACE) |
#define | LOG (&LOG_WL_POINTER) |
#define | LOG (&LOG_WL_TABLET_TOOL) |
#define | LOG (&LOG_WL_TABLET_SEAT) |
#define | LOG (&LOG_WL_KEYBOARD) |
#define | LOG (&LOG_WL_SEAT) |
#define | LOG (&LOG_WL_XDG_OUTPUT) |
#define | LOG (&LOG_WL_OUTPUT) |
#define | LOG (&LOG_WL_XDG_WM_BASE) |
#define | LOG (&LOG_WL_REGISTRY) |
static CLG_LogRef | LOG_WL_REGISTRY = {"ghost.wl.handle.registry"} |
static const struct wl_registry_listener | registry_listener |
static void | global_handle_add (void *data, struct wl_registry *wl_registry, const uint32_t name, const char *interface, const uint32_t version) |
static void | global_handle_remove (void *, struct wl_registry *, const uint32_t name) |
Private Utility Functions | |
static GHOST_WindowManager * | window_manager = nullptr |
static std::mutex | system_selection_mutex |
static const int | default_cursor_size = 24 |
static const std::unordered_map< GHOST_TStandardCursor, const char * > | cursors |
static constexpr const char * | mime_text_plain = "text/plain" |
static constexpr const char * | mime_text_utf8 = "text/plain;charset=utf-8" |
static constexpr const char * | mime_text_uri = "text/uri-list" |
static const std::unordered_map< std::string, GHOST_TDragnDropTypes > | mime_dnd |
static const std::vector< std::string > | mime_preference_order |
static const std::vector< std::string > | mime_send |
static void | ghost_wayland_log_handler (const char *msg, va_list arg) |
static input_state_pointer_t * | input_state_pointer_active (input_t *input) |
static input_state_pointer_t * | input_state_pointer_from_cursor_surface (input_t *input, const wl_surface *wl_surface) |
static void | display_destroy (display_t *d) |
static GHOST_TKey | xkb_map_gkey (const xkb_keysym_t sym) |
static GHOST_TKey | xkb_map_gkey_or_scan_code (const xkb_keysym_t sym, const uint32_t key) |
static GHOST_TTabletMode | tablet_tool_map_type (enum zwp_tablet_tool_v2_type wl_tablet_tool_type) |
static int | memfd_create_sealed (const char *name) |
static size_t | ghost_wl_shm_format_as_size (enum wl_shm_format format) |
static wl_buffer * | ghost_wl_buffer_create_for_image (struct wl_shm *shm, const int32_t size_xy[2], enum wl_shm_format format, void **r_buffer_data, size_t *r_buffer_data_size) |
Listener (Relative Motion), #zwp_relative_pointer_v1_listener | |
These callbacks are registered for Wayland interfaces and called when an event is received from the compositor. | |
static CLG_LogRef | LOG_WL_RELATIVE_POINTER = {"ghost.wl.handle.relative_pointer"} |
static const zwp_relative_pointer_v1_listener | relative_pointer_listener |
static void | relative_pointer_handle_relative_motion_impl (input_t *input, GHOST_WindowWayland *win, const wl_fixed_t xy[2]) |
static void | relative_pointer_handle_relative_motion (void *data, struct zwp_relative_pointer_v1 *, const uint32_t, const uint32_t, const wl_fixed_t dx, const wl_fixed_t dy, const wl_fixed_t, const wl_fixed_t) |
Listener (Data Source), #wl_data_source_listener | |
static CLG_LogRef | LOG_WL_DATA_SOURCE = {"ghost.wl.handle.data_source"} |
static const struct wl_data_source_listener | data_source_listener |
static void | dnd_events (const input_t *const input, const GHOST_TEventType event) |
static std::string | read_pipe (data_offer_t *data_offer, const std::string mime_receive, std::mutex *mutex) |
static void | data_source_handle_target (void *, struct wl_data_source *, const char *) |
static void | data_source_handle_send (void *data, struct wl_data_source *, const char *, const int32_t fd) |
static void | data_source_handle_cancelled (void *, struct wl_data_source *wl_data_source) |
static void | data_source_handle_dnd_drop_performed (void *, struct wl_data_source *) |
static void | data_source_handle_dnd_finished (void *, struct wl_data_source *) |
static void | data_source_handle_action (void *, struct wl_data_source *, const uint32_t dnd_action) |
Listener (Data Offer), #wl_data_offer_listener | |
static CLG_LogRef | LOG_WL_DATA_OFFER = {"ghost.wl.handle.data_offer"} |
static const struct wl_data_offer_listener | data_offer_listener |
static void | data_offer_handle_offer (void *data, struct wl_data_offer *, const char *mime_type) |
static void | data_offer_handle_source_actions (void *data, struct wl_data_offer *, const uint32_t source_actions) |
static void | data_offer_handle_action (void *data, struct wl_data_offer *, const uint32_t dnd_action) |
Listener (Data Device), #wl_data_device_listener | |
static CLG_LogRef | LOG_WL_DATA_DEVICE = {"ghost.wl.handle.data_device"} |
static const struct wl_data_device_listener | data_device_listener |
static void | data_device_handle_data_offer (void *, struct wl_data_device *, struct wl_data_offer *id) |
static void | data_device_handle_enter (void *data, struct wl_data_device *, const uint32_t serial, struct wl_surface *surface, const wl_fixed_t x, const wl_fixed_t y, struct wl_data_offer *id) |
static void | data_device_handle_leave (void *data, struct wl_data_device *) |
static void | data_device_handle_motion (void *data, struct wl_data_device *, const uint32_t, const wl_fixed_t x, const wl_fixed_t y) |
static void | data_device_handle_drop (void *data, struct wl_data_device *) |
static void | data_device_handle_selection (void *data, struct wl_data_device *, struct wl_data_offer *id) |
Listener (Buffer), #wl_buffer_listener | |
static CLG_LogRef | LOG_WL_CURSOR_BUFFER = {"ghost.wl.handle.cursor_buffer"} |
static const struct wl_buffer_listener | cursor_buffer_listener |
static void | cursor_buffer_handle_release (void *data, struct wl_buffer *wl_buffer) |
Listener (Surface), #wl_surface_listener | |
static CLG_LogRef | LOG_WL_CURSOR_SURFACE = {"ghost.wl.handle.cursor_surface"} |
static const struct wl_surface_listener | cursor_surface_listener |
static bool | update_cursor_scale (cursor_t &cursor, wl_shm *shm, input_state_pointer_t *input_state, wl_surface *cursor_surface) |
static void | cursor_surface_handle_enter (void *data, struct wl_surface *wl_surface, struct wl_output *output) |
static void | cursor_surface_handle_leave (void *data, struct wl_surface *wl_surface, struct wl_output *output) |
Listener (Pointer), #wl_pointer_listener | |
static CLG_LogRef | LOG_WL_POINTER = {"ghost.wl.handle.pointer"} |
static const struct wl_pointer_listener | pointer_listener |
static void | pointer_handle_enter (void *data, struct wl_pointer *, const uint32_t serial, struct wl_surface *surface, const wl_fixed_t surface_x, const wl_fixed_t surface_y) |
static void | pointer_handle_leave (void *data, struct wl_pointer *, const uint32_t, struct wl_surface *surface) |
static void | pointer_handle_motion (void *data, struct wl_pointer *, const uint32_t, const wl_fixed_t surface_x, const wl_fixed_t surface_y) |
static void | pointer_handle_button (void *data, struct wl_pointer *, const uint32_t serial, const uint32_t, const uint32_t button, const uint32_t state) |
static void | pointer_handle_axis (void *, struct wl_pointer *, const uint32_t, const uint32_t axis, const wl_fixed_t value) |
static void | pointer_handle_frame (void *, struct wl_pointer *) |
static void | pointer_handle_axis_source (void *, struct wl_pointer *, uint32_t axis_source) |
static void | pointer_handle_axis_stop (void *, struct wl_pointer *, uint32_t, uint32_t axis) |
static void | pointer_handle_axis_discrete (void *data, struct wl_pointer *, uint32_t axis, int32_t discrete) |
Listener (Tablet Tool), #zwp_tablet_tool_v2_listener | |
static CLG_LogRef | LOG_WL_TABLET_TOOL = {"ghost.wl.handle.tablet_tool"} |
static const struct zwp_tablet_tool_v2_listener | tablet_tool_listner |
static void | tablet_tool_handle_type (void *data, struct zwp_tablet_tool_v2 *, const uint32_t tool_type) |
static void | tablet_tool_handle_hardware_serial (void *, struct zwp_tablet_tool_v2 *, const uint32_t, const uint32_t) |
static void | tablet_tool_handle_hardware_id_wacom (void *, struct zwp_tablet_tool_v2 *, const uint32_t, const uint32_t) |
static void | tablet_tool_handle_capability (void *, struct zwp_tablet_tool_v2 *, const uint32_t capability) |
static void | tablet_tool_handle_done (void *, struct zwp_tablet_tool_v2 *) |
static void | tablet_tool_handle_removed (void *data, struct zwp_tablet_tool_v2 *zwp_tablet_tool_v2) |
static void | tablet_tool_handle_proximity_in (void *data, struct zwp_tablet_tool_v2 *, const uint32_t serial, struct zwp_tablet_v2 *, struct wl_surface *surface) |
static void | tablet_tool_handle_proximity_out (void *data, struct zwp_tablet_tool_v2 *) |
static void | tablet_tool_handle_down (void *data, struct zwp_tablet_tool_v2 *, const uint32_t serial) |
static void | tablet_tool_handle_up (void *data, struct zwp_tablet_tool_v2 *) |
static void | tablet_tool_handle_motion (void *data, struct zwp_tablet_tool_v2 *, const wl_fixed_t x, const wl_fixed_t y) |
static void | tablet_tool_handle_pressure (void *data, struct zwp_tablet_tool_v2 *, const uint32_t pressure) |
static void | tablet_tool_handle_distance (void *, struct zwp_tablet_tool_v2 *, const uint32_t distance) |
static void | tablet_tool_handle_tilt (void *data, struct zwp_tablet_tool_v2 *, const wl_fixed_t tilt_x, const wl_fixed_t tilt_y) |
static void | tablet_tool_handle_rotation (void *, struct zwp_tablet_tool_v2 *, const wl_fixed_t degrees) |
static void | tablet_tool_handle_slider (void *, struct zwp_tablet_tool_v2 *, const int32_t position) |
static void | tablet_tool_handle_wheel (void *data, struct zwp_tablet_tool_v2 *, const wl_fixed_t, const int32_t clicks) |
static void | tablet_tool_handle_button (void *data, struct zwp_tablet_tool_v2 *, const uint32_t serial, const uint32_t button, const uint32_t state) |
static void | tablet_tool_handle_frame (void *data, struct zwp_tablet_tool_v2 *, const uint32_t) |
Listener (Table Seat), #zwp_tablet_seat_v2_listener | |
static CLG_LogRef | LOG_WL_TABLET_SEAT = {"ghost.wl.handle.tablet_seat"} |
static const struct zwp_tablet_seat_v2_listener | tablet_seat_listener |
static void | tablet_seat_handle_tablet_added (void *, struct zwp_tablet_seat_v2 *, struct zwp_tablet_v2 *id) |
static void | tablet_seat_handle_tool_added (void *data, struct zwp_tablet_seat_v2 *, struct zwp_tablet_tool_v2 *id) |
static void | tablet_seat_handle_pad_added (void *, struct zwp_tablet_seat_v2 *, struct zwp_tablet_pad_v2 *id) |
Listener (Keyboard), #wl_keyboard_listener | |
static CLG_LogRef | LOG_WL_KEYBOARD = {"ghost.wl.handle.keyboard"} |
static const struct wl_keyboard_listener | keyboard_listener |
static void | keyboard_handle_key_repeat_cancel (struct input_t *input) |
static void | keyboard_handle_keymap (void *data, struct wl_keyboard *, const uint32_t format, const int32_t fd, const uint32_t size) |
static void | keyboard_handle_enter (void *data, struct wl_keyboard *, const uint32_t serial, struct wl_surface *surface, struct wl_array *) |
static void | keyboard_handle_leave (void *data, struct wl_keyboard *, const uint32_t, struct wl_surface *surface) |
static xkb_keysym_t | xkb_state_key_get_one_sym_without_modifiers (struct xkb_state *xkb_state_empty, struct xkb_state *xkb_state_empty_with_numlock, const xkb_keycode_t key) |
static void | keyboard_handle_key_repeat_reset (input_t *input, const bool use_delay) |
static void | keyboard_handle_key (void *data, struct wl_keyboard *, const uint32_t serial, const uint32_t, const uint32_t key, const uint32_t state) |
static void | keyboard_handle_modifiers (void *data, struct wl_keyboard *, const uint32_t, const uint32_t mods_depressed, const uint32_t mods_latched, const uint32_t mods_locked, const uint32_t group) |
static void | keyboard_repeat_handle_info (void *data, struct wl_keyboard *, const int32_t rate, const int32_t delay) |
Listener (Seat), #wl_seat_listener | |
static CLG_LogRef | LOG_WL_SEAT = {"ghost.wl.handle.seat"} |
static const struct wl_seat_listener | seat_listener |
static void | seat_handle_capabilities (void *data, struct wl_seat *wl_seat, const uint32_t capabilities) |
static void | seat_handle_name (void *data, struct wl_seat *, const char *name) |
Listener (XDG Output), #zxdg_output_v1_listener | |
static CLG_LogRef | LOG_WL_XDG_OUTPUT = {"ghost.wl.handle.xdg_output"} |
static const struct zxdg_output_v1_listener | xdg_output_listener |
static void | xdg_output_handle_logical_position (void *data, struct zxdg_output_v1 *, const int32_t x, const int32_t y) |
static void | xdg_output_handle_logical_size (void *data, struct zxdg_output_v1 *, const int32_t width, const int32_t height) |
static void | xdg_output_handle_done (void *data, struct zxdg_output_v1 *) |
static void | xdg_output_handle_name (void *, struct zxdg_output_v1 *, const char *name) |
static void | xdg_output_handle_description (void *, struct zxdg_output_v1 *, const char *description) |
Listener (Output), #wl_output_listener | |
static CLG_LogRef | LOG_WL_OUTPUT = {"ghost.wl.handle.output"} |
static const struct wl_output_listener | output_listener |
static void | output_handle_done (void *data, struct wl_output *wl_output) |
static void | output_handle_geometry (void *data, struct wl_output *, const int32_t, const int32_t, const int32_t physical_width, const int32_t physical_height, const int32_t, const char *make, const char *model, const int32_t transform) |
static void | output_handle_mode (void *data, struct wl_output *, const uint32_t flags, const int32_t width, const int32_t height, const int32_t) |
static void | output_handle_scale (void *data, struct wl_output *, const int32_t factor) |
Listener (XDG WM Base), #xdg_wm_base_listener | |
static CLG_LogRef | LOG_WL_XDG_WM_BASE = {"ghost.wl.handle.output"} |
static const struct xdg_wm_base_listener | shell_listener |
static void | shell_handle_ping (void *, struct xdg_wm_base *xdg_wm_base, const uint32_t serial) |
Public WAYLAND Proxy Ownership API | |
static const char * | ghost_wl_output_tag_id = "GHOST-output" |
static const char * | ghost_wl_surface_tag_id = "GHOST-window" |
static const char * | ghost_wl_surface_cursor_pointer_tag_id = "GHOST-cursor-pointer" |
static const char * | ghost_wl_surface_cursor_tablet_tag_id = "GHOST-cursor-tablet" |
bool | ghost_wl_output_own (const struct wl_output *output) |
bool | ghost_wl_surface_own (const struct wl_surface *surface) |
bool | ghost_wl_surface_own_cursor_pointer (const struct wl_surface *surface) |
bool | ghost_wl_surface_own_cursor_tablet (const struct wl_surface *surface) |
void | ghost_wl_output_tag (struct wl_output *output) |
void | ghost_wl_surface_tag (struct wl_surface *surface) |
void | ghost_wl_surface_tag_cursor_pointer (struct wl_surface *surface) |
void | ghost_wl_surface_tag_cursor_tablet (struct wl_surface *surface) |
#define BTN_BACK 0x116 |
Definition at line 103 of file GHOST_SystemWayland.cpp.
#define BTN_EXTRA 0x114 |
Definition at line 101 of file GHOST_SystemWayland.cpp.
#define BTN_FORWARD 0x115 |
Definition at line 102 of file GHOST_SystemWayland.cpp.
#define BTN_LEFT 0x110 |
The event codes are used to to differentiate from which mouse button an event comes from.
Definition at line 97 of file GHOST_SystemWayland.cpp.
#define BTN_MIDDLE 0x112 |
Definition at line 99 of file GHOST_SystemWayland.cpp.
#define BTN_RIGHT 0x111 |
Definition at line 98 of file GHOST_SystemWayland.cpp.
#define BTN_SIDE 0x113 |
Definition at line 100 of file GHOST_SystemWayland.cpp.
Tablet events.
Definition at line 109 of file GHOST_SystemWayland.cpp.
#define BTN_STYLUS2 0x14c /* Use as middle-mouse. */ |
Definition at line 110 of file GHOST_SystemWayland.cpp.
#define BTN_STYLUS3 0x149 |
Definition at line 112 of file GHOST_SystemWayland.cpp.
#define EVDEV_OFFSET 8 |
From XKB internals, use for converting a scan-code from WAYLAND to a #xkb_keycode_t. Ideally this wouldn't need a local define.
Definition at line 129 of file GHOST_SystemWayland.cpp.
#define KEY_GRAVE 41 |
Keyboard scan-codes.
Definition at line 117 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_RELATIVE_POINTER) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_DATA_SOURCE) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_DATA_OFFER) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_DATA_DEVICE) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_CURSOR_BUFFER) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_CURSOR_SURFACE) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_POINTER) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_TABLET_TOOL) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_TABLET_SEAT) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_KEYBOARD) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_SEAT) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_XDG_OUTPUT) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_OUTPUT) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_XDG_WM_BASE) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define LOG (&LOG_WL_REGISTRY) |
Definition at line 2716 of file GHOST_SystemWayland.cpp.
#define SURFACE_CLEAR_PTR | ( | surface_test | ) |
#define USE_GNOME_CONFINE_HACK |
GNOME (mutter 42.2 had a bug with confine not respecting scale - Hi-DPI), See: T98793. Even though this has been fixed, at time of writing it's not yet in a release. Workaround the problem by implementing confine with a software cursor. While this isn't ideal, it's not adding a lot of overhead as software cursors are already used for warping (which WAYLAND doesn't support).
Definition at line 74 of file GHOST_SystemWayland.cpp.
enum eCursorSetMode |
Enumerator | |
---|---|
CURSOR_VISIBLE_ALWAYS_SET | |
CURSOR_VISIBLE_ONLY_HIDE | |
CURSOR_VISIBLE_ONLY_SHOW |
Definition at line 3391 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 3142 of file GHOST_SystemWayland.cpp.
References blender::compositor::context, GHOST_OPENGL_EGL_CONTEXT_FLAGS, and GHOST_OPENGL_EGL_RESET_NOTIFICATION_STRATEGY.
Referenced by GHOST_SystemWayland::createOffscreenContext().
|
static |
Needed to ensure the cursor size is always a multiple of scale.
Definition at line 3320 of file GHOST_SystemWayland.cpp.
Referenced by cursor_buffer_set().
Definition at line 1348 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, LOG, and cursor_t::wl_buffer.
Hide the buffer defined by cursor_buffer_set without changing anything else, so cursor_buffer_show can be used to display it again.
The caller is responsible for setting input->cursor.visible
.
Definition at line 3309 of file GHOST_SystemWayland.cpp.
References input.
Referenced by cursor_visible_set().
Definition at line 3351 of file GHOST_SystemWayland.cpp.
References buffer, Freestyle::c, cursor_buffer_compatible_scale_from_image(), cursor_buffer_set_surface_impl(), tablet_tool_input_t::cursor_surface, and input.
Referenced by GHOST_SystemWayland::setCursorShape(), and GHOST_SystemWayland::setCustomCursorShape().
|
static |
Definition at line 3334 of file GHOST_SystemWayland.cpp.
References buffer, GHOST_ASSERT, and input.
Referenced by cursor_buffer_set().
Show the buffer defined by cursor_buffer_set without changing anything else, so cursor_buffer_hide can be used to display it again.
The caller is responsible for setting input->cursor.visible
.
Definition at line 3273 of file GHOST_SystemWayland.cpp.
References Freestyle::c, tablet_tool_input_t::cursor_surface, and input.
Referenced by cursor_visible_set().
|
static |
Definition at line 3434 of file GHOST_SystemWayland.cpp.
References GHOST_kGrabNormal, GHOST_kGrabWrap, and void.
Referenced by GHOST_SystemWayland::getCursorGrabUseSoftwareDisplay(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 1400 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_output_own(), ghost_wl_output_user_data(), input, input_state_pointer_from_cursor_surface(), LOG, output, input_state_pointer_t::outputs, and update_cursor_scale().
|
static |
Definition at line 1417 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_output_own(), ghost_wl_output_user_data(), input, input_state_pointer_from_cursor_surface(), LOG, output, input_state_pointer_t::outputs, and update_cursor_scale().
|
static |
Definition at line 3397 of file GHOST_SystemWayland.cpp.
References cursor_buffer_hide(), cursor_buffer_show(), CURSOR_VISIBLE_ALWAYS_SET, CURSOR_VISIBLE_ONLY_HIDE, CURSOR_VISIBLE_ONLY_SHOW, input, cursor_t::is_hardware, and cursor_t::visible.
Referenced by GHOST_SystemWayland::setCursorVisibility(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 1113 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data_offer_listener, data_offer_t::id, id, and LOG.
Definition at line 1195 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, GHOST_TStringArray::count, data, GHOST_SystemWayland::display(), data_offer_t::dnd, ELEM, GHOST_System::getMilliSeconds(), GHOST_kDragnDropTypeFilenames, GHOST_kEventDraggingDropDone, ghost_wl_surface_user_data(), data_offer_t::id, input, lock, LOG, mime_preference_order, mime_text_plain, mime_text_uri, mime_text_utf8, pos, GHOST_System::pushEvent(), read_pipe(), GHOST_WindowWayland::scale(), size(), GHOST_TStringArray::strings, surface, data_offer_t::types, UNPACK2, wl_display_roundtrip, data_offer_t::xy, and xy.
|
static |
Definition at line 1124 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, data_offer_t::dnd, dnd_events(), GHOST_kEventDraggingEntered, ghost_wl_surface_own(), data_offer_t::in_use, input, lock, LOG, mime_preference_order, surface, type, x, data_offer_t::xy, and y.
Definition at line 1161 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, dnd_events(), GHOST_kEventDraggingExited, input, lock, and LOG.
|
static |
Definition at line 1178 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, dnd_events(), GHOST_kEventDraggingUpdated, input, lock, LOG, x, and y.
|
static |
Definition at line 1276 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, data_offer_t::id, input, lock, LOG, mime_text_plain, mime_text_utf8, read_pipe(), GHOST_SystemWayland::selection_set(), system_selection_mutex, type, and data_offer_t::types.
|
static |
Definition at line 1088 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1080 of file GHOST_SystemWayland.cpp.
|
static |
Notify the selected action.
This event indicates the action selected by the compositor after matching the source/destination side actions. Only one action (or none) will be offered here.
Definition at line 1045 of file GHOST_SystemWayland.cpp.
Definition at line 1006 of file GHOST_SystemWayland.cpp.
The drag-and-drop operation physically finished.
The user performed the drop action. This event does not indicate acceptance, #wl_data_source.cancelled may still be emitted afterwards if the drop destination does not accept any mime type.
Definition at line 1019 of file GHOST_SystemWayland.cpp.
The drag-and-drop operation concluded.
The drop destination finished interoperating with this data source, so the client is now free to destroy this data source and free all associated data.
Definition at line 1032 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 989 of file GHOST_SystemWayland.cpp.
References buffer, CLOG_INFO, data, GHOST_PRINT, input, lock, and LOG.
A target accepts an offered mime type.
Sent when a target accepts pointer_focus or motion events. If a target does not accept any of the offered types, type is nullptr.
Definition at line 982 of file GHOST_SystemWayland.cpp.
Definition at line 414 of file GHOST_SystemWayland.cpp.
References free(), input, keyboard_handle_key_repeat_cancel(), libdecor_unref, lock, output, wl_cursor_theme_destroy, and wl_display_disconnect.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), and GHOST_SystemWayland::~GHOST_SystemWayland().
|
static |
Definition at line 928 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_user_data(), input, mime_dnd, mime_preference_order, GHOST_WindowWayland::scale(), time, type, and UNPACK2.
Referenced by data_device_handle_enter(), data_device_handle_leave(), and data_device_handle_motion().
|
static |
Definition at line 3014 of file GHOST_SystemWayland.cpp.
References GHOST_kSuccess, GHOST_WindowWayland::scale(), x, input_state_pointer_t::xy, and y.
Referenced by GHOST_SystemWayland::getCursorPosition(), and GHOST_SystemWayland::getCursorPositionClientRelative().
|
static |
Callback for WAYLAND to run when there is an error.
Definition at line 379 of file GHOST_SystemWayland.cpp.
References GHOST_ISystem::getBacktraceFn().
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Return a #wl_buffer, ready to have it's data filled in or NULL in case of failure. The caller is responsible for calling unmap(buffer_data, buffer_size)
.
r_buffer_data | The buffer to be filled. |
r_buffer_data_size | The size of r_buffer_data in bytes. |
Definition at line 808 of file GHOST_SystemWayland.cpp.
References buffer, ghost_wl_shm_format_as_size(), memfd_create_sealed(), blender::compositor::pool, and UNPACK2.
Referenced by GHOST_SystemWayland::setCustomCursorShape().
bool ghost_wl_output_own | ( | const struct wl_output * | output | ) |
Definition at line 3689 of file GHOST_SystemWayland.cpp.
References ghost_wl_output_tag_id, output, and wl_proxy_get_tag.
Referenced by cursor_surface_handle_enter(), cursor_surface_handle_leave(), ghost_wl_output_user_data(), surface_handle_enter(), and surface_handle_leave().
void ghost_wl_output_tag | ( | struct wl_output * | output | ) |
Definition at line 3709 of file GHOST_SystemWayland.cpp.
References ghost_wl_output_tag_id, output, and wl_proxy_set_tag.
Referenced by global_handle_add().
struct output_t* ghost_wl_output_user_data | ( | struct wl_output * | wl_output | ) |
Definition at line 3784 of file GHOST_SystemWayland.cpp.
References GHOST_ASSERT, ghost_wl_output_own(), output, and output_t::wl_output.
Referenced by cursor_surface_handle_enter(), cursor_surface_handle_leave(), surface_handle_enter(), and surface_handle_leave().
|
static |
Definition at line 787 of file GHOST_SystemWayland.cpp.
References GHOST_ASSERT.
Referenced by ghost_wl_buffer_create_for_image().
bool ghost_wl_surface_own | ( | const struct wl_surface * | surface | ) |
Definition at line 3694 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_tag_id, surface, and wl_proxy_get_tag.
Referenced by data_device_handle_enter(), ghost_wl_surface_user_data(), keyboard_handle_enter(), keyboard_handle_leave(), pointer_handle_enter(), pointer_handle_leave(), and tablet_tool_handle_proximity_in().
bool ghost_wl_surface_own_cursor_pointer | ( | const struct wl_surface * | surface | ) |
Definition at line 3699 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_cursor_pointer_tag_id, surface, and wl_proxy_get_tag.
Referenced by input_state_pointer_from_cursor_surface().
bool ghost_wl_surface_own_cursor_tablet | ( | const struct wl_surface * | surface | ) |
Definition at line 3704 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_cursor_tablet_tag_id, surface, and wl_proxy_get_tag.
Referenced by input_state_pointer_from_cursor_surface().
void ghost_wl_surface_tag | ( | struct wl_surface * | surface | ) |
Definition at line 3714 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_tag_id, surface, and wl_proxy_set_tag.
Referenced by GHOST_WindowWayland::GHOST_WindowWayland().
void ghost_wl_surface_tag_cursor_pointer | ( | struct wl_surface * | surface | ) |
Definition at line 3719 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_cursor_pointer_tag_id, surface, and wl_proxy_set_tag.
Referenced by seat_handle_capabilities().
void ghost_wl_surface_tag_cursor_tablet | ( | struct wl_surface * | surface | ) |
Definition at line 3724 of file GHOST_SystemWayland.cpp.
References ghost_wl_surface_cursor_tablet_tag_id, surface, and wl_proxy_set_tag.
Referenced by tablet_seat_handle_tool_added().
GHOST_WindowWayland* ghost_wl_surface_user_data | ( | struct wl_surface * | surface | ) |
Definition at line 3792 of file GHOST_SystemWayland.cpp.
References GHOST_ASSERT, ghost_wl_surface_own(), and surface.
Referenced by data_device_handle_drop(), dnd_events(), GHOST_SystemWayland::getCursorPosition(), keyboard_handle_key(), pointer_handle_axis_discrete(), pointer_handle_button(), pointer_handle_enter(), pointer_handle_leave(), pointer_handle_motion(), relative_pointer_handle_relative_motion(), setCursorGrab_use_software_confine(), GHOST_SystemWayland::setCursorPosition(), tablet_tool_handle_button(), tablet_tool_handle_down(), tablet_tool_handle_frame(), tablet_tool_handle_proximity_in(), tablet_tool_handle_up(), tablet_tool_handle_wheel(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 2718 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, display_t::display, ghost_wl_output_tag(), input, LOG, output, output_listener, seat_listener, shell_listener, and xdg_output_listener.
Announce removal of global object.
Notify the client of removed global objects.
This event notifies the client that the global identified by name is no longer available. If the client bound to the global using the bind request, the client should now destroy that object.
Definition at line 2822 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 3666 of file GHOST_SystemWayland.cpp.
References ELEM, GHOST_kGrabHide, GHOST_kGrabNormal, GHOST_kGrabWrap, and input_grab_state_t::use_lock.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 390 of file GHOST_SystemWayland.cpp.
References input.
Referenced by GHOST_SystemWayland::getButtons(), GHOST_SystemWayland::getCursorPosition(), and GHOST_SystemWayland::getCursorPositionClientRelative().
|
static |
Definition at line 401 of file GHOST_SystemWayland.cpp.
References GHOST_ASSERT, ghost_wl_surface_own_cursor_pointer(), ghost_wl_surface_own_cursor_tablet(), and input.
Referenced by cursor_surface_handle_enter(), and cursor_surface_handle_leave().
|
static |
Enter event.
Notification that this seat's keyboard focus is on a certain surface.
Definition at line 2098 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_surface_own(), input, LOG, and surface.
|
static |
Definition at line 2197 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, EVDEV_OFFSET, GHOST_System::getMilliSeconds(), GHOST_kEventKeyDown, GHOST_kEventKeyUp, GHOST_kEventUnknown, ghost_wl_surface_user_data(), key_repeat_payload_t::gkey, input, key_repeat_payload_t::input, key_repeat_payload_t::key_code, key_repeat_payload_t::key_data, LOG, GHOST_System::pushEvent(), state, blender::meshintersect::sym(), blender::compositor::task, GHOST_TEventKeyData::utf8_buf, xkb_map_gkey_or_scan_code(), and xkb_state_key_get_one_sym_without_modifiers().
Definition at line 2171 of file GHOST_SystemWayland.cpp.
References GHOST_ASSERT, and input.
Referenced by display_destroy(), and keyboard_handle_leave().
Restart the key-repeat timer.
use_delay | When false, use the interval (prevents pause when the setting changes while the key is held). |
Definition at line 2184 of file GHOST_SystemWayland.cpp.
References GHOST_ITimerTask::getTimerProc(), GHOST_ASSERT, input, and GHOST_System::installTimer().
Referenced by keyboard_handle_modifiers().
|
static |
Leave event.
Notification that this seat's keyboard focus is no longer on a certain surface.
Definition at line 2121 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_surface_own(), input, keyboard_handle_key_repeat_cancel(), LOG, and surface.
|
static |
Definition at line 2331 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, input, keyboard_handle_key_repeat_reset(), and LOG.
|
static |
Definition at line 2351 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 762 of file GHOST_SystemWayland.cpp.
References free().
Referenced by ghost_wl_buffer_create_for_image().
Sent all information about output.
This event is sent after all other properties have been sent after binding to the output object and after any other property changes done after that. This allows changes to the output properties to be seen as atomic, even if they happen via multiple events.
Definition at line 2598 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, GHOST_ASSERT, LOG, and output.
Referenced by xdg_output_handle_done().
|
static |
Definition at line 2537 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, LOG, make(), output, and transform().
Definition at line 2627 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, GHOST_WindowManager::getWindows(), LOG, GHOST_WindowWayland::outputs_changed_update_scale(), and window_manager.
|
static |
Definition at line 1583 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1609 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_surface_user_data(), input, and LOG.
|
static |
Definition at line 1596 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1602 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1528 of file GHOST_SystemWayland.cpp.
References BTN_BACK, BTN_EXTRA, BTN_FORWARD, BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, BTN_SIDE, CLOG_INFO, data, GHOST_kButtonMaskButton4, GHOST_kButtonMaskButton5, GHOST_kButtonMaskButton6, GHOST_kButtonMaskButton7, GHOST_kButtonMaskLeft, GHOST_kButtonMaskMiddle, GHOST_kButtonMaskRight, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventUnknown, GHOST_TABLET_DATA_NONE, ghost_wl_surface_user_data(), input, LOG, and state.
|
static |
Definition at line 1450 of file GHOST_SystemWayland.cpp.
References GHOST_WindowWayland::activate(), CLOG_INFO, data, GHOST_Window::getCursorShape(), GHOST_kEventCursorMove, GHOST_TABLET_DATA_NONE, ghost_wl_surface_own(), ghost_wl_surface_user_data(), input, LOG, GHOST_WindowWayland::scale(), GHOST_Window::setCursorShape(), and surface.
Definition at line 1592 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1485 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, GHOST_WindowWayland::deactivate(), ghost_wl_surface_own(), ghost_wl_surface_user_data(), if(), LOG, and surface.
|
static |
Definition at line 1502 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, GHOST_kEventCursorMove, GHOST_TABLET_DATA_NONE, ghost_wl_surface_user_data(), input, LOG, and GHOST_WindowWayland::scale().
|
static |
Definition at line 947 of file GHOST_SystemWayland.cpp.
References buffer, data, data_offer_t::id, data_offer_t::in_use, len, mutex, and UNLIKELY.
Referenced by data_device_handle_drop(), and data_device_handle_selection().
|
static |
Definition at line 887 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_surface_user_data(), input, LOG, relative_pointer_handle_relative_motion_impl(), and GHOST_WindowWayland::scale().
|
static |
The caller is responsible for setting the value of input->xy
.
Definition at line 855 of file GHOST_SystemWayland.cpp.
References bounds(), GHOST_WindowWayland::getClientBounds(), GHOST_kEventCursorMove, GHOST_TABLET_DATA_NONE, input, GHOST_WindowWayland::scale(), UNPACK2, and xy.
Referenced by relative_pointer_handle_relative_motion(), and setCursorPositionClientRelative_impl().
|
static |
Definition at line 2388 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, cursor_surface_listener, data, default_cursor_size, get_cursor_settings(), ghost_wl_surface_tag_cursor_pointer(), input, keyboard_listener, LOG, and pointer_listener.
Definition at line 2424 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 3641 of file GHOST_SystemWayland.cpp.
References GHOST_kGrabNormal, ghost_wl_surface_user_data(), GHOST_WindowWayland::scale(), surface, and use_gnome_confine_hack.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 3026 of file GHOST_SystemWayland.cpp.
References GHOST_kFailure, GHOST_kSuccess, input, relative_pointer_handle_relative_motion_impl(), GHOST_WindowWayland::scale(), x, and y.
Referenced by GHOST_SystemWayland::setCursorPosition(), and GHOST_SystemWayland::setCursorPositionClientRelative().
|
static |
Definition at line 2662 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2013 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1985 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1992 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, tablet_tool_input_t::cursor_surface, cursor_surface_listener, data, ghost_wl_surface_tag_cursor_tablet(), input, tablet_tool_input_t::input, LOG, and tablet_tool_listner.
|
static |
Definition at line 1880 of file GHOST_SystemWayland.cpp.
References BTN_STYLUS, BTN_STYLUS2, BTN_STYLUS3, CLOG_INFO, tablet_tool_input_t::data, data, GHOST_kButtonMaskButton4, GHOST_kButtonMaskLeft, GHOST_kButtonMaskMiddle, GHOST_kButtonMaskRight, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventUnknown, ghost_wl_surface_user_data(), input, tablet_tool_input_t::input, LOG, and state.
|
static |
Definition at line 1679 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1824 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, blender::math::distance(), and LOG.
Definition at line 1693 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1758 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, tablet_tool_input_t::data, data, GHOST_kButtonMaskLeft, GHOST_kEventButtonDown, ghost_wl_surface_user_data(), input, tablet_tool_input_t::input, and LOG.
|
static |
Definition at line 1923 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, tablet_tool_input_t::data, data, GHOST_Window::getCursorShape(), GHOST_kEventCursorMove, ghost_wl_surface_user_data(), input, tablet_tool_input_t::input, LOG, tablet_tool_input_t::proximity, GHOST_WindowWayland::scale(), and GHOST_Window::setCursorShape().
|
static |
Definition at line 1670 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1662 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1797 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, input, tablet_tool_input_t::input, LOG, x, and y.
|
static |
Definition at line 1813 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, tablet_tool_input_t::data, data, float(), LOG, and GHOST_TabletData::Pressure.
|
static |
Definition at line 1712 of file GHOST_SystemWayland.cpp.
References GHOST_WindowWayland::activate(), CLOG_INFO, tablet_tool_input_t::data, data, GHOST_Window::getCursorShape(), ghost_wl_surface_own(), ghost_wl_surface_user_data(), input, tablet_tool_input_t::input, LOG, GHOST_TabletData::Pressure, tablet_tool_input_t::proximity, GHOST_Window::setCursorShape(), surface, GHOST_TabletData::Xtilt, and GHOST_TabletData::Ytilt.
Definition at line 1748 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, LOG, and tablet_tool_input_t::proximity.
|
static |
Definition at line 1698 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, tablet_tool_input_t::cursor_surface, data, input, tablet_tool_input_t::input, and LOG.
|
static |
Definition at line 1850 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1857 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1831 of file GHOST_SystemWayland.cpp.
References CLAMP, CLOG_INFO, tablet_tool_input_t::data, data, float(), LOG, UNPACK2, GHOST_TabletData::Xtilt, and GHOST_TabletData::Ytilt.
|
static |
Definition at line 1651 of file GHOST_SystemWayland.cpp.
References GHOST_TabletData::Active, CLOG_INFO, tablet_tool_input_t::data, data, LOG, and tablet_tool_map_type().
Definition at line 1779 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, tablet_tool_input_t::data, data, GHOST_kButtonMaskLeft, GHOST_kEventButtonUp, ghost_wl_surface_user_data(), input, tablet_tool_input_t::input, and LOG.
|
static |
Definition at line 1863 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, ghost_wl_surface_user_data(), input, tablet_tool_input_t::input, and LOG.
|
static |
Definition at line 673 of file GHOST_SystemWayland.cpp.
References GHOST_kTabletModeEraser, GHOST_kTabletModeStylus, and GHOST_PRINT.
Referenced by tablet_tool_handle_type().
|
static |
Definition at line 1376 of file GHOST_SystemWayland.cpp.
References cursor_t::is_custom, output, input_state_pointer_t::outputs, cursor_t::size, cursor_t::theme_name, input_state_pointer_t::theme_scale, wl_cursor_theme_destroy, wl_cursor_theme_load, and cursor_t::wl_theme.
Referenced by cursor_surface_handle_enter(), and cursor_surface_handle_leave().
|
static |
Definition at line 2511 of file GHOST_SystemWayland.cpp.
Definition at line 2493 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, LOG, output, and output_handle_done().
|
static |
Definition at line 2459 of file GHOST_SystemWayland.cpp.
References CLOG_INFO, data, GHOST_PRINT, height, LOG, output, use_gnome_confine_hack, and width.
Definition at line 2504 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 538 of file GHOST_SystemWayland.cpp.
References GHOST_kKeyAccentGrave, GHOST_kKeyApp, GHOST_kKeyBackslash, GHOST_kKeyBackSpace, GHOST_kKeyCapsLock, GHOST_kKeyClear, GHOST_kKeyComma, GHOST_kKeyDelete, GHOST_kKeyDownArrow, GHOST_kKeyDownPage, GHOST_kKeyEnd, GHOST_kKeyEnter, GHOST_kKeyEqual, GHOST_kKeyEsc, GHOST_kKeyF1, GHOST_kKeyHome, GHOST_kKeyInsert, GHOST_kKeyLeftAlt, GHOST_kKeyLeftArrow, GHOST_kKeyLeftBracket, GHOST_kKeyLeftControl, GHOST_kKeyLeftShift, GHOST_kKeyLinefeed, GHOST_kKeyMediaFirst, GHOST_kKeyMediaLast, GHOST_kKeyMediaPlay, GHOST_kKeyMediaStop, GHOST_kKeyMinus, GHOST_kKeyNumLock, GHOST_kKeyNumpad0, GHOST_kKeyNumpadAsterisk, GHOST_kKeyNumpadEnter, GHOST_kKeyNumpadMinus, GHOST_kKeyNumpadPeriod, GHOST_kKeyNumpadPlus, GHOST_kKeyNumpadSlash, GHOST_kKeyOS, GHOST_kKeyPause, GHOST_kKeyPeriod, GHOST_kKeyPlus, GHOST_kKeyPrintScreen, GHOST_kKeyQuote, GHOST_kKeyRightAlt, GHOST_kKeyRightArrow, GHOST_kKeyRightBracket, GHOST_kKeyRightControl, GHOST_kKeyRightShift, GHOST_kKeyScrollLock, GHOST_kKeySemicolon, GHOST_kKeySlash, GHOST_kKeySpace, GHOST_kKeyTab, GHOST_kKeyUnknown, GHOST_kKeyUpArrow, GHOST_kKeyUpPage, GXMAP, and blender::meshintersect::sym().
Referenced by xkb_map_gkey_or_scan_code().
|
static |
Map the keys using the users keyboard layout, if that fails fall back to physical locations. This is needed so users with keyboard layouts that don't expose GHOST_kKeyAccentGrave (typically the key under escape) in the layout can still use this key in keyboard shortcuts.
key | The key's scan-code, compatible with values in linux/input-event-codes.h . |
Definition at line 645 of file GHOST_SystemWayland.cpp.
References GHOST_kKeyAccentGrave, GHOST_kKeyUnknown, GHOST_PRINT, hex, KEY_GRAVE, blender::meshintersect::sym(), UNLIKELY, and xkb_map_gkey().
Referenced by keyboard_handle_key().
|
static |
A version of #xkb_state_key_get_one_sym which returns the key without any modifiers pressed. Needed because GHOST_TKey uses these values as key-codes.
Definition at line 2145 of file GHOST_SystemWayland.cpp.
References blender::meshintersect::sym().
Referenced by keyboard_handle_key().
|
static |
Definition at line 1348 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::setCustomCursorShape().
|
static |
Definition at line 1417 of file GHOST_SystemWayland.cpp.
Referenced by seat_handle_capabilities(), and tablet_seat_handle_tool_added().
|
static |
Definition at line 696 of file GHOST_SystemWayland.cpp.
Referenced by getImageCursor(), GHOST_SystemWayland::hasCursorShape(), blender::fn::MFProcedureBuilder::set_cursor(), and GHOST_SystemWayland::setCursorShape().
|
static |
Definition at line 1276 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 1088 of file GHOST_SystemWayland.cpp.
Referenced by data_device_handle_data_offer().
|
static |
Definition at line 1045 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::putClipboard().
|
static |
Definition at line 694 of file GHOST_SystemWayland.cpp.
Referenced by seat_handle_capabilities().
|
static |
Definition at line 3684 of file GHOST_SystemWayland.cpp.
Referenced by ghost_wl_output_own(), and ghost_wl_output_tag().
|
static |
Definition at line 3686 of file GHOST_SystemWayland.cpp.
Referenced by ghost_wl_surface_own_cursor_pointer(), and ghost_wl_surface_tag_cursor_pointer().
|
static |
Definition at line 3687 of file GHOST_SystemWayland.cpp.
Referenced by ghost_wl_surface_own_cursor_tablet(), and ghost_wl_surface_tag_cursor_tablet().
|
static |
Definition at line 3685 of file GHOST_SystemWayland.cpp.
Referenced by ghost_wl_surface_own(), and ghost_wl_surface_tag().
|
static |
Definition at line 2351 of file GHOST_SystemWayland.cpp.
Referenced by seat_handle_capabilities().
|
static |
Definition at line 1345 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1373 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1110 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1069 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 925 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2034 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2534 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1447 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2715 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 849 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2385 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1982 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 1648 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2443 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 2659 of file GHOST_SystemWayland.cpp.
|
static |
Definition at line 741 of file GHOST_SystemWayland.cpp.
Referenced by dnd_events().
|
static |
Definition at line 747 of file GHOST_SystemWayland.cpp.
Referenced by data_device_handle_drop(), data_device_handle_enter(), and dnd_events().
|
static |
Definition at line 753 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::putClipboard().
|
staticconstexpr |
Definition at line 737 of file GHOST_SystemWayland.cpp.
Referenced by data_device_handle_drop(), and data_device_handle_selection().
|
staticconstexpr |
Definition at line 739 of file GHOST_SystemWayland.cpp.
Referenced by data_device_handle_drop().
|
staticconstexpr |
Definition at line 738 of file GHOST_SystemWayland.cpp.
Referenced by data_device_handle_drop(), and data_device_handle_selection().
|
static |
Definition at line 2627 of file GHOST_SystemWayland.cpp.
Referenced by global_handle_add().
|
static |
Definition at line 1609 of file GHOST_SystemWayland.cpp.
Referenced by seat_handle_capabilities().
|
static |
Definition at line 2822 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 913 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 2424 of file GHOST_SystemWayland.cpp.
Referenced by global_handle_add().
|
static |
Definition at line 2662 of file GHOST_SystemWayland.cpp.
Referenced by global_handle_add().
|
static |
Check this lock before accessing GHOST_SystemWayland::selection
from a thread.
Definition at line 371 of file GHOST_SystemWayland.cpp.
Referenced by data_device_handle_selection().
|
static |
Definition at line 2013 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 1923 of file GHOST_SystemWayland.cpp.
Referenced by tablet_seat_handle_tool_added().
|
static |
Always use software confine (not just in GNOME). Useful for developing with compositors that don't need this workaround.
Definition at line 82 of file GHOST_SystemWayland.cpp.
Referenced by setCursorGrab_use_software_confine(), and xdg_output_handle_logical_size().
|
static |
Definition at line 368 of file GHOST_SystemWayland.cpp.
Referenced by GHOST_SystemWayland::createWindow(), and output_handle_scale().
|
static |
Definition at line 2511 of file GHOST_SystemWayland.cpp.
Referenced by global_handle_add().