|
Blender V5.0
|
#include "GHOST_SystemWayland.hh"#include "GHOST_Context.hh"#include "GHOST_Event.hh"#include "GHOST_EventButton.hh"#include "GHOST_EventCursor.hh"#include "GHOST_EventDragnDrop.hh"#include "GHOST_EventKey.hh"#include "GHOST_EventTrackpad.hh"#include "GHOST_EventWheel.hh"#include "GHOST_PathUtils.hh"#include "GHOST_TimerManager.hh"#include "GHOST_WaylandUtils.hh"#include "GHOST_WindowManager.hh"#include "GHOST_utildefines.hh"#include <algorithm>#include <atomic>#include <optional>#include <thread>#include <unordered_set>#include <wayland-cursor.h>#include <xkbcommon/xkbcommon-compose.h>#include <xkbcommon/xkbcommon.h>#include <cursor-shape-v1-client-protocol.h>#include <fractional-scale-v1-client-protocol.h>#include <pointer-constraints-unstable-v1-client-protocol.h>#include <pointer-gestures-unstable-v1-client-protocol.h>#include <primary-selection-unstable-v1-client-protocol.h>#include <relative-pointer-unstable-v1-client-protocol.h>#include <tablet-v2-client-protocol.h>#include <viewporter-client-protocol.h>#include <xdg-activation-v1-client-protocol.h>#include <xdg-output-unstable-v1-client-protocol.h>#include <xdg-decoration-unstable-v1-client-protocol.h>#include <xdg-shell-client-protocol.h>#include <fcntl.h>#include <sys/mman.h>#include <unistd.h>#include <cstdlib>#include <cstring>#include <mutex>#include <pthread.h>#include "CLG_log.h"#include "GHOST_TimerTask.hh"#include "IMB_imbuf.hh"#include "IMB_imbuf_types.hh"Go to the source code of this file.
Classes | |
| struct | GWL_ModifierInfo |
| struct | GWL_SimpleBuffer |
| struct | GWL_CursorShape |
| struct | GWL_Cursor |
| struct | GWL_TabletTool |
| struct | GWL_DataOffer |
| struct | GWL_DataSource |
| struct | GWL_KeyRepeatPlayload |
| struct | GWL_SeatStateGrab |
| struct | GWL_SeatStatePointer |
| struct | GWL_SeatStatePointer_Events |
| struct | GWL_SeatStatePointerScroll_SmoothAsDiscrete |
| struct | GWL_SeatStatePointerScroll |
| struct | GWL_ScaledFixedT |
| struct | GWL_SeatStatePointerGesture_Pinch |
| struct | GWL_SeatStateKeyboard |
| struct | GWL_KeyboardDepressedState |
| struct | GWL_XDG_Decor_System |
| struct | GWL_PrimarySelection_DataOffer |
| struct | GWL_PrimarySelection_DataSource |
| struct | GWL_PrimarySelection |
| struct | GWL_Seat |
| struct | GWL_DisplayTimeStamp |
| struct | GWL_Display |
| struct | GWL_RegisteryAdd_Params |
| struct | GWL_RegisteryUpdate_Params |
| struct | GWL_RegistryHandler |
| struct | GWL_RegistryEntry |
Macros | |
| #define | GWL_TabletTool_FrameTypes_NUM (int(GWL_TabletTool_EventTypes::Stylus3_Up) + 1) |
| #define | GWL_SeatStatePointer_EventTypes_NUM (int(GWL_Pointer_EventTypes::Button6_Up) + 1) |
| #define | GXMAP(k, x, y) |
| #define | SURFACE_CLEAR_PTR(surface_test) |
Local Defines | |
Control local functionality, compositors specific workarounds. | |
| #define | _VERBOSE_OLD_IFACE_PRINT(params_version, version_max) |
| #define | GWL_IFACE_VERSION_CLAMP(params_version, version_min, version_max) |
| #define | USE_NON_LATIN_KB_WORKAROUND |
| #define | WL_NAME_UNSET uint32_t(-1) |
| #define | WL_FIXED_TO_INT_FOR_WINDOW_V2(win, xy) |
Internal #GWL_Cursor Type | |
| #define | EVDEV_OFFSET 8 |
Typedefs | |
Internal #GWL_RegistryHandler | |
| using | GWL_RegistryHandler_AddFn |
| using | GWL_RegistryHandler_UpdateFn |
| using | GWL_RegistryEntry_RemoveFn = void (*)(GWL_Display *display, void *user_data, bool on_exit) |
Functions | |
Internal #GWL_SimpleBuffer Type | |
| static void | gwl_simple_buffer_free_data (GWL_SimpleBuffer *buffer) |
| static void | gwl_simple_buffer_set_from_string (GWL_SimpleBuffer *buffer, const char *str) |
Internal #GWL_Display Type (#wl_display & #wl_compositor wrapper) | |
| static void | gwl_display_destroy (GWL_Display *display) |
| static int | gwl_display_seat_index (GWL_Display *display, const GWL_Seat *seat) |
| static GWL_Seat * | gwl_display_seat_active_get (const GWL_Display *display) |
| static bool | gwl_display_seat_active_set (GWL_Display *display, const GWL_Seat *seat) |
Internal #GWL_RegistryEntry | |
| static void | gwl_registry_entry_add (GWL_Display *display, const GWL_RegisteryAdd_Params ¶ms, void *user_data) |
| static bool | gwl_registry_entry_remove_by_interface_slot (GWL_Display *display, const int interface_slot, const bool on_exit) |
| static void | gwl_registry_entry_update_all (GWL_Display *display, const int interface_slot_exclude) |
Event Thread | |
| static void * | gwl_display_event_thread_fn (void *display_voidp) |
| static void | gwl_display_event_thread_create (GWL_Display *display) |
Public WAYLAND Query Access | |
| GWL_Output * | ghost_wl_output_user_data (wl_output *wl_output) |
| GHOST_WindowWayland * | ghost_wl_surface_user_data (wl_surface *wl_surface) |
Variables | |
| static signed char | has_wl_trackpad_physical_direction = -1 |
Public WAYLAND Direct Data Access | |
Expose some members via methods. | |
| static const char * | ghost_wl_app_id |
Workaround Compositor Specific Bugs | |
| #define | USE_GNOME_CONFINE_HACK |
| #define | USE_KDE_TABLET_HIDDEN_CURSOR_HACK |
| static bool | use_gnome_confine_hack = false |
Inline Event Codes | |
Selected input event code defines from linux/input-event-codes.h We include some of the button input event codes here, since the header is only available in more recent kernel versions. | |
| #define | BTN_RANGE_MIN BTN_LEFT |
| #define | BTN_RANGE_MAX BTN_BACK |
| #define | XKB_VMOD_NAME_HYPER "Hyper" |
| enum | { BTN_LEFT = 0x110 , BTN_RIGHT = 0x111 , BTN_MIDDLE = 0x112 , BTN_SIDE = 0x113 , BTN_EXTRA = 0x114 , BTN_FORWARD = 0x115 , BTN_BACK = 0x116 } |
| enum | { BTN_STYLUS = 0x14b , BTN_STYLUS2 = 0x14c , BTN_STYLUS3 = 0x149 } |
| enum | { KEY_GRAVE = 41 , KEY_102ND = 86 , KEY_1 = 2 , KEY_2 = 3 , KEY_3 = 4 , KEY_4 = 5 , KEY_5 = 6 , KEY_6 = 7 , KEY_7 = 8 , KEY_8 = 9 , KEY_9 = 10 , KEY_0 = 11 } |
Modifier Table | |
Convenient access to modifier key values, allow looping over modifier keys. | |
| #define | MOD_INDEX_NUM (MOD_INDEX_HYPER + 1) |
| enum | { MOD_INDEX_SHIFT = 0 , MOD_INDEX_ALT = 1 , MOD_INDEX_CTRL = 2 , MOD_INDEX_OS = 3 , MOD_INDEX_HYPER = 4 } |
| static const GWL_ModifierInfo | g_modifier_info_table [MOD_INDEX_NUM] |
Internal #GWL_TabletTool Type | |
| enum class | GWL_TabletTool_EventTypes { Motion = 0 , Pressure , Tilt , Wheel , Stylus0_Down , Stylus0_Up , Stylus1_Down , Stylus1_Up , Stylus2_Down , Stylus2_Up , Stylus3_Down , Stylus3_Up } |
| static const GHOST_TButton | gwl_tablet_tool_ebutton [] |
| static void | gwl_tablet_tool_frame_event_add (GWL_TabletTool *tablet_tool, const GWL_TabletTool_EventTypes ty) |
| static void | gwl_tablet_tool_frame_event_reset (GWL_TabletTool *tablet_tool) |
Private Utility Functions | |
| enum | { GWL_IOR_READ = 1 << 0 , GWL_IOR_WRITE = 1 << 1 , GWL_IOR_NO_RETRY = 1 << 2 } |
| static const int | default_cursor_size = 24 |
| static constexpr const char * | ghost_wl_mime_text_plain = "text/plain" |
| static constexpr const char * | ghost_wl_mime_text_utf8 = "text/plain;charset=utf-8" |
| static constexpr const char * | ghost_wl_mime_text_uri_list = "text/uri-list" |
| static const char * | ghost_wl_mime_preference_order [] |
| static const GHOST_TDragnDropTypes | ghost_wl_mime_preference_order_type [] |
| static const char * | ghost_wl_mime_send [] |
| static uint32_t | round_up_uint (const uint32_t x, const uint32_t multiple) |
| static uint32_t | rgba_straight_to_premul (uint32_t rgba_uint) |
| static uint32_t | rgba_straight_to_premul_inverted (uint32_t rgba_uint) |
| static uint64_t | sub_abs_u64 (const uint64_t a, const uint64_t b) |
| static uint64_t | ghost_wl_ms_from_utime_pair (uint32_t utime_hi, uint32_t utime_lo) |
| static const char * | ghost_wl_locale_from_env_with_default () |
| static void | ghost_wl_display_report_error_from_code (wl_display *display, const int ecode) |
| static void | ghost_wl_display_report_error (wl_display *display) |
| bool | ghost_wl_display_report_error_if_set (wl_display *display) |
| static void | ghost_wayland_log_handler (const char *msg, va_list arg) |
| static void | ghost_wayland_log_handler_background (const char *msg, va_list arg) |
| 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 int | pointer_axis_as_index (const uint32_t axis) |
| static GHOST_TTabletMode | tablet_tool_map_type (enum zwp_tablet_tool_v2_type wp_tablet_tool_type) |
| static std::vector< std::string_view > | gwl_clipboard_uri_ranges (const char *data_buf, size_t data_buf_len) |
| static void | pthread_set_min_priority (pthread_t handle) |
| static int | memfd_create_sealed (const char *name) |
| static int | file_descriptor_is_io_ready (int fd, const int flags, const int timeout_ms) |
| static int | ghost_wl_display_event_pump (wl_display *wl_display) |
| static int | ghost_wl_display_event_pump_from_thread (wl_display *wl_display, const int fd, std::mutex *server_mutex) |
| static size_t | ghost_wl_shm_format_as_size (enum wl_shm_format format) |
| static wl_buffer * | ghost_wl_buffer_create_for_image (wl_shm *shm, const int32_t size_xy[2], enum wl_shm_format format, void **r_buffer_data, size_t *r_buffer_data_size) |
| static ssize_t | read_exhaustive (const int fd, void *data, size_t nbytes) |
| static char * | read_file_as_buffer (const int fd, const bool nil_terminate, size_t *r_len) |
Private Cursor API | |
| enum | eCursorSetMode { CURSOR_VISIBLE_ALWAYS_SET = 1 , CURSOR_VISIBLE_ONLY_HIDE , CURSOR_VISIBLE_ONLY_SHOW } |
| static void | cursor_buffer_set_surface_impl (const wl_cursor_image *wl_image, wl_buffer *buffer, wl_surface *wl_surface, const int scale) |
| static std::optional< wp_cursor_shape_device_v1_shape > | gwl_seat_cursor_find_wl_shape_from_ghost (const GHOST_TStandardCursor shape) |
| static int | gwl_seat_cursor_buffer_scale_calc (const GWL_Seat *seat) |
| static void | gwl_seat_cursor_buffer_show (GWL_Seat *seat) |
| static void | gwl_seat_cursor_buffer_hide (GWL_Seat *seat) |
| static void | gwl_seat_cursor_buffer_set (const GWL_Seat *seat, const wl_cursor_image *wl_image, wl_buffer *buffer) |
| static void | gwl_seat_cursor_buffer_set_current (GWL_Seat *seat) |
| static void | gwl_seat_cursor_visible_set (GWL_Seat *seat, const bool visible, const bool is_hardware, const enum eCursorSetMode set_mode) |
Private Keyboard Depressed Key Tracking | |
Don't track physical key-codes because there may be multiple keyboards connected. Instead, count the number of #GHOST_kKey are pressed. This may seem susceptible to bugs with sticky-keys however XKB works this way internally. | |
| static CLG_LogRef | LOG_WL_KEYBOARD_DEPRESSED_STATE = {"ghost.wl.keyboard.depressed"} |
| static void | keyboard_depressed_state_reset (GWL_Seat *seat) |
| static void | keyboard_depressed_state_key_event (GWL_Seat *seat, const GHOST_TKey gkey, const GHOST_TEventType etype) |
| static void | keyboard_depressed_state_push_events_from_change (GWL_Seat *seat, GHOST_IWindow *win, const uint64_t event_ms, const GWL_KeyboardDepressedState &key_depressed_prev) |
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 (GWL_Seat *seat, GHOST_WindowWayland *win, const wl_fixed_t xy[2], const uint64_t event_ms) |
| static void | relative_pointer_handle_relative_motion (void *data, zwp_relative_pointer_v1 *, const uint32_t utime_hi, const uint32_t utime_lo, 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 wl_data_source_listener | data_source_listener |
| static void | dnd_events (const GWL_Seat *const seat, const GHOST_TEventType event, const uint64_t event_ms) |
| static char * | read_buffer_from_data_offer (GWL_DataOffer *data_offer, const char *mime_receive, std::mutex *mutex, const bool nil_terminate, size_t *r_len) |
| static char * | read_buffer_from_primary_selection_offer (GWL_PrimarySelection_DataOffer *data_offer, const char *mime_receive, std::mutex *mutex, const bool nil_terminate, size_t *r_len) |
| static void | data_source_handle_target (void *, wl_data_source *, const char *) |
| static void | data_source_handle_send (void *data, wl_data_source *, const char *, const int32_t fd) |
| static void | data_source_handle_cancelled (void *data, wl_data_source *wl_data_source) |
| static void | data_source_handle_dnd_drop_performed (void *, wl_data_source *) |
| static void | data_source_handle_dnd_finished (void *, wl_data_source *) |
| static void | data_source_handle_action (void *, 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 wl_data_offer_listener | data_offer_listener |
| static void | data_offer_handle_offer (void *data, wl_data_offer *, const char *mime_type) |
| static void | data_offer_handle_source_actions (void *data, wl_data_offer *, const uint32_t source_actions) |
| static void | data_offer_handle_action (void *data, 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 wl_data_device_listener | data_device_listener |
| static void | data_device_handle_data_offer (void *, wl_data_device *, wl_data_offer *id) |
| static void | data_device_handle_enter (void *data, wl_data_device *, const uint32_t serial, wl_surface *wl_surface, const wl_fixed_t x, const wl_fixed_t y, wl_data_offer *id) |
| static void | data_device_handle_leave (void *data, wl_data_device *) |
| static void | data_device_handle_motion (void *data, wl_data_device *, const uint32_t time, const wl_fixed_t x, const wl_fixed_t y) |
| static void | data_device_handle_drop (void *data, wl_data_device *) |
| static void | data_device_handle_selection (void *data, wl_data_device *, wl_data_offer *id) |
Listener (Buffer), #wl_buffer_listener | |
| static CLG_LogRef | LOG_WL_CURSOR_BUFFER = {"ghost.wl.handle.cursor_buffer"} |
| static const wl_buffer_listener | cursor_buffer_listener |
| static void | cursor_buffer_handle_release (void *data, wl_buffer *wl_buffer) |
Listener (Surface), #wl_surface_listener | |
| static CLG_LogRef | LOG_WL_CURSOR_SURFACE = {"ghost.wl.handle.cursor_surface"} |
| static const wl_surface_listener | cursor_surface_listener |
| static bool | update_cursor_scale (GWL_Seat *seat, GWL_Cursor &cursor, GWL_SeatStatePointer *seat_state_pointer) |
| static void | cursor_surface_handle_enter (void *data, wl_surface *wl_surface, wl_output *wl_output) |
| static void | cursor_surface_handle_leave (void *data, wl_surface *wl_surface, wl_output *wl_output) |
| static void | cursor_surface_handle_preferred_buffer_scale (void *, wl_surface *, const int32_t factor) |
Listener (Pointer), #wl_pointer_listener | |
| static CLG_LogRef | LOG_WL_POINTER = {"ghost.wl.handle.pointer"} |
| static const wl_pointer_listener | pointer_listener |
| static void | pointer_handle_enter (void *data, wl_pointer *, const uint32_t serial, wl_surface *wl_surface, const wl_fixed_t surface_x, const wl_fixed_t surface_y) |
| static void | pointer_handle_leave (void *data, wl_pointer *, const uint32_t, wl_surface *wl_surface) |
| static void | pointer_handle_motion (void *data, wl_pointer *, const uint32_t time, const wl_fixed_t surface_x, const wl_fixed_t surface_y) |
| static void | pointer_handle_button (void *data, wl_pointer *, const uint32_t serial, const uint32_t time, const uint32_t button, const uint32_t state) |
| static void | pointer_handle_axis (void *data, wl_pointer *, const uint32_t time, const uint32_t axis, const wl_fixed_t value) |
| static void | pointer_handle_frame (void *data, wl_pointer *) |
| static void | pointer_handle_axis_source (void *data, wl_pointer *, const uint32_t axis_source) |
| static void | pointer_handle_axis_stop (void *data, wl_pointer *, const uint32_t time, const uint32_t axis) |
| static void | pointer_handle_axis_discrete (void *data, wl_pointer *, const uint32_t axis, const int32_t discrete) |
| static void | pointer_handle_axis_value120 (void *data, wl_pointer *, const uint32_t axis, const int32_t value120) |
Listener (Touch Seat), #wl_touch_listener | |
NOTE(@ideasman42): It's not clear if this interface is used by popular compositors. It looks like GNOME/KDE only support zwp_pointer_gestures_v1_interface. If this isn't used anywhere, it could be removed. NOTE(@felipe-choi): While X11 used to provide a virtual "touchscreen mouse" device, wayland provides dedicated touch events instead, so they go through this set of handler callbacks. | |
| static CLG_LogRef | LOG_WL_TOUCH = {"ghost.wl.handle.touch"} |
| static const wl_touch_listener | touch_seat_listener |
| static void | touch_seat_handle_down (void *data, wl_touch *, const uint32_t serial, const uint32_t time, wl_surface *surface, const int32_t id, const wl_fixed_t x, const wl_fixed_t y) |
| static void | touch_seat_handle_up (void *data, wl_touch *, const uint32_t, const uint32_t time, const int32_t id) |
| static void | touch_seat_handle_motion (void *data, wl_touch *, const uint32_t time, const int32_t id, const wl_fixed_t x, const wl_fixed_t y) |
| static void | touch_seat_handle_frame (void *data, wl_touch *) |
| static void | touch_seat_handle_cancel (void *, wl_touch *) |
| static void | touch_seat_handle_shape (void *, wl_touch *, const int32_t, const wl_fixed_t, const wl_fixed_t) |
| static void | touch_seat_handle_orientation (void *, wl_touch *, const int32_t, const wl_fixed_t) |
Listener (Tablet Tool), #zwp_tablet_tool_v2_listener | |
| static CLG_LogRef | LOG_WL_TABLET_TOOL = {"ghost.wl.handle.tablet_tool"} |
| static const zwp_tablet_tool_v2_listener | tablet_tool_listner |
| static void | tablet_tool_handle_type (void *data, zwp_tablet_tool_v2 *, const uint32_t tool_type) |
| static void | tablet_tool_handle_hardware_serial (void *, zwp_tablet_tool_v2 *, const uint32_t, const uint32_t) |
| static void | tablet_tool_handle_hardware_id_wacom (void *, zwp_tablet_tool_v2 *, const uint32_t, const uint32_t) |
| static void | tablet_tool_handle_capability (void *, zwp_tablet_tool_v2 *, const uint32_t capability) |
| static void | tablet_tool_handle_done (void *, zwp_tablet_tool_v2 *) |
| static void | tablet_tool_handle_removed (void *data, zwp_tablet_tool_v2 *zwp_tablet_tool_v2) |
| static void | tablet_tool_handle_proximity_in (void *data, zwp_tablet_tool_v2 *, const uint32_t serial, zwp_tablet_v2 *, wl_surface *wl_surface) |
| static void | tablet_tool_handle_proximity_out (void *data, zwp_tablet_tool_v2 *) |
| static void | tablet_tool_handle_down (void *data, zwp_tablet_tool_v2 *, const uint32_t serial) |
| static void | tablet_tool_handle_up (void *data, zwp_tablet_tool_v2 *) |
| static void | tablet_tool_handle_motion (void *data, zwp_tablet_tool_v2 *, const wl_fixed_t x, const wl_fixed_t y) |
| static void | tablet_tool_handle_pressure (void *data, zwp_tablet_tool_v2 *, const uint32_t pressure) |
| static void | tablet_tool_handle_distance (void *, zwp_tablet_tool_v2 *, const uint32_t distance) |
| static void | tablet_tool_handle_tilt (void *data, zwp_tablet_tool_v2 *, const wl_fixed_t tilt_x, const wl_fixed_t tilt_y) |
| static void | tablet_tool_handle_rotation (void *, zwp_tablet_tool_v2 *, const wl_fixed_t degrees) |
| static void | tablet_tool_handle_slider (void *, zwp_tablet_tool_v2 *, const int32_t position) |
| static void | tablet_tool_handle_wheel (void *data, zwp_tablet_tool_v2 *, const wl_fixed_t, const int32_t clicks) |
| static void | tablet_tool_handle_button (void *data, zwp_tablet_tool_v2 *, const uint32_t serial, const uint32_t button, const uint32_t state) |
| static void | tablet_tool_handle_frame (void *data, zwp_tablet_tool_v2 *, const uint32_t time) |
Listener (Table Seat), #zwp_tablet_seat_v2_listener | |
| static CLG_LogRef | LOG_WL_TABLET_SEAT = {"ghost.wl.handle.tablet_seat"} |
| static const zwp_tablet_seat_v2_listener | tablet_seat_listener |
| static void | tablet_seat_handle_tablet_added (void *, zwp_tablet_seat_v2 *, zwp_tablet_v2 *id) |
| static void | tablet_seat_handle_tool_added (void *data, zwp_tablet_seat_v2 *, zwp_tablet_tool_v2 *id) |
| static void | tablet_seat_handle_pad_added (void *, zwp_tablet_seat_v2 *, zwp_tablet_pad_v2 *id) |
Listener (Keyboard), #wl_keyboard_listener | |
| static CLG_LogRef | LOG_WL_KEYBOARD = {"ghost.wl.handle.keyboard"} |
| static const wl_keyboard_listener | keyboard_listener |
| static void | keyboard_handle_keymap (void *data, wl_keyboard *, const uint32_t format, const int32_t fd, const uint32_t size) |
| static void | keyboard_handle_enter (void *data, wl_keyboard *, const uint32_t serial, wl_surface *wl_surface, wl_array *keys) |
| static void | keyboard_handle_leave (void *data, wl_keyboard *, const uint32_t, wl_surface *wl_surface) |
| static xkb_keysym_t | xkb_state_key_get_one_sym_without_modifiers (xkb_state *xkb_state_empty, xkb_state *xkb_state_empty_with_numlock, xkb_state *xkb_state_empty_with_shift, const bool xkb_use_non_latin_workaround, const xkb_keycode_t key) |
| static void | keyboard_handle_key_repeat_reset (GWL_Seat *seat, const bool use_delay) |
| static void | keyboard_handle_key (void *data, wl_keyboard *, const uint32_t serial, const uint32_t time, const uint32_t key, const uint32_t state) |
| static void | keyboard_handle_modifiers (void *data, wl_keyboard *, const uint32_t serial, const uint32_t mods_depressed, const uint32_t mods_latched, const uint32_t mods_locked, const uint32_t group) |
| static void | keyboard_handle_repeat_info (void *data, wl_keyboard *, const int32_t rate, const int32_t delay) |
Listener (Primary Selection Offer), #zwp_primary_selection_offer_v1_listener | |
| static CLG_LogRef | LOG_WL_PRIMARY_SELECTION_OFFER = {"ghost.wl.handle.primary_selection_offer"} |
| static const zwp_primary_selection_offer_v1_listener | primary_selection_offer_listener |
| static void | primary_selection_offer_offer (void *data, zwp_primary_selection_offer_v1 *id, const char *type) |
Listener (Primary Selection Device), #zwp_primary_selection_device_v1_listener | |
| static CLG_LogRef | LOG_WL_PRIMARY_SELECTION_DEVICE = {"ghost.wl.handle.primary_selection_device"} |
| static const zwp_primary_selection_device_v1_listener | primary_selection_device_listener |
| static void | primary_selection_device_handle_data_offer (void *, zwp_primary_selection_device_v1 *, zwp_primary_selection_offer_v1 *id) |
| static void | primary_selection_device_handle_selection (void *data, zwp_primary_selection_device_v1 *, zwp_primary_selection_offer_v1 *id) |
Listener (Primary Selection Source), #zwp_primary_selection_source_v1_listener | |
| static CLG_LogRef | LOG_WL_PRIMARY_SELECTION_SOURCE = {"ghost.wl.handle.primary_selection_source"} |
| static const zwp_primary_selection_source_v1_listener | primary_selection_source_listener |
| static void | primary_selection_source_send (void *data, zwp_primary_selection_source_v1 *, const char *, const int32_t fd) |
| static void | primary_selection_source_cancelled (void *data, zwp_primary_selection_source_v1 *source) |
Listener (Seat), #wl_seat_listener | |
| static CLG_LogRef | LOG_WL_SEAT = {"ghost.wl.handle.seat"} |
| static const wl_seat_listener | seat_listener |
| static bool | gwl_seat_capability_pointer_multitouch_check (const GWL_Seat *seat, const bool fallback) |
| static void | gwl_seat_capability_pointer_multitouch_enable (GWL_Seat *seat) |
| static void | gwl_seat_capability_pointer_multitouch_disable (GWL_Seat *seat) |
| static void | gwl_seat_capability_pointer_enable (GWL_Seat *seat) |
| static void | gwl_seat_capability_keyboard_enable (GWL_Seat *seat) |
| static void | gwl_seat_capability_touch_enable (GWL_Seat *seat) |
| static void | seat_handle_capabilities (void *data, wl_seat *wl_seat, const uint32_t capabilities) |
| static void | seat_handle_name (void *data, 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 zxdg_output_v1_listener | xdg_output_listener |
| static void | xdg_output_handle_logical_position (void *data, zxdg_output_v1 *, const int32_t x, const int32_t y) |
| static void | xdg_output_handle_logical_size (void *data, zxdg_output_v1 *, const int32_t width, const int32_t height) |
| static void | xdg_output_handle_done (void *data, zxdg_output_v1 *) |
| static void | xdg_output_handle_name (void *, zxdg_output_v1 *, const char *name) |
| static void | xdg_output_handle_description (void *, zxdg_output_v1 *, const char *description) |
Listener (Output), #wl_output_listener | |
| static CLG_LogRef | LOG_WL_OUTPUT = {"ghost.wl.handle.output"} |
| static const wl_output_listener | output_listener |
| static void | output_handle_geometry (void *data, 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, wl_output *, const uint32_t flags, const int32_t width, const int32_t height, const int32_t) |
| static void | output_handle_scale (void *data, wl_output *, const int32_t factor) |
| static void | output_handle_name (void *, wl_output *, const char *name) |
| static void | output_handle_description (void *, wl_output *, const char *description) |
Listener (XDG WM Base), #xdg_wm_base_listener | |
| static CLG_LogRef | LOG_WL_XDG_WM_BASE = {"ghost.wl.handle.xdg_wm_base"} |
| static const xdg_wm_base_listener | shell_listener |
| static void | shell_handle_ping (void *, xdg_wm_base *xdg_wm_base, const uint32_t serial) |
GHOST Implementation | |
WAYLAND specific implementation of the GHOST_System interface. | |
| static constexpr const char * | ghost_wl_mime_img_png = "image/png" |
| static const char * | system_clipboard_text_mime_type (const std::unordered_set< std::string > &data_offer_types) |
| static char * | system_clipboard_get_primary_selection (GWL_Display *display, const bool nil_terminate, const char *mime_receive_override, size_t *r_data_len) |
| static char * | system_clipboard_get (GWL_Display *display, const bool nil_terminate, const char *mime_receive_override, size_t *r_data_len) |
| static void | system_clipboard_put_primary_selection (GWL_Display *display, const char *buffer) |
| static void | system_clipboard_put (GWL_Display *display, const char *buffer) |
| static GHOST_TSuccess | getCursorPositionClientRelative_impl (const GWL_SeatStatePointer *seat_state_pointer, const GHOST_WindowWayland *win, int32_t &x, int32_t &y) |
| static GHOST_TSuccess | setCursorPositionClientRelative_impl (GWL_Seat *seat, GHOST_WindowWayland *win, const int32_t x, const int32_t y) |
| static bool | cursor_is_software (const GHOST_TGrabCursorMode mode, const bool use_software_confine) |
| static wl_buffer * | ghost_wl_buffer_from_cursor_generator (const GHOST_CursorGenerator &cg, wl_shm *shm, void **buffer_data_p, size_t *buffer_data_size_p, const int cursor_size, const int cursor_size_max, const int use_dark_theme, const int scale, int r_bitmap_size[2], int r_hot_spot[2]) |
| static bool | setCursorGrab_use_software_confine (const GHOST_TGrabCursorMode mode, wl_surface *wl_surface) |
| static GWL_SeatStateGrab | seat_grab_state_from_mode (const GHOST_TGrabCursorMode mode, const bool use_software_confine) |
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 wl_output *wl_output) |
| bool | ghost_wl_surface_own (const wl_surface *wl_surface) |
| bool | ghost_wl_surface_own_with_null_check (const wl_surface *wl_surface) |
| bool | ghost_wl_surface_own_cursor_pointer (const wl_surface *wl_surface) |
| bool | ghost_wl_surface_own_cursor_tablet (const wl_surface *wl_surface) |
| void | ghost_wl_output_tag (wl_output *wl_output) |
| void | ghost_wl_surface_tag (wl_surface *wl_surface) |
| void | ghost_wl_surface_tag_cursor_pointer (wl_surface *wl_surface) |
| void | ghost_wl_surface_tag_cursor_tablet (wl_surface *wl_surface) |
| #define _VERBOSE_OLD_IFACE_PRINT | ( | params_version, | |
| version_max ) |
A version clamping macro that optionally prints when the version is outdated. This is useful when investigating when newer versions of an interface might be supported.
This addresses the following:
This should only be enabled during development, never enabled for regular releases.
Definition at line 222 of file GHOST_SystemWayland.cc.
| #define BTN_RANGE_MAX BTN_BACK |
Definition at line 271 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_button().
| #define BTN_RANGE_MIN BTN_LEFT |
Definition at line 270 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_button().
| #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 434 of file GHOST_SystemWayland.cc.
Referenced by keyboard_handle_enter(), keyboard_handle_key(), keyboard_handle_keymap(), and xkb_state_key_get_one_sym_without_modifiers().
| #define GWL_IFACE_VERSION_CLAMP | ( | params_version, | |
| version_min, | |||
| version_max ) |
Definition at line 226 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_compositor_add(), gwl_registry_wl_data_device_manager_add(), gwl_registry_wl_output_add(), gwl_registry_wl_seat_add(), gwl_registry_wl_shm_add(), gwl_registry_wp_cursor_shape_manager_add(), gwl_registry_wp_fractional_scale_manager_add(), gwl_registry_wp_pointer_constraints_add(), gwl_registry_wp_pointer_gestures_add(), gwl_registry_wp_primary_selection_device_manager_add(), gwl_registry_wp_relative_pointer_manager_add(), gwl_registry_wp_tablet_manager_add(), gwl_registry_wp_viewporter_add(), gwl_registry_xdg_activation_add(), gwl_registry_xdg_decoration_manager_add(), gwl_registry_xdg_output_manager_add(), and gwl_registry_xdg_wm_base_add().
| #define GWL_SeatStatePointer_EventTypes_NUM (int(GWL_Pointer_EventTypes::Button6_Up) + 1) |
Definition at line 762 of file GHOST_SystemWayland.cc.
| #define GWL_TabletTool_FrameTypes_NUM (int(GWL_TabletTool_EventTypes::Stylus3_Up) + 1) |
Definition at line 521 of file GHOST_SystemWayland.cc.
Referenced by xkb_map_gkey().
| #define LOG (&LOG_WL_REGISTRY) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_XDG_WM_BASE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_OUTPUT) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_XDG_OUTPUT) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_SEAT) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_PRIMARY_SELECTION_SOURCE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_PRIMARY_SELECTION_DEVICE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_PRIMARY_SELECTION_OFFER) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_KEYBOARD) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_TABLET_SEAT) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_TABLET_TOOL) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_TOUCH) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_POINTER) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_CURSOR_SURFACE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_CURSOR_BUFFER) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_DATA_DEVICE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_DATA_OFFER) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_DATA_SOURCE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_RELATIVE_POINTER) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_KEYBOARD_DEPRESSED_STATE) |
Definition at line 3096 of file GHOST_SystemWayland.cc.
| #define MOD_INDEX_NUM (MOD_INDEX_HYPER + 1) |
Definition at line 338 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getModifierKeys(), and keyboard_handle_keymap().
| #define pushEvent DONT_USE |
In nearly all cases use pushEvent_maybe_pending at least when called from WAYLAND callbacks.
Definition at line 156 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemCocoa::createWindow(), GHOST_SystemWayland::createWindow(), GHOST_SystemX11::createWindow(), GHOST_SystemCocoa::handleApplicationBecomeActiveEvent(), GHOST_SystemCocoa::handleDraggingEvent(), GHOST_SystemCocoa::handleKeyEvent(), GHOST_SystemCocoa::handleMouseEvent(), GHOST_SystemCocoa::handleOpenDocumentRequest(), GHOST_SystemCocoa::handleQuitRequest(), GHOST_SystemCocoa::handleWindowEvent(), GHOST_SystemWayland::processEvents(), GHOST_SystemX11::processEvents(), GHOST_SystemWayland::pushEvent_maybe_pending(), and GHOST_SystemCocoa::setCursorPosition().
| #define SURFACE_CLEAR_PTR | ( | surface_test | ) |
Referenced by GHOST_SystemWayland::window_surface_unref().
| #define USE_GNOME_CONFINE_HACK |
GNOME (mutter 42.2 had a bug with confine not respecting scale - Hi-DPI), See: #98793. 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 171 of file GHOST_SystemWayland.cc.
| #define USE_KDE_TABLET_HIDDEN_CURSOR_HACK |
KDE (plasma 5.26.1) has a bug where the cursor surface needs to be committed (via wl_surface_commit) when it was hidden and is being set to visible again, see: #102048. See: https://bugs.kde.org/show_bug.cgi?id=461001
Definition at line 187 of file GHOST_SystemWayland.cc.
| #define USE_NON_LATIN_KB_WORKAROUND |
Fix short-cut part of keyboard reading code not properly handling some keys, see: #102194.
Definition at line 234 of file GHOST_SystemWayland.cc.
Referenced by keyboard_handle_key().
| #define WL_FIXED_TO_INT_FOR_WINDOW_V2 | ( | win, | |
| xy ) |
Initializer for GHOST integer coordinates from wl_fixed_t, taking window scale into account.
Definition at line 242 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), dnd_events(), pointer_handle_enter(), pointer_handle_frame(), relative_pointer_handle_relative_motion_impl(), tablet_tool_handle_frame(), and touch_seat_handle_frame().
| #define WL_NAME_UNSET uint32_t(-1) |
Definition at line 236 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_xdg_decoration_manager_remove(), and gwl_registry_xdg_wm_base_remove().
| #define XKB_VMOD_NAME_HYPER "Hyper" |
Definition at line 320 of file GHOST_SystemWayland.cc.
| using GWL_RegistryEntry_RemoveFn = void (*)(GWL_Display *display, void *user_data, bool on_exit) |
Remove callback for object registry.
| display | The display which holds a reference to the global object. |
| user_data | Optional reference to a sub element of display, use for outputs or seats, for example when the display may hold multiple references. |
| on_exit | Enabled when freeing on exit. When true the consistency of references between objects should be kept valid. Otherwise it can be assumed that all objects will be freed and none will be used again, so there is no need to ensure a valid state. |
Definition at line 1762 of file GHOST_SystemWayland.cc.
Add callback for object registry.
| display | The display which holds a reference to the global object. |
| params | Various arguments needed for registration. |
Definition at line 1730 of file GHOST_SystemWayland.cc.
Optional update callback to refresh internal data when another interface has been added/removed.
| display | The display which holds a reference to the global object. |
| params | Various arguments needed for updating. |
Definition at line 1749 of file GHOST_SystemWayland.cc.
| anonymous enum |
| Enumerator | |
|---|---|
| GWL_IOR_READ | |
| GWL_IOR_WRITE | |
| GWL_IOR_NO_RETRY | |
Definition at line 2444 of file GHOST_SystemWayland.cc.
| anonymous enum |
Tablet events.
| Enumerator | |
|---|---|
| BTN_STYLUS | Use as middle-mouse. |
| BTN_STYLUS2 | Use as right-mouse. |
| BTN_STYLUS3 | NOTE(@ideasman42): Map to an additional button (not sure which hardware uses this). |
Definition at line 281 of file GHOST_SystemWayland.cc.
| anonymous enum |
The event codes are used to differentiate from which mouse button an event comes from.
| Enumerator | |
|---|---|
| BTN_LEFT | |
| BTN_RIGHT | |
| BTN_MIDDLE | |
| BTN_SIDE | |
| BTN_EXTRA | |
| BTN_FORWARD | |
| BTN_BACK | |
Definition at line 259 of file GHOST_SystemWayland.cc.
| anonymous enum |
Keyboard scan-codes.
From linux/input-event-codes.h.
Definition at line 295 of file GHOST_SystemWayland.cc.
| anonymous enum |
| Enumerator | |
|---|---|
| MOD_INDEX_SHIFT | |
| MOD_INDEX_ALT | |
| MOD_INDEX_CTRL | |
| MOD_INDEX_OS | |
| MOD_INDEX_HYPER | |
Definition at line 331 of file GHOST_SystemWayland.cc.
| enum eCursorSetMode |
| Enumerator | |
|---|---|
| CURSOR_VISIBLE_ALWAYS_SET | |
| CURSOR_VISIBLE_ONLY_HIDE | |
| CURSOR_VISIBLE_ONLY_SHOW | |
Definition at line 3042 of file GHOST_SystemWayland.cc.
|
strong |
Definition at line 727 of file GHOST_SystemWayland.cc.
|
strong |
Collect tablet event data before the frame callback runs.
| Enumerator | |
|---|---|
| Motion | |
| Pressure | |
| Tilt | |
| Wheel | |
| Stylus0_Down | |
| Stylus0_Up | |
| Stylus1_Down | |
| Stylus1_Up | |
| Stylus2_Down | |
| Stylus2_Up | |
| Stylus3_Down | |
| Stylus3_Up | |
Definition at line 499 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3758 of file GHOST_SystemWayland.cc.
References GWL_Cursor::buffer, CLOG_DEBUG, data, LOG, and GWL_Cursor::wl.
|
static |
Definition at line 2762 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, and wl_surface.
Referenced by gwl_seat_cursor_buffer_set().
|
static |
Definition at line 8801 of file GHOST_SystemWayland.cc.
References GHOST_kGrabNormal, and GHOST_kGrabWrap.
Referenced by GHOST_SystemWayland::cursor_grab_use_software_display_get(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 3819 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GWL_Seat::cursor, data, ghost_wl_output_own(), ghost_wl_output_user_data(), gwl_seat_state_pointer_from_cursor_surface(), LOG, GWL_SeatStatePointer::outputs, update_cursor_scale(), and wl_surface.
|
static |
Definition at line 3835 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GWL_Seat::cursor, data, ghost_wl_output_own(), ghost_wl_output_user_data(), gwl_seat_state_pointer_from_cursor_surface(), LOG, GWL_SeatStatePointer::outputs, update_cursor_scale(), and wl_surface.
|
static |
Definition at line 3851 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, LOG, and wl_surface.
|
static |
Definition at line 3483 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data_offer_listener, GWL_DataOffer::id, LOG, and GWL_DataOffer::wl.
|
static |
Definition at line 3603 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, CLOG_DEBUG, GHOST_TStringArray::count, data, GWL_Seat::data_offer_dnd, GWL_Seat::data_offer_dnd_mutex, GWL_DataOffer::dnd, ELEM, free(), GHOST_SystemWayland::getMilliSeconds(), GHOST_kDragnDropTypeFilenames, GHOST_kDragnDropTypeString, GHOST_kDragnDropTypeUnknown, GHOST_kEventDraggingDropDone, GHOST_URL_decode_alloc(), ghost_wl_mime_preference_order, ghost_wl_mime_text_plain, ghost_wl_mime_text_uri_list, ghost_wl_mime_text_utf8, ghost_wl_surface_user_data(), gwl_clipboard_uri_ranges(), i, GWL_DataOffer::id, lock, LOG, GHOST_SystemWayland::pushEvent_maybe_pending(), read_buffer_from_data_offer(), size(), GHOST_TStringArray::strings, GWL_Seat::surface_window_focus_dnd, GWL_Seat::system, GWL_DataOffer::types, UNPACK2, GWL_DataOffer::wl, GWL_Seat::wl, GHOST_SystemWayland::wl_display_get(), wl_display_roundtrip, WL_FIXED_TO_INT_FOR_WINDOW_V2, wl_surface, GWL_DataOffer::xy, and xy.
|
static |
Definition at line 3505 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, CLOG_DEBUG, data, GWL_Seat::data_offer_dnd, GWL_Seat::data_offer_dnd_mutex, GWL_DataOffer::dnd, dnd_events(), GHOST_SystemWayland::getMilliSeconds(), GHOST_kEventDraggingEntered, ghost_wl_mime_preference_order, ghost_wl_surface_own_with_null_check(), i, GWL_DataOffer::id, lock, LOG, GHOST_SystemWayland::seat_active_set(), GWL_Seat::surface_window_focus_dnd, GWL_Seat::system, GWL_DataOffer::wl, GWL_Seat::wl, wl_surface, x, GWL_DataOffer::xy, and y.
|
static |
Definition at line 3558 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::data_offer_dnd, GWL_Seat::data_offer_dnd_mutex, dnd_events(), GHOST_SystemWayland::getMilliSeconds(), GHOST_kEventDraggingExited, GWL_DataOffer::id, lock, LOG, GWL_Seat::surface_window_focus_dnd, GWL_Seat::system, GWL_DataOffer::wl, and GWL_Seat::wl.
|
static |
Definition at line 3580 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::data_offer_dnd, GWL_Seat::data_offer_dnd_mutex, GWL_DataOffer::dnd, dnd_events(), GHOST_kEventDraggingUpdated, lock, LOG, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::system, x, GWL_DataOffer::xy, and y.
|
static |
Definition at line 3710 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::data_offer_copy_paste, GWL_Seat::data_offer_copy_paste_has_image, GWL_Seat::data_offer_copy_paste_mutex, GWL_DataOffer::id, lock, LOG, and GWL_DataOffer::wl.
|
static |
Definition at line 3456 of file GHOST_SystemWayland.cc.
References GWL_DataOffer::action, CLOG_DEBUG, data, GWL_DataOffer::dnd, and LOG.
|
static |
Definition at line 3436 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, and GWL_DataOffer::types.
|
static |
Definition at line 3446 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_DataOffer::dnd, LOG, and GWL_DataOffer::source_actions.
|
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 3409 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 3365 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::data_source, LOG, GWL_DataSource::source, and GWL_DataSource::wl.
|
static |
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 3384 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
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 3397 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 3340 of file GHOST_SystemWayland.cc.
References GWL_DataSource::buffer_out, CLOG_DEBUG, CLOG_WARN, data, GWL_SimpleBuffer::data, GWL_SimpleBuffer::data_size, GWL_Seat::data_source, GWL_Seat::data_source_mutex, LOG, and UNLIKELY.
|
static |
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 3333 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 3242 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, GWL_Seat::data_offer_dnd, GWL_DataOffer::dnd, ghost_wl_mime_preference_order_type, ghost_wl_surface_user_data(), i, GHOST_SystemWayland::pushEvent_maybe_pending(), GWL_Seat::surface_window_focus_dnd, GWL_Seat::system, UNPACK2, GWL_Seat::wl, WL_FIXED_TO_INT_FOR_WINDOW_V2, wl_surface, and GWL_DataOffer::xy.
Referenced by data_device_handle_enter(), data_device_handle_leave(), and data_device_handle_motion().
|
static |
Definition at line 2450 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, GWL_IOR_NO_RETRY, GWL_IOR_READ, GWL_IOR_WRITE, result, and select.
Referenced by ghost_wl_display_event_pump(), ghost_wl_display_event_pump_from_thread(), and ghost_wl_display_lock_without_input().
|
static |
Definition at line 8408 of file GHOST_SystemWayland.cc.
References GHOST_Rect::b_, GHOST_WindowWayland::getClientBounds(), GHOST_Window::getCursorGrabAxis(), GHOST_Window::getCursorGrabBounds(), GHOST_Window::getCursorGrabModeIsWarp(), GHOST_kFailure, GHOST_kSuccess, GHOST_Rect::l_, GHOST_Rect::r_, GHOST_Rect::t_, UNPACK2, GHOST_WindowWayland::wl_fixed_from_window(), GHOST_WindowWayland::wl_fixed_to_window(), GHOST_Rect::wrapPoint(), x, GWL_SeatStatePointer::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 2113 of file GHOST_SystemWayland.cc.
References GHOST_ISystem::getBacktraceFn().
Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), and ghost_wayland_log_handler_background().
|
static |
A wrapper for ghost_wayland_log_handler to be used when running in the background.
Definition at line 2125 of file GHOST_SystemWayland.cc.
References ghost_wayland_log_handler().
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Return a #wl_buffer, ready to have it's data filled in or nullptr 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 2614 of file GHOST_SystemWayland.cc.
References ghost_wl_shm_format_as_size(), memfd_create_sealed(), and UNPACK2.
Referenced by ghost_wl_buffer_from_cursor_generator().
|
static |
Definition at line 8897 of file GHOST_SystemWayland.cc.
References GHOST_CursorGenerator::generate_fn, ghost_wl_buffer_create_for_image(), rgba_straight_to_premul(), rgba_straight_to_premul_inverted(), round_up_uint(), size(), x, and y.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set().
|
static |
Definition at line 2502 of file GHOST_SystemWayland.cc.
References file_descriptor_is_io_ready(), GWL_IOR_NO_RETRY, GWL_IOR_READ, wl_display, wl_display_cancel_read, wl_display_dispatch_pending, wl_display_flush, wl_display_get_fd, wl_display_prepare_read, and wl_display_read_events.
Referenced by GHOST_SystemWayland::processEvents().
|
static |
Definition at line 2547 of file GHOST_SystemWayland.cc.
References file_descriptor_is_io_ready(), GWL_IOR_NO_RETRY, GWL_IOR_READ, INT32_MAX, state, wl_display, wl_display_cancel_read, wl_display_dispatch_pending, wl_display_prepare_read, and wl_display_read_events.
Referenced by gwl_display_event_thread_fn().
|
static |
Definition at line 2530 of file GHOST_SystemWayland.cc.
References file_descriptor_is_io_ready(), GWL_IOR_NO_RETRY, GWL_IOR_READ, state, wl_display, and wl_display_get_fd.
Referenced by gwl_display_destroy().
|
static |
Definition at line 2069 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, ghost_wl_display_report_error_from_code(), wl_display, and wl_display_get_error.
Referenced by GHOST_SystemWayland::processEvents().
|
static |
Definition at line 2044 of file GHOST_SystemWayland.cc.
References ELEM, GHOST_ASSERT, interface, nullptr, wl_display, and wl_display_get_protocol_error.
Referenced by ghost_wl_display_report_error(), and ghost_wl_display_report_error_if_set().
| bool ghost_wl_display_report_error_if_set | ( | wl_display * | display | ) |
Definition at line 2090 of file GHOST_SystemWayland.cc.
References ghost_wl_display_report_error_from_code(), wl_display, and wl_display_get_error.
Referenced by GHOST_WindowWayland::GHOST_WindowWayland().
|
static |
Access the LOCALE (with a fallback).
Definition at line 2029 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_add().
|
static |
Return milliseconds from a microsecond uint32 pair (used by some wayland functions).
Definition at line 2021 of file GHOST_SystemWayland.cc.
Referenced by relative_pointer_handle_relative_motion().
| bool ghost_wl_output_own | ( | const wl_output * | wl_output | ) |
Definition at line 9243 of file GHOST_SystemWayland.cc.
References ghost_wl_output_tag_id, 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 | ( | wl_output * | wl_output | ) |
Definition at line 9273 of file GHOST_SystemWayland.cc.
References ghost_wl_output_tag_id, and wl_proxy_set_tag.
Referenced by gwl_registry_wl_output_add().
| GWL_Output * ghost_wl_output_user_data | ( | wl_output * | wl_output | ) |
Definition at line 9506 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, ghost_wl_output_own(), and output.
Referenced by cursor_surface_handle_enter(), cursor_surface_handle_leave(), GHOST_SystemWayland::output_unref(), surface_handle_enter(), and surface_handle_leave().
|
static |
Definition at line 2593 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT.
Referenced by ghost_wl_buffer_create_for_image().
| bool ghost_wl_surface_own | ( | const wl_surface * | wl_surface | ) |
Definition at line 9249 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_tag_id, wl_proxy_get_tag, and wl_surface.
Referenced by ghost_wl_surface_own_with_null_check(), and ghost_wl_surface_user_data().
| bool ghost_wl_surface_own_cursor_pointer | ( | const wl_surface * | wl_surface | ) |
Definition at line 9260 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_cursor_pointer_tag_id, wl_proxy_get_tag, and wl_surface.
Referenced by gwl_seat_state_pointer_from_cursor_surface().
| bool ghost_wl_surface_own_cursor_tablet | ( | const wl_surface * | wl_surface | ) |
Definition at line 9267 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_cursor_tablet_tag_id, wl_proxy_get_tag, and wl_surface.
Referenced by gwl_seat_state_pointer_from_cursor_surface().
| bool ghost_wl_surface_own_with_null_check | ( | const wl_surface * | wl_surface | ) |
Definition at line 9255 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_own(), and wl_surface.
Referenced by data_device_handle_enter(), keyboard_handle_enter(), keyboard_handle_leave(), pointer_handle_enter(), pointer_handle_leave(), tablet_tool_handle_proximity_in(), and touch_seat_handle_down().
| void ghost_wl_surface_tag | ( | wl_surface * | wl_surface | ) |
Definition at line 9279 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_tag_id, wl_proxy_set_tag, and wl_surface.
Referenced by GHOST_WindowWayland::GHOST_WindowWayland().
| void ghost_wl_surface_tag_cursor_pointer | ( | wl_surface * | wl_surface | ) |
Definition at line 9285 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_cursor_pointer_tag_id, wl_proxy_set_tag, and wl_surface.
Referenced by gwl_seat_capability_pointer_enable().
| void ghost_wl_surface_tag_cursor_tablet | ( | wl_surface * | wl_surface | ) |
Definition at line 9291 of file GHOST_SystemWayland.cc.
References ghost_wl_surface_cursor_tablet_tag_id, wl_proxy_set_tag, and wl_surface.
Referenced by tablet_seat_handle_tool_added().
| GHOST_WindowWayland * ghost_wl_surface_user_data | ( | wl_surface * | wl_surface | ) |
Definition at line 9514 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, ghost_wl_surface_own(), and wl_surface.
Referenced by data_device_handle_drop(), dnd_events(), GHOST_SystemWayland::getCursorPosition(), gwl_seat_key_repeat_timer_fn(), keyboard_handle_enter(), keyboard_handle_key(), pointer_handle_enter(), pointer_handle_frame(), relative_pointer_handle_relative_motion(), setCursorGrab_use_software_confine(), GHOST_SystemWayland::setCursorPosition(), tablet_tool_handle_frame(), tablet_tool_handle_proximity_in(), touch_seat_handle_down(), touch_seat_handle_frame(), update_cursor_scale(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 7461 of file GHOST_SystemWayland.cc.
References GWL_RegistryHandler::add_fn, CLOG_DEBUG, data, GHOST_ASSERT, gwl_registry_entry_update_all(), gwl_registry_handler_interface_slot_from_string(), gwl_registry_handlers, interface, LOG, name, params, GWL_Display::registry, GWL_Display::registry_entry, GWL_Display::registry_skip_update_all, and GWL_Display::wl.
|
static |
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 7514 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GHOST_ASSERT, gwl_registry_entry_remove_by_name(), gwl_registry_entry_update_all(), gwl_registry_handlers, LOG, name, GWL_Display::registry, GWL_Display::registry_skip_update_all, and GWL_Display::wl.
|
static |
Return a list of URI ranges (without the file:// prefix), the result should be decoded via GHOST_URL_decode_alloc before passed to the file-system.
Definition at line 2369 of file GHOST_SystemWayland.cc.
References data, pos, and UNLIKELY.
Referenced by data_device_handle_drop(), GHOST_SystemWayland::getClipboardImage(), and GHOST_SystemWayland::hasClipboardImage().
|
static |
Free the GWL_Display and its related members.
Definition at line 1599 of file GHOST_SystemWayland.cc.
References GWL_Display::background, GWL_Display::display, GWL_Display::events_pending, GWL_Display::events_pthread, GWL_Display::events_pthread_is_active, GWL_Display::ghost_timer_manager, ghost_wl_display_lock_without_input(), gwl_display_event_thread_destroy(), gwl_registry_entry_remove_all(), gwl_xdg_decor_system_destroy(), GWL_Display::registry, GHOST_SystemWayland::server_mutex, GWL_Display::system, GWL_Display::wl, wl_display_disconnect, and GWL_Display::xdg_decor.
|
static |
Definition at line 7576 of file GHOST_SystemWayland.cc.
References GWL_Display::background, GWL_Display::events_pending, events_pending_default_size, GWL_Display::events_pthread, GWL_Display::events_pthread_is_active, GHOST_ASSERT, gwl_display_event_thread_fn(), and pthread_set_min_priority().
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 7589 of file GHOST_SystemWayland.cc.
References GWL_Display::background, GWL_Display::events_pthread, and GHOST_ASSERT.
Referenced by gwl_display_destroy().
|
static |
Definition at line 7552 of file GHOST_SystemWayland.cc.
References GWL_Display::background, GWL_Display::display, GWL_Display::events_pthread_is_active, GHOST_ASSERT, ghost_wl_display_event_pump_from_thread(), GHOST_SystemWayland::server_mutex, GWL_Display::system, GWL_Display::wl, and wl_display_get_fd.
Referenced by gwl_display_event_thread_create().
|
static |
Callers must null check the return value unless it's known there is a seat.
Definition at line 1688 of file GHOST_SystemWayland.cc.
References GWL_Display::seats, GWL_Display::seats_active_index, and UNLIKELY.
Referenced by GHOST_SystemWayland::cursor_bitmap_get(), GHOST_SystemWayland::cursor_grab_use_software_display_get(), GHOST_SystemWayland::cursor_shape_check(), GHOST_SystemWayland::cursor_shape_custom_set(), GHOST_SystemWayland::cursor_shape_set(), GHOST_SystemWayland::cursor_visibility_set(), GHOST_SystemWayland::getButtons(), GHOST_SystemWayland::getCapabilities(), GHOST_SystemWayland::getClipboardImage(), GHOST_SystemWayland::getCursorPosition(), GHOST_SystemWayland::getCursorPositionClientRelative(), GHOST_SystemWayland::getCursorPreferredLogicalSize(), GHOST_SystemWayland::getModifierKeys(), GHOST_SystemWayland::hasClipboardImage(), GHOST_SystemWayland::putClipboardImage(), GHOST_SystemWayland::setCursorPosition(), GHOST_SystemWayland::setCursorPositionClientRelative(), system_clipboard_get(), system_clipboard_get_primary_selection(), system_clipboard_put(), system_clipboard_put_primary_selection(), GHOST_SystemWayland::window_cursor_grab_set(), and GHOST_SystemWayland::wl_seat_active_get_with_input_serial().
|
static |
Definition at line 1696 of file GHOST_SystemWayland.cc.
References gwl_display_seat_index(), GWL_Display::seats, GWL_Display::seats_active_index, and UNLIKELY.
Referenced by GHOST_SystemWayland::seat_active_set().
|
static |
Definition at line 1671 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, and GWL_Display::seats.
Referenced by gwl_display_seat_active_set().
|
static |
Definition at line 793 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointer_Events::frame_event_ms, GWL_SeatStatePointer_Events::frame_pending, GWL_SeatStatePointer_Events::frame_types, GWL_SeatStatePointer_Events::frame_types_mask, GWL_SeatStatePointer_Events::frame_types_num, GHOST_ASSERT, i, and Scroll.
Referenced by pointer_handle_axis(), pointer_handle_axis_discrete(), pointer_handle_axis_value120(), pointer_handle_button(), and pointer_handle_motion().
|
static |
Definition at line 818 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointer_Events::frame_pending, GWL_SeatStatePointer_Events::frame_types_mask, and GWL_SeatStatePointer_Events::frame_types_num.
Referenced by pointer_handle_frame().
|
static |
Definition at line 988 of file GHOST_SystemWayland.cc.
References GWL_PrimarySelection::data_offer, GWL_PrimarySelection_DataOffer::id, and GWL_PrimarySelection_DataOffer::wp.
Referenced by gwl_registry_wl_seat_remove(), and primary_selection_device_handle_selection().
|
static |
Definition at line 998 of file GHOST_SystemWayland.cc.
References GWL_PrimarySelection_DataSource::buffer_out, GWL_PrimarySelection::data_source, gwl_simple_buffer_free_data(), GWL_PrimarySelection_DataSource::source, and GWL_PrimarySelection_DataSource::wp.
Referenced by gwl_registry_wl_seat_remove(), primary_selection_source_cancelled(), and system_clipboard_put_primary_selection().
|
static |
Definition at line 6694 of file GHOST_SystemWayland.cc.
References GWL_Display::compositor, GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, and GWL_Display::wl.
|
static |
Definition at line 6703 of file GHOST_SystemWayland.cc.
References GWL_Display::compositor, and GWL_Display::wl.
|
static |
Definition at line 1809 of file GHOST_SystemWayland.cc.
References GWL_RegistryEntry::interface_slot, GWL_RegistryEntry::name, GWL_RegistryEntry::next, params, GWL_Display::registry_entry, GWL_RegistryEntry::user_data, and GWL_RegistryEntry::version.
Referenced by gwl_registry_compositor_add(), gwl_registry_wl_data_device_manager_add(), gwl_registry_wl_output_add(), gwl_registry_wl_seat_add(), gwl_registry_wl_shm_add(), gwl_registry_wp_cursor_shape_manager_add(), gwl_registry_wp_fractional_scale_manager_add(), gwl_registry_wp_pointer_constraints_add(), gwl_registry_wp_pointer_gestures_add(), gwl_registry_wp_primary_selection_device_manager_add(), gwl_registry_wp_relative_pointer_manager_add(), gwl_registry_wp_tablet_manager_add(), gwl_registry_wp_viewporter_add(), gwl_registry_xdg_activation_add(), gwl_registry_xdg_decoration_manager_add(), gwl_registry_xdg_output_manager_add(), and gwl_registry_xdg_wm_base_add().
|
static |
Remove all global objects (on exit).
Definition at line 1885 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, gwl_registry_entry_remove_by_interface_slot(), gwl_registry_handler_interface_slot_max(), and GWL_Display::registry_entry.
Referenced by gwl_display_destroy().
|
static |
Definition at line 1856 of file GHOST_SystemWayland.cc.
References gwl_registry_handler_from_interface_slot(), GWL_RegistryEntry::interface_slot, GWL_RegistryEntry::next, GWL_Display::registry_entry, GWL_RegistryHandler::remove_fn, and GWL_RegistryEntry::user_data.
Referenced by gwl_registry_entry_remove_all().
|
static |
Definition at line 1824 of file GHOST_SystemWayland.cc.
References gwl_registry_handler_from_interface_slot(), GWL_RegistryEntry::interface_slot, GWL_RegistryEntry::name, name, GWL_RegistryEntry::next, GWL_Display::registry_entry, GWL_RegistryHandler::remove_fn, and GWL_RegistryEntry::user_data.
Referenced by global_handle_remove(), and gwl_xdg_decor_system_destroy().
|
static |
Run GWL_RegistryHandler.update_fn an all registered interface instances. This is needed to refresh the state of interfaces that may reference other interfaces. Called when interfaces are added/removed.
| interface_slot_exclude | Skip updating slots of this type. Note that while harmless dependencies only exist between different types, so there is no reason to update all other outputs that an output was removed (for example). Pass as -1 to update all slots. |
NOTE(@ideasman42): Updating all other items on a single change is typically worth avoiding. In practice this isn't a problem as so there are so few elements in display->registry_entry, so few use update functions and adding/removal at runtime is rarely called (plugging/unplugging) hardware for example So while it's possible to store dependency links to avoid unnecessary looping over data - it ends up being a non issue.
Definition at line 1925 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, gwl_registry_handler_from_interface_slot(), gwl_registry_handler_interface_slot_max(), GWL_RegistryEntry::next, params, GWL_Display::registry_entry, and GWL_RegistryHandler::update_fn.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), global_handle_add(), and global_handle_remove().
|
static |
Definition at line 7454 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, gwl_registry_handler_interface_slot_max(), and gwl_registry_handlers.
Referenced by gwl_registry_entry_remove_by_interface_slot(), gwl_registry_entry_remove_by_name(), and gwl_registry_entry_update_all().
|
static |
Definition at line 7442 of file GHOST_SystemWayland.cc.
References gwl_registry_handlers, interface, and STREQ.
Referenced by global_handle_add().
|
static |
Workaround for gwl_registry_handlers order of declaration, preventing ARRAY_SIZE(gwl_registry_handlers) - 1 being used.
Definition at line 7437 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, and gwl_registry_handlers.
Referenced by gwl_registry_entry_remove_all(), gwl_registry_entry_update_all(), and gwl_registry_handler_from_interface_slot().
|
static |
Definition at line 7069 of file GHOST_SystemWayland.cc.
References GWL_Display::data_device_manager, GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, and GWL_Display::wl.
|
static |
Definition at line 7078 of file GHOST_SystemWayland.cc.
References GWL_Display::data_device_manager, and GWL_Display::wl.
|
static |
Definition at line 6788 of file GHOST_SystemWayland.cc.
References ghost_wl_output_tag(), GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), output, output_listener, GWL_Display::outputs, params, GWL_Display::registry, GWL_Display::system, and GWL_Display::wl.
|
static |
Definition at line 6818 of file GHOST_SystemWayland.cc.
References CLOG_WARN, GHOST_ASSERT, LOG, output, and GWL_Display::outputs.
|
static |
Definition at line 6803 of file GHOST_SystemWayland.cc.
References output, GWL_Display::output_manager, params, GWL_Display::xdg, and xdg_output_listener.
|
static |
Definition at line 6856 of file GHOST_SystemWayland.cc.
References GWL_Seat::compose_table, GWL_Seat::context, GWL_Seat::data_source, ghost_wl_locale_from_env_with_default(), GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), has_wl_trackpad_physical_direction, params, GWL_Display::registry, GWL_Seat::seat, seat_listener, GWL_Display::seats, GWL_Display::system, GWL_Seat::system, GWL_Display::wl, GWL_Seat::wl, and GWL_Seat::xkb.
|
static |
Definition at line 6933 of file GHOST_SystemWayland.cc.
References GWL_Cursor::buffer, GWL_DataSource::buffer_out, GWL_Seat::compose_state, GWL_Seat::compose_table, GWL_Seat::context, GWL_Seat::cursor, GWL_Cursor::custom_data, GWL_Cursor::custom_data_size, GWL_Seat::data_device, GWL_Seat::data_offer_copy_paste, GWL_Seat::data_offer_copy_paste_mutex, GWL_Seat::data_offer_dnd, GWL_Seat::data_offer_dnd_mutex, GWL_PrimarySelection::data_offer_mutex, GWL_Seat::data_source, GWL_PrimarySelection::data_source_mutex, GWL_Seat::data_source_mutex, GHOST_ASSERT, gwl_primary_selection_discard_offer(), gwl_primary_selection_discard_source(), gwl_seat_capability_keyboard_disable(), gwl_seat_capability_pointer_disable(), gwl_seat_capability_touch_disable(), gwl_simple_buffer_free_data(), GWL_DataOffer::id, lock, GWL_Seat::primary_selection, GWL_Seat::primary_selection_device, GWL_Seat::seat, GWL_Display::seats, GWL_Display::seats_active_index, GWL_DataSource::source, GWL_Seat::state, GWL_Seat::state_empty, GWL_Seat::state_empty_with_numlock, GWL_Seat::state_empty_with_shift, GWL_Seat::tablet_seat, GWL_Cursor::wl, GWL_DataOffer::wl, GWL_DataSource::wl, GWL_Seat::wl, GWL_Seat::wp, and GWL_Seat::xkb.
|
static |
Definition at line 6877 of file GHOST_SystemWayland.cc.
References GWL_Seat::data_device, data_device_listener, GWL_Display::data_device_manager, params, GWL_Seat::primary_selection, GWL_Seat::primary_selection_device, primary_selection_device_listener, GWL_Display::primary_selection_device_manager, GWL_Seat::seat, GWL_Display::tablet_manager, GWL_Seat::tablet_seat, tablet_seat_listener, GWL_Display::wl, GWL_Seat::wl, GWL_Display::wp, and GWL_Seat::wp.
|
static |
Definition at line 7050 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::shm, and GWL_Display::wl.
|
static |
Definition at line 7058 of file GHOST_SystemWayland.cc.
References GWL_Display::shm, and GWL_Display::wl.
|
static |
Definition at line 7283 of file GHOST_SystemWayland.cc.
References GWL_Display::cursor_shape_manager, GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7292 of file GHOST_SystemWayland.cc.
References GWL_Display::cursor_shape_manager, and GWL_Display::wp.
|
static |
Definition at line 7193 of file GHOST_SystemWayland.cc.
References GWL_Display::fractional_scale_manager, GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7203 of file GHOST_SystemWayland.cc.
References GWL_Display::fractional_scale_manager, and GWL_Display::wp.
|
static |
Definition at line 7130 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::pointer_constraints, GWL_Display::registry, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7139 of file GHOST_SystemWayland.cc.
References GWL_Display::pointer_constraints, and GWL_Display::wp.
|
static |
Definition at line 7150 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::pointer_gestures, GWL_Display::registry, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7162 of file GHOST_SystemWayland.cc.
References GWL_Display::pointer_gestures, and GWL_Display::wp.
|
static |
Definition at line 7234 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::primary_selection_device_manager, GWL_Display::registry, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7247 of file GHOST_SystemWayland.cc.
References GWL_Display::primary_selection_device_manager, and GWL_Display::wp.
|
static |
Definition at line 7109 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::relative_pointer_manager, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7119 of file GHOST_SystemWayland.cc.
References GWL_Display::relative_pointer_manager, and GWL_Display::wp.
|
static |
Definition at line 7089 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::tablet_manager, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7098 of file GHOST_SystemWayland.cc.
References GWL_Display::tablet_manager, and GWL_Display::wp.
|
static |
Definition at line 7214 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::viewporter, GWL_Display::wl, and GWL_Display::wp.
|
static |
Definition at line 7223 of file GHOST_SystemWayland.cc.
References GWL_Display::viewporter, and GWL_Display::wp.
|
static |
Definition at line 7173 of file GHOST_SystemWayland.cc.
References GWL_Display::activation_manager, GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_Display::wl, and GWL_Display::xdg.
|
static |
Definition at line 7182 of file GHOST_SystemWayland.cc.
References GWL_Display::activation_manager, and GWL_Display::xdg.
|
static |
Definition at line 6740 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), GWL_XDG_Decor_System::manager, GWL_XDG_Decor_System::manager_name, params, GWL_Display::registry, GWL_Display::wl, and GWL_Display::xdg_decor.
|
static |
Definition at line 6751 of file GHOST_SystemWayland.cc.
References GWL_XDG_Decor_System::manager, GWL_XDG_Decor_System::manager_name, WL_NAME_UNSET, and GWL_Display::xdg_decor.
|
static |
Definition at line 6765 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), GWL_Display::output_manager, params, GWL_Display::registry, GWL_Display::wl, and GWL_Display::xdg.
|
static |
Definition at line 6777 of file GHOST_SystemWayland.cc.
References GWL_Display::output_manager, and GWL_Display::xdg.
|
static |
Definition at line 6714 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_Display::registry, GWL_XDG_Decor_System::shell, shell_listener, GWL_XDG_Decor_System::shell_name, GWL_Display::wl, and GWL_Display::xdg_decor.
|
static |
Definition at line 6726 of file GHOST_SystemWayland.cc.
References GWL_XDG_Decor_System::shell, GWL_XDG_Decor_System::shell_name, WL_NAME_UNSET, and GWL_Display::xdg_decor.
|
static |
Definition at line 877 of file GHOST_SystemWayland.cc.
References add(), GWL_ScaledFixedT::factor, and GWL_ScaledFixedT::value.
|
static |
Definition at line 6335 of file GHOST_SystemWayland.cc.
References GWL_Seat::key_repeat, GWL_Seat::keyboard, keyboard_handle_key_repeat_cancel(), GWL_Seat::system, GWL_Seat::timer, GHOST_SystemWayland::timer_mutex, and GWL_Seat::wl.
Referenced by gwl_registry_wl_seat_remove(), and seat_handle_capabilities().
|
static |
Definition at line 6326 of file GHOST_SystemWayland.cc.
References GWL_Seat::keyboard, keyboard_listener, GWL_Seat::seat, and GWL_Seat::wl.
Referenced by seat_handle_capabilities().
|
static |
Definition at line 6304 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, GWL_CursorShape::device, gwl_seat_capability_pointer_multitouch_disable(), GWL_Seat::pointer, GWL_Cursor::shape, GWL_Cursor::surface_cursor, GWL_Cursor::wl, and GWL_Seat::wl.
Referenced by gwl_registry_wl_seat_remove(), and seat_handle_capabilities().
|
static |
Definition at line 6265 of file GHOST_SystemWayland.cc.
References GWL_Cursor::buffer, GWL_Seat::cursor, cursor_surface_listener, default_cursor_size, ghost_wl_surface_tag_cursor_pointer(), gwl_seat_capability_pointer_multitouch_enable(), GWL_Seat::pointer, pointer_listener, GWL_Seat::seat, GWL_Cursor::surface_cursor, GWL_Seat::system, GWL_Cursor::theme_size, GWL_Cursor::use_dark_theme, GWL_Cursor::visible, GWL_Cursor::wl, GWL_Seat::wl, and GHOST_SystemWayland::wl_compositor_get().
Referenced by seat_handle_capabilities().
|
static |
Definition at line 6146 of file GHOST_SystemWayland.cc.
References GWL_Seat::pointer_gesture_pinch, GWL_Seat::system, GWL_Seat::use_pointer_scroll_smooth_as_discrete, GWL_Seat::wp, and GHOST_SystemWayland::wp_pointer_gestures_get().
Referenced by GHOST_SystemWayland::setMultitouchGestures().
|
static |
Definition at line 6224 of file GHOST_SystemWayland.cc.
References GWL_Seat::pointer_gesture_pinch, GWL_Seat::pointer_scroll, GWL_SeatStatePointerScroll::smooth_as_discrete, GWL_SeatStatePointerScroll::smooth_xy, GWL_Seat::system, GWL_Seat::use_pointer_scroll_smooth_as_discrete, GWL_Seat::wp, and GHOST_SystemWayland::wp_pointer_gestures_get().
Referenced by gwl_seat_capability_pointer_disable(), and GHOST_SystemWayland::setMultitouchGestures().
|
static |
Definition at line 6182 of file GHOST_SystemWayland.cc.
References GWL_Seat::pointer, GWL_Seat::pointer_gesture_pinch, GWL_Seat::pointer_scroll, GWL_SeatStatePointerScroll::smooth_as_discrete, GWL_Seat::system, GWL_Seat::use_pointer_scroll_smooth_as_discrete, GWL_Seat::wl, GWL_Seat::wp, and GHOST_SystemWayland::wp_pointer_gestures_get().
Referenced by gwl_seat_capability_pointer_enable(), and GHOST_SystemWayland::setMultitouchGestures().
|
static |
Definition at line 6363 of file GHOST_SystemWayland.cc.
References GWL_Seat::touch, and GWL_Seat::wl.
Referenced by gwl_registry_wl_seat_remove(), and seat_handle_capabilities().
|
static |
Definition at line 6353 of file GHOST_SystemWayland.cc.
References GWL_Seat::seat, GWL_Seat::touch, touch_seat_listener, and GWL_Seat::wl.
Referenced by seat_handle_capabilities().
|
static |
Hide the buffer defined by gwl_seat_cursor_buffer_set without changing anything else, so gwl_seat_cursor_buffer_show can be used to display it again.
The caller is responsible for setting seat->cursor.visible.
Definition at line 2987 of file GHOST_SystemWayland.cc.
References GWL_Seat::pointer, GWL_TabletTool::serial, GWL_Seat::tablet_tools, GWL_Seat::wl, and GWL_Seat::wp.
Referenced by gwl_seat_cursor_visible_set().
|
static |
Currently account for all cursors as the buffer is shared.
Note that a per pointing device buffer would be better, this is more of a low priority to-do.
Definition at line 2917 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointer::buffer_scale, GWL_Seat::pointer, GWL_Seat::tablet, GWL_Seat::tablet_seat, GWL_Seat::wl, and GWL_Seat::wp.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set(), gwl_seat_cursor_buffer_set(), gwl_seat_cursor_buffer_show(), and update_cursor_scale().
|
static |
Definition at line 2997 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, cursor_buffer_set_surface_impl(), gwl_seat_cursor_buffer_scale_calc(), GWL_Cursor::is_hardware, GWL_Seat::pointer, GWL_TabletTool::serial, GWL_Cursor::surface_cursor, GWL_TabletTool::surface_cursor, GWL_Seat::tablet_tools, GWL_Cursor::visible, GWL_Cursor::wl, GWL_Seat::wl, GWL_TabletTool::wl, and GWL_Seat::wp.
Referenced by gwl_seat_cursor_buffer_set_current().
|
static |
Definition at line 3036 of file GHOST_SystemWayland.cc.
References GWL_Cursor::buffer, GWL_Seat::cursor, gwl_seat_cursor_buffer_set(), GWL_Cursor::image, and GWL_Cursor::wl.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set().
|
static |
Show the buffer defined by gwl_seat_cursor_buffer_set without changing anything else, so gwl_seat_cursor_buffer_hide can be used to display it again.
The caller is responsible for setting seat->cursor.visible.
Definition at line 2935 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, GWL_CursorShape::device, GWL_CursorShape::enum_id, gwl_seat_cursor_buffer_scale_calc(), GWL_Cursor::image, GWL_Seat::pointer, GWL_TabletTool::serial, GWL_Cursor::shape, GWL_TabletTool::shape, GWL_Cursor::surface_cursor, GWL_TabletTool::surface_cursor, GWL_Seat::tablet_tools, GWL_Cursor::wl, GWL_Seat::wl, GWL_TabletTool::wl, and GWL_Seat::wp.
Referenced by gwl_seat_cursor_visible_set().
|
static |
Definition at line 2794 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, GHOST_kStandardCursorBlade, GHOST_kStandardCursorBothHandles, GHOST_kStandardCursorBottomLeftCorner, GHOST_kStandardCursorBottomRightCorner, GHOST_kStandardCursorBottomSide, GHOST_kStandardCursorCopy, GHOST_kStandardCursorCrosshair, GHOST_kStandardCursorCrosshairA, GHOST_kStandardCursorCrosshairB, GHOST_kStandardCursorCrosshairC, GHOST_kStandardCursorCustom, GHOST_kStandardCursorDefault, GHOST_kStandardCursorDestroy, GHOST_kStandardCursorDownArrow, GHOST_kStandardCursorEraser, GHOST_kStandardCursorEWScroll, GHOST_kStandardCursorEyedropper, GHOST_kStandardCursorHandClosed, GHOST_kStandardCursorHandOpen, GHOST_kStandardCursorHandPoint, GHOST_kStandardCursorHelp, GHOST_kStandardCursorHorizontalSplit, GHOST_kStandardCursorInfo, GHOST_kStandardCursorKnife, GHOST_kStandardCursorLeftArrow, GHOST_kStandardCursorLeftHandle, GHOST_kStandardCursorLeftRight, GHOST_kStandardCursorLeftSide, GHOST_kStandardCursorMove, GHOST_kStandardCursorNSEWScroll, GHOST_kStandardCursorNSScroll, GHOST_kStandardCursorPencil, GHOST_kStandardCursorRightArrow, GHOST_kStandardCursorRightHandle, GHOST_kStandardCursorRightSide, GHOST_kStandardCursorSlip, GHOST_kStandardCursorStop, GHOST_kStandardCursorText, GHOST_kStandardCursorTopLeftCorner, GHOST_kStandardCursorTopRightCorner, GHOST_kStandardCursorTopSide, GHOST_kStandardCursorUpArrow, GHOST_kStandardCursorUpDown, GHOST_kStandardCursorVerticalSplit, GHOST_kStandardCursorWait, GHOST_kStandardCursorZoomIn, and GHOST_kStandardCursorZoomOut.
Referenced by GHOST_SystemWayland::cursor_shape_check(), and GHOST_SystemWayland::cursor_shape_set().
|
static |
Definition at line 3048 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, CURSOR_VISIBLE_ALWAYS_SET, CURSOR_VISIBLE_ONLY_HIDE, CURSOR_VISIBLE_ONLY_SHOW, gwl_seat_cursor_buffer_hide(), gwl_seat_cursor_buffer_show(), GWL_Cursor::is_hardware, and GWL_Cursor::visible.
Referenced by GHOST_SystemWayland::cursor_visibility_set(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Account for changes to #GWL_Seat::xkb::layout_active by running #xkb_state_update_mask on static states which are used for lookups.
This is also used when initializing the states.
Definition at line 1290 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, GWL_Seat::layout_active, MOD_INDEX_SHIFT, GWL_Seat::state_empty, GWL_Seat::state_empty_with_numlock, GWL_Seat::state_empty_with_shift, GWL_Seat::xkb, GWL_Seat::xkb_keymap_mod_index, GWL_Seat::xkb_keymap_mod_index_mod2, and GWL_Seat::xkb_keymap_mod_index_numlock.
Referenced by keyboard_handle_keymap(), and keyboard_handle_modifiers().
|
static |
Definition at line 1355 of file GHOST_SystemWayland.cc.
References GHOST_TimerManager::addTimer(), GWL_Seat::delay, GHOST_SystemWayland::getMilliSeconds(), GHOST_ASSERT, GHOST_SystemWayland::ghost_timer_manager(), GHOST_System::installTimer(), GWL_Seat::key_repeat, GWL_Seat::rate, GWL_Seat::system, GWL_Seat::timer, and timer.
Referenced by keyboard_handle_enter(), keyboard_handle_key(), and keyboard_handle_key_repeat_reset().
|
static |
Callback that runs from GHOST's timer.
Definition at line 1318 of file GHOST_SystemWayland.cc.
References GWL_Seat::compose_state, GHOST_ITimerTask::getUserData(), GHOST_kEventKeyDown, ghost_wl_surface_user_data(), GWL_KeyRepeatPlayload::gkey, GWL_KeyRepeatPlayload::key_code, GWL_KeyRepeatPlayload::key_data, GWL_Seat::keyboard, GHOST_SystemWayland::pushEvent_maybe_pending(), GWL_KeyRepeatPlayload::seat, GWL_Seat::state, GWL_Seat::system, GWL_KeyRepeatPlayload::time_ms_init, UNLIKELY, GHOST_TEventKeyData::utf8_buf, wl_surface, GWL_Seat::xkb, and xkb_compose_state_feed_and_get_utf8().
Referenced by keyboard_handle_enter(), and keyboard_handle_key().
|
static |
Definition at line 1382 of file GHOST_SystemWayland.cc.
References GHOST_SystemWayland::ghost_timer_manager(), GWL_Seat::key_repeat, GHOST_System::removeTimer(), GHOST_TimerManager::removeTimer(), GWL_Seat::system, and GWL_Seat::timer.
Referenced by keyboard_handle_key(), keyboard_handle_key_repeat_cancel(), and keyboard_handle_key_repeat_reset().
|
static |
Definition at line 1257 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor_source_serial, GWL_Seat::pointer, GWL_SeatStatePointer::serial, GWL_Seat::tablet, and GWL_Seat::touch.
Referenced by GHOST_SystemWayland::getButtons(), GHOST_SystemWayland::getCursorPosition(), and GHOST_SystemWayland::getCursorPositionClientRelative().
|
static |
Definition at line 1271 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, ghost_wl_surface_own_cursor_pointer(), ghost_wl_surface_own_cursor_tablet(), GWL_Seat::pointer, GWL_Seat::tablet, and wl_surface.
Referenced by cursor_surface_handle_enter(), and cursor_surface_handle_leave().
|
static |
Definition at line 408 of file GHOST_SystemWayland.cc.
References GWL_SimpleBuffer::data, GWL_SimpleBuffer::data_size, and free().
Referenced by gwl_primary_selection_discard_source(), gwl_registry_wl_seat_remove(), and GHOST_SystemWayland::putClipboardImage().
|
static |
Definition at line 415 of file GHOST_SystemWayland.cc.
References data, GWL_SimpleBuffer::data, GWL_SimpleBuffer::data_size, free(), and str.
Referenced by system_clipboard_put(), and system_clipboard_put_primary_selection().
|
static |
Definition at line 579 of file GHOST_SystemWayland.cc.
References GWL_TabletTool::frame_pending, GWL_TabletTool::frame_types, GWL_TabletTool::frame_types_mask, GWL_TabletTool::frame_types_num, and i.
Referenced by tablet_tool_handle_button(), tablet_tool_handle_down(), tablet_tool_handle_motion(), tablet_tool_handle_pressure(), tablet_tool_handle_tilt(), tablet_tool_handle_up(), and tablet_tool_handle_wheel().
|
static |
Definition at line 592 of file GHOST_SystemWayland.cc.
References GWL_TabletTool::frame_pending, GWL_TabletTool::frame_types_mask, and GWL_TabletTool::frame_types_num.
Referenced by tablet_tool_handle_frame().
|
static |
Definition at line 945 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, gwl_registry_entry_remove_by_name(), GWL_XDG_Decor_System::manager, GWL_XDG_Decor_System::manager_name, GWL_XDG_Decor_System::shell, and GWL_XDG_Decor_System::shell_name.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), and gwl_display_destroy().
|
static |
Definition at line 3105 of file GHOST_SystemWayland.cc.
References CLOG_WARN, GHOST_kEventKeyUp, GHOST_KEY_MODIFIER_CHECK, GHOST_KEY_MODIFIER_TO_INDEX, GWL_Seat::key_depressed, LOG, GWL_KeyboardDepressedState::mods, and UNLIKELY.
Referenced by keyboard_handle_enter(), and keyboard_handle_key().
|
static |
Definition at line 3125 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GHOST_kEventKeyDown, GHOST_kEventKeyUp, GHOST_KEY_MODIFIER_FROM_INDEX, GHOST_KEY_MODIFIER_NUM, i, GWL_Seat::key_depressed, LOG, GWL_KeyboardDepressedState::mods, GHOST_SystemWayland::pushEvent_maybe_pending(), and GWL_Seat::system.
Referenced by keyboard_handle_enter().
|
static |
Definition at line 3098 of file GHOST_SystemWayland.cc.
References GHOST_KEY_MODIFIER_NUM, i, GWL_Seat::key_depressed, and GWL_KeyboardDepressedState::mods.
Referenced by keyboard_handle_enter(), and keyboard_handle_keymap().
|
static |
Enter event.
Notification that this seat's keyboard focus is on a certain wl_surface.
Definition at line 5320 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, EVDEV_OFFSET, GHOST_SystemWayland::getMilliSeconds(), GHOST_kEventKeyDown, GHOST_kKeyUnknown, ghost_wl_surface_own_with_null_check(), ghost_wl_surface_user_data(), GWL_KeyRepeatPlayload::gkey, gwl_seat_key_repeat_timer_add(), gwl_seat_key_repeat_timer_fn(), GWL_KeyRepeatPlayload::key_code, GWL_KeyRepeatPlayload::key_data, GWL_Seat::key_depressed, GWL_Seat::key_repeat, GWL_Seat::keyboard, keyboard_depressed_state_key_event(), keyboard_depressed_state_push_events_from_change(), keyboard_depressed_state_reset(), keyboard_handle_key_repeat_cancel(), LOG, GWL_Seat::rate, GWL_KeyRepeatPlayload::seat, GHOST_SystemWayland::seat_active_set(), GWL_Seat::state, GWL_Seat::system, GWL_Seat::timer, GHOST_SystemWayland::timer_mutex, UNLIKELY, WL_ARRAY_FOR_EACH, wl_surface, GWL_Seat::xkb, and xkb_map_gkey_or_scan_code().
|
static |
Definition at line 5566 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GWL_Seat::compose_state, data, GWL_Seat::data_source_serial, EVDEV_OFFSET, GHOST_ITimerTask::getUserData(), GHOST_kEventKeyDown, GHOST_kEventKeyUp, GHOST_kEventUnknown, ghost_wl_surface_user_data(), GWL_KeyRepeatPlayload::gkey, gwl_seat_key_repeat_timer_add(), gwl_seat_key_repeat_timer_fn(), gwl_seat_key_repeat_timer_remove(), GWL_KeyRepeatPlayload::key_code, GWL_KeyRepeatPlayload::key_data, GWL_Seat::key_repeat, GWL_Seat::keyboard, keyboard_depressed_state_key_event(), LOG, GHOST_SystemWayland::ms_from_input_time(), GHOST_SystemWayland::pushEvent_maybe_pending(), GWL_Seat::rate, GWL_KeyRepeatPlayload::seat, GWL_Seat::state, state, GWL_Seat::state_empty, GWL_Seat::state_empty_with_numlock, GWL_Seat::state_empty_with_shift, GWL_Seat::system, GWL_Seat::timer, GHOST_SystemWayland::timer_mutex, USE_NON_LATIN_KB_WORKAROUND, GHOST_TEventKeyData::utf8_buf, wl_surface, GWL_Seat::xkb, xkb_compose_state_feed_and_get_utf8(), xkb_map_gkey_or_scan_code(), xkb_state_key_get_one_sym_without_modifiers(), and GWL_Seat::xkb_use_non_latin_workaround.
|
static |
Definition at line 5541 of file GHOST_SystemWayland.cc.
References GHOST_ITimerTask::getUserData(), GHOST_ASSERT, gwl_seat_key_repeat_timer_remove(), GWL_Seat::key_repeat, and GWL_Seat::timer.
Referenced by gwl_seat_capability_keyboard_disable(), keyboard_handle_enter(), keyboard_handle_leave(), and keyboard_handle_repeat_info().
|
static |
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 5556 of file GHOST_SystemWayland.cc.
References GHOST_ITimerTask::getTimerProc(), GHOST_ITimerTask::getUserData(), GHOST_ASSERT, gwl_seat_key_repeat_timer_add(), gwl_seat_key_repeat_timer_remove(), GWL_Seat::key_repeat, and GWL_Seat::timer.
Referenced by keyboard_handle_modifiers(), and keyboard_handle_repeat_info().
|
static |
Definition at line 5215 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GWL_Seat::compose_state, GWL_Seat::compose_table, GWL_Seat::context, data, EVDEV_OFFSET, g_modifier_info_table, gwl_seat_key_layout_active_state_update_mask(), i, KEY_0, KEY_1, keyboard_depressed_state_reset(), GWL_Seat::layout_active, LOG, MOD_INDEX_NUM, MOD_INDEX_SHIFT, size(), GWL_Seat::state, GWL_Seat::state_empty, GWL_Seat::state_empty_with_numlock, GWL_Seat::state_empty_with_shift, GWL_Seat::xkb, GWL_ModifierInfo::xkb_id, GWL_Seat::xkb_keymap_mod_index, GWL_Seat::xkb_keymap_mod_index_mod2, GWL_Seat::xkb_keymap_mod_index_numlock, and GWL_Seat::xkb_use_non_latin_workaround.
|
static |
Leave event.
Notification that this seat's keyboard focus is no longer on a certain wl_surface.
Definition at line 5404 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, ghost_wl_surface_own_with_null_check(), GWL_Seat::key_repeat, GWL_Seat::keyboard, keyboard_handle_key_repeat_cancel(), LOG, GWL_Seat::system, GWL_Seat::timer, GHOST_SystemWayland::timer_mutex, and wl_surface.
|
static |
Definition at line 5714 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::data_source_serial, gwl_seat_key_layout_active_state_update_mask(), GWL_Seat::key_repeat, keyboard_handle_key_repeat_reset(), GWL_Seat::layout_active, LOG, GWL_Seat::state, GWL_Seat::system, GWL_Seat::timer, GHOST_SystemWayland::timer_mutex, and GWL_Seat::xkb.
|
static |
Definition at line 5753 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::delay, GWL_Seat::key_repeat, keyboard_handle_key_repeat_cancel(), keyboard_handle_key_repeat_reset(), LOG, GWL_Seat::rate, GWL_Seat::system, GWL_Seat::timer, and GHOST_SystemWayland::timer_mutex.
|
static |
Definition at line 2419 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_buffer_create_for_image().
|
static |
Definition at line 6612 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
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 6575 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, FRACTIONAL_DENOMINATOR, GHOST_ASSERT, LOG, output, and UNPACK2.
Referenced by xdg_output_handle_done().
|
static |
Definition at line 6522 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, make(), output, and transform().
|
static |
Definition at line 6549 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, and output.
|
static |
Definition at line 6607 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, LOG, and name.
|
static |
Definition at line 6599 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, and output.
|
static |
Definition at line 2302 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_axis(), pointer_handle_axis_discrete(), and pointer_handle_axis_value120().
|
static |
Definition at line 4003 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_SeatStatePointerScroll::event_ms, gwl_pointer_handle_frame_event_add(), GWL_SeatStatePointerScroll::has_event_ms, LOG, GHOST_SystemWayland::ms_from_input_time(), pointer_axis_as_index(), GWL_Seat::pointer_events, GWL_Seat::pointer_scroll, Scroll, GWL_SeatStatePointerScroll::smooth_xy, GWL_Seat::system, and UNLIKELY.
|
static |
Definition at line 4236 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_SeatStatePointerScroll::discrete_xy, gwl_pointer_handle_frame_event_add(), LOG, pointer_axis_as_index(), GWL_Seat::pointer_events, GWL_Seat::pointer_scroll, Scroll, and UNLIKELY.
|
static |
Definition at line 4207 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointerScroll::axis_source, CLOG_DEBUG, data, LOG, and GWL_Seat::pointer_scroll.
|
static |
Definition at line 4215 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_SeatStatePointerScroll::event_ms, GWL_SeatStatePointerScroll::has_event_ms, LOG, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::pointer_scroll, GWL_SeatStatePointerScroll::smooth_as_discrete, GWL_SeatStatePointerScroll_SmoothAsDiscrete::smooth_xy_accum, GWL_Seat::system, and GWL_Seat::use_pointer_scroll_smooth_as_discrete.
|
static |
Definition at line 4253 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_SeatStatePointerScroll::discrete120_xy, gwl_pointer_handle_frame_event_add(), LOG, pointer_axis_as_index(), GWL_Seat::pointer_events, GWL_Seat::pointer_scroll, Scroll, and UNLIKELY.
|
static |
Definition at line 3962 of file GHOST_SystemWayland.cc.
References BTN_RANGE_MAX, BTN_RANGE_MIN, Button0_Down, CLOG_DEBUG, data, GWL_Seat::data_source_serial, gwl_pointer_handle_frame_event_add(), LOG, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::pointer_events, state, and GWL_Seat::system.
|
static |
Definition at line 3892 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GHOST_WindowWayland::cursor_shape_refresh(), GWL_Seat::cursor_source_serial, data, GHOST_SystemWayland::getMilliSeconds(), GHOST_kEventCursorMove, GHOST_TABLET_DATA_NONE, ghost_wl_surface_own_with_null_check(), ghost_wl_surface_user_data(), LOG, GWL_Seat::pointer, GWL_Seat::pointer_scroll, GHOST_SystemWayland::pushEvent_maybe_pending(), GHOST_SystemWayland::seat_active_set(), GWL_Seat::system, UNPACK2, WL_FIXED_TO_INT_FOR_WINDOW_V2, and wl_surface.
|
static |
Definition at line 4025 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointerScroll::axis_source, Button0_Down, Button0_Up, Button1_Down, Button1_Up, Button2_Down, Button2_Up, Button3_Down, Button3_Up, Button4_Down, Button4_Up, Button5_Down, Button5_Up, Button6_Down, Button6_Up, CLOG_DEBUG, data, GWL_SeatStatePointerScroll::discrete120_xy, GWL_SeatStatePointerScroll::discrete120_xy_accum, GWL_SeatStatePointerScroll::discrete_xy, GWL_SeatStatePointerScroll::event_ms, GWL_SeatStatePointer_Events::frame_event_ms, GWL_SeatStatePointer_Events::frame_pending, GWL_SeatStatePointer_Events::frame_types, GWL_SeatStatePointer_Events::frame_types_num, GHOST_SystemWayland::getMilliSeconds(), GHOST_ASSERT, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventCursorMove, GHOST_kEventWheelAxisHorizontal, GHOST_kEventWheelAxisVertical, GHOST_kTrackpadEventScroll, GHOST_TABLET_DATA_NONE, ghost_wl_surface_user_data(), gwl_pointer_events_ebutton, gwl_pointer_handle_frame_event_reset(), GWL_SeatStatePointerScroll::has_event_ms, i, GWL_SeatStatePointerScroll::inverted_xy, LOG, Motion, GWL_Seat::pointer, GWL_Seat::pointer_events, GWL_Seat::pointer_scroll, GHOST_SystemWayland::pushEvent_maybe_pending(), Scroll, GWL_SeatStatePointerScroll::smooth_as_discrete, smooth_as_discrete_steps, GWL_SeatStatePointerScroll::smooth_xy, GWL_SeatStatePointerScroll_SmoothAsDiscrete::smooth_xy_accum, GWL_Seat::system, UNPACK2, GWL_Seat::use_pointer_scroll_smooth_as_discrete, WL_FIXED_TO_INT_FOR_WINDOW_V2, and wl_surface.
|
static |
Definition at line 3930 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, ghost_wl_surface_own_with_null_check(), LOG, GWL_Seat::wl, and wl_surface.
|
static |
Definition at line 3944 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, gwl_pointer_handle_frame_event_add(), LOG, Motion, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::pointer, GWL_Seat::pointer_events, and GWL_Seat::system.
|
static |
Definition at line 5830 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GWL_PrimarySelection_DataOffer::id, LOG, primary_selection_offer_listener, and GWL_PrimarySelection_DataOffer::wp.
|
static |
Definition at line 5842 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_PrimarySelection::data_offer, GWL_PrimarySelection::data_offer_mutex, gwl_primary_selection_discard_offer(), lock, and LOG.
|
static |
Definition at line 5801 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_PrimarySelection_DataOffer::id, LOG, GWL_PrimarySelection_DataOffer::types, and GWL_PrimarySelection_DataOffer::wp.
|
static |
Definition at line 5908 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_PrimarySelection::data_source, gwl_primary_selection_discard_source(), LOG, GWL_PrimarySelection_DataSource::source, and GWL_PrimarySelection_DataSource::wp.
|
static |
Definition at line 5883 of file GHOST_SystemWayland.cc.
References GWL_PrimarySelection_DataSource::buffer_out, CLOG_DEBUG, CLOG_WARN, data, GWL_SimpleBuffer::data, GWL_SimpleBuffer::data_size, GWL_PrimarySelection::data_source, GWL_PrimarySelection::data_source_mutex, LOG, and UNLIKELY.
|
static |
Definition at line 2407 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_event_thread_create().
|
static |
Definition at line 3258 of file GHOST_SystemWayland.cc.
References CLOG_WARN, GWL_DataOffer::id, LOG, mutex, read_file_as_buffer(), and GWL_DataOffer::wl.
Referenced by data_device_handle_drop(), and system_clipboard_get().
|
static |
Definition at line 3296 of file GHOST_SystemWayland.cc.
References CLOG_WARN, GWL_PrimarySelection_DataOffer::id, LOG, mutex, read_file_as_buffer(), and GWL_PrimarySelection_DataOffer::wp.
Referenced by system_clipboard_get_primary_selection().
|
static |
A version of read which will read nbytes or as many bytes as possible, useful as the LIBC version may read less than requested.
Definition at line 2650 of file GHOST_SystemWayland.cc.
References data, read, and UNLIKELY.
Referenced by read_file_as_buffer().
|
static |
Read from fd into a buffer which is returned. Use for files where seeking to determine the final size isn't supported (pipes for example).
Definition at line 2678 of file GHOST_SystemWayland.cc.
References data, free(), len, next, read_exhaustive(), and UNLIKELY.
Referenced by read_buffer_from_data_offer(), and read_buffer_from_primary_selection_offer().
|
static |
Definition at line 3199 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, ghost_wl_ms_from_utime_pair(), ghost_wl_surface_user_data(), LOG, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::pointer, relative_pointer_handle_relative_motion_impl(), GWL_Seat::system, GHOST_WindowWayland::wl_fixed_from_window(), and wl_surface.
|
static |
The caller is responsible for setting the value of seat->xy.
Definition at line 3172 of file GHOST_SystemWayland.cc.
References bounds(), GHOST_WindowWayland::getClientBounds(), GHOST_kEventCursorMove, GHOST_TABLET_DATA_NONE, GWL_Seat::pointer, GHOST_SystemWayland::pushEvent_maybe_pending(), GWL_Seat::system, UNPACK2, GWL_Seat::use_pointer_software_confine, GHOST_WindowWayland::wl_fixed_from_window(), WL_FIXED_TO_INT_FOR_WINDOW_V2, and xy.
Referenced by relative_pointer_handle_relative_motion(), and setCursorPositionClientRelative_impl().
|
static |
Definition at line 1962 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_buffer_from_cursor_generator().
|
static |
Definition at line 1972 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_buffer_from_cursor_generator().
|
static |
Definition at line 1957 of file GHOST_SystemWayland.cc.
References x.
Referenced by ghost_wl_buffer_from_cursor_generator().
|
static |
Definition at line 9197 of file GHOST_SystemWayland.cc.
References ELEM, GHOST_kGrabHide, GHOST_kGrabNormal, GHOST_kGrabWrap, GWL_SeatStateGrab::use_confine, and GWL_SeatStateGrab::use_lock.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 6372 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GHOST_ASSERT, gwl_seat_capability_keyboard_disable(), gwl_seat_capability_keyboard_enable(), gwl_seat_capability_pointer_disable(), gwl_seat_capability_pointer_enable(), gwl_seat_capability_touch_disable(), gwl_seat_capability_touch_enable(), LOG, GWL_Seat::seat, and GWL_Seat::wl.
|
static |
Definition at line 6408 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, and name.
|
static |
Definition at line 9172 of file GHOST_SystemWayland.cc.
References GHOST_kGrabNormal, ghost_wl_surface_user_data(), GHOST_WindowWayland::scale_get(), use_gnome_confine_hack, and wl_surface.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 8446 of file GHOST_SystemWayland.cc.
References GHOST_SystemWayland::getMilliSeconds(), GHOST_kFailure, GHOST_kSuccess, GWL_Seat::relative_pointer, relative_pointer_handle_relative_motion_impl(), GWL_Seat::system, GHOST_WindowWayland::wl_fixed_from_window(), GWL_Seat::wp, x, and y.
Referenced by GHOST_SystemWayland::setCursorPosition(), and GHOST_SystemWayland::setCursorPositionClientRelative().
|
static |
Definition at line 6640 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
Definition at line 2013 of file GHOST_SystemWayland.cc.
References b.
Referenced by GHOST_SystemWayland::ms_from_input_time().
|
static |
Definition at line 8070 of file GHOST_SystemWayland.cc.
References data, GWL_Seat::data_offer_copy_paste, GWL_Seat::data_offer_copy_paste_mutex, GWL_Display::display, GHOST_ASSERT, gwl_display_seat_active_get(), mutex, read_buffer_from_data_offer(), system_clipboard_text_mime_type(), GWL_DataOffer::types, UNLIKELY, GWL_Display::wl, and wl_display_roundtrip.
Referenced by GHOST_SystemWayland::getClipboard(), GHOST_SystemWayland::getClipboardImage(), and GHOST_SystemWayland::hasClipboardImage().
|
static |
Definition at line 8008 of file GHOST_SystemWayland.cc.
References data, GWL_PrimarySelection::data_offer, GWL_PrimarySelection::data_offer_mutex, GWL_Display::display, GHOST_ASSERT, gwl_display_seat_active_get(), mutex, GWL_Seat::primary_selection, read_buffer_from_primary_selection_offer(), system_clipboard_text_mime_type(), GWL_PrimarySelection_DataOffer::types, UNLIKELY, GWL_Display::wl, and wl_display_roundtrip.
Referenced by GHOST_SystemWayland::getClipboard().
|
static |
Definition at line 8186 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, GWL_DataSource::buffer_out, GWL_Seat::data_device, GWL_Display::data_device_manager, GWL_Seat::data_source, data_source_listener, GWL_Seat::data_source_mutex, GWL_Seat::data_source_serial, ghost_wl_mime_send, gwl_display_seat_active_get(), gwl_simple_buffer_set_from_string(), i, lock, GWL_DataSource::source, UNLIKELY, GWL_DataSource::wl, GWL_Display::wl, and GWL_Seat::wl.
Referenced by GHOST_SystemWayland::putClipboard().
|
static |
Definition at line 8149 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, GWL_PrimarySelection_DataSource::buffer_out, GWL_PrimarySelection::data_source, GWL_PrimarySelection::data_source_mutex, GWL_Seat::data_source_serial, ghost_wl_mime_send, gwl_display_seat_active_get(), gwl_primary_selection_discard_source(), gwl_simple_buffer_set_from_string(), i, lock, GWL_Seat::primary_selection, GWL_Seat::primary_selection_device, GWL_Display::primary_selection_device_manager, primary_selection_source_listener, GWL_PrimarySelection_DataSource::source, UNLIKELY, GWL_Display::wp, GWL_PrimarySelection_DataSource::wp, and GWL_Seat::wp.
Referenced by GHOST_SystemWayland::putClipboard().
|
static |
Return a mime type which is supported by GHOST and exists in types (defined by the data offer).
Definition at line 7996 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, ghost_wl_mime_text_plain, ghost_wl_mime_text_utf8, and i.
Referenced by system_clipboard_get(), and system_clipboard_get_primary_selection().
|
static |
Definition at line 5191 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 5162 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 5169 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, cursor_surface_listener, data, ghost_wl_surface_tag_cursor_tablet(), LOG, GWL_TabletTool::seat, GWL_TabletTool::surface_cursor, GWL_Seat::system, tablet_tool_listner, GWL_Seat::tablet_tools, GWL_TabletTool::wl, GHOST_SystemWayland::wl_compositor_get(), and GWL_Seat::wp.
|
static |
Definition at line 4994 of file GHOST_SystemWayland.cc.
References BTN_STYLUS, BTN_STYLUS2, BTN_STYLUS3, CLOG_DEBUG, data, GWL_Seat::data_source_serial, gwl_tablet_tool_frame_event_add(), LOG, Motion, GWL_TabletTool::seat, state, Stylus1_Down, Stylus1_Up, Stylus2_Down, Stylus2_Up, Stylus3_Down, and Stylus3_Up.
|
static |
Definition at line 4802 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4936 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, distance(), and LOG.
|
static |
Definition at line 4815 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4883 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::data_source_serial, gwl_tablet_tool_frame_event_add(), LOG, GWL_TabletTool::seat, and Stylus0_Down.
|
static |
Definition at line 5042 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointer::buttons, GWL_TabletTool::clicks, CLOG_DEBUG, GHOST_WindowWayland::cursor_shape_refresh(), data, GWL_TabletTool::data, GWL_TabletTool::frame_pending, GWL_TabletTool::frame_types, GWL_TabletTool::frame_types_num, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventCursorMove, GHOST_kEventWheelAxisVertical, ghost_wl_surface_user_data(), gwl_tablet_tool_ebutton, gwl_tablet_tool_frame_event_reset(), GWL_TabletTool::has_xy, LOG, Motion, GHOST_SystemWayland::ms_from_input_time(), Pressure, GWL_TabletTool::proximity, GHOST_SystemWayland::pushEvent_maybe_pending(), GWL_TabletTool::seat, GHOST_Buttons::set(), Stylus0_Down, Stylus0_Up, Stylus1_Down, Stylus1_Up, Stylus2_Down, Stylus2_Up, Stylus3_Down, Stylus3_Up, GWL_SeatStatePointer::surface_window, GWL_Seat::system, GWL_Seat::tablet, Tilt, UNPACK2, Wheel, GWL_TabletTool::wheel, GWL_SeatStatePointer::wl, WL_FIXED_TO_INT_FOR_WINDOW_V2, wl_surface, GWL_SeatStatePointer::xy, and GWL_TabletTool::xy.
|
static |
Definition at line 4794 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4786 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4906 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, gwl_tablet_tool_frame_event_add(), GWL_TabletTool::has_xy, LOG, Motion, x, GWL_TabletTool::xy, and y.
|
static |
Definition at line 4922 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_TabletTool::data, float, gwl_tablet_tool_frame_event_add(), LOG, GHOST_TabletData::Pressure, and Pressure.
|
static |
Definition at line 4836 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GHOST_WindowWayland::cursor_shape_refresh(), GWL_Seat::cursor_source_serial, data, GWL_TabletTool::data, GWL_Seat::data_source_serial, ghost_wl_surface_own_with_null_check(), ghost_wl_surface_user_data(), LOG, GHOST_TabletData::Pressure, GWL_TabletTool::proximity, GWL_TabletTool::seat, GHOST_SystemWayland::seat_active_set(), GWL_SeatStatePointer::serial, GWL_TabletTool::serial, GWL_SeatStatePointer::surface_window, GWL_Seat::system, GWL_Seat::tablet, GWL_SeatStatePointer::wl, wl_surface, GHOST_TabletData::Xtilt, and GHOST_TabletData::Ytilt.
|
static |
Definition at line 4872 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, GWL_TabletTool::proximity, and GWL_TabletTool::serial.
|
static |
Definition at line 4819 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_CursorShape::device, LOG, GWL_TabletTool::seat, GWL_TabletTool::shape, GWL_TabletTool::surface_cursor, GWL_Seat::tablet_tools, GWL_TabletTool::wl, and GWL_Seat::wp.
|
static |
Definition at line 4963 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, degrees(), and LOG.
|
static |
Definition at line 4970 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4943 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_TabletTool::data, float, gwl_tablet_tool_frame_event_add(), LOG, Tilt, UNPACK2, GHOST_TabletData::Xtilt, and GHOST_TabletData::Ytilt.
|
static |
Definition at line 4775 of file GHOST_SystemWayland.cc.
References GHOST_TabletData::Active, CLOG_DEBUG, data, GWL_TabletTool::data, LOG, and tablet_tool_map_type().
|
static |
Definition at line 4897 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, gwl_tablet_tool_frame_event_add(), LOG, and Stylus0_Up.
|
static |
Definition at line 4976 of file GHOST_SystemWayland.cc.
References GWL_TabletTool::clicks, CLOG_DEBUG, data, GWL_TabletTool::frame_pending, gwl_tablet_tool_frame_event_add(), LOG, Wheel, and GWL_TabletTool::wheel.
|
static |
Definition at line 2317 of file GHOST_SystemWayland.cc.
References GHOST_kTabletModeEraser, GHOST_kTabletModeStylus, and GHOST_PRINT.
Referenced by tablet_tool_handle_type().
|
static |
Definition at line 4731 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4563 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, GHOST_WindowWayland::cursor_shape_refresh(), GWL_Seat::cursor_source_serial, data, GWL_Seat::down_event_time_ms, GWL_Seat::down_id, GWL_Seat::down_pending, ghost_wl_surface_own_with_null_check(), ghost_wl_surface_user_data(), GWL_Seat::is_touching, LOG, GWL_Seat::motion_event_time_ms, GWL_Seat::motion_pending, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::system, GWL_Seat::touch, GWL_Seat::touch_state, wl_surface, x, and y.
|
static |
Definition at line 4660 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, CLOG_DEBUG, data, GWL_Seat::down_event_time_ms, GWL_Seat::down_pending, GHOST_Event::getTime(), GHOST_ASSERT, GHOST_kButtonMaskLeft, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventCursorMove, GHOST_TABLET_DATA_NONE, ghost_wl_surface_user_data(), i, LOG, GWL_Seat::motion_event_time_ms, GWL_Seat::motion_pending, GHOST_SystemWayland::pushEvent_maybe_pending(), GWL_Seat::system, GWL_Seat::touch, GWL_Seat::touch_state, UNLIKELY, UNPACK2, GWL_Seat::up_event_time_ms, GWL_Seat::up_pending, WL_FIXED_TO_INT_FOR_WINDOW_V2, and wl_surface.
|
static |
Definition at line 4634 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::down_id, GWL_Seat::is_touching, LOG, GWL_Seat::motion_event_time_ms, GWL_Seat::motion_pending, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::system, GWL_Seat::touch, GWL_Seat::touch_state, x, and y.
|
static |
Definition at line 4746 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4737 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 4614 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, GWL_Seat::down_id, GWL_Seat::is_touching, LOG, GHOST_SystemWayland::ms_from_input_time(), GWL_Seat::system, GWL_Seat::touch_state, GWL_Seat::up_event_time_ms, and GWL_Seat::up_pending.
|
static |
Definition at line 3786 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointer::buffer_scale, GHOST_WindowWayland::cursor_shape_refresh(), GWL_Cursor::custom_cursor_scale, ghost_wl_surface_user_data(), gwl_seat_cursor_buffer_scale_calc(), GWL_Cursor::is_custom, output, GWL_SeatStatePointer::outputs, GWL_SeatStatePointer::surface_window, GWL_SeatStatePointer::wl, and wl_surface.
Referenced by cursor_surface_handle_enter(), cursor_surface_handle_leave(), and GHOST_SystemWayland::output_scale_update().
|
static |
Definition at line 6496 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, and LOG.
|
static |
Definition at line 6478 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, LOG, output, and output_handle_done().
|
static |
Definition at line 6430 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6443 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, data, FRACTIONAL_DENOMINATOR, GHOST_PRINT, LOG, output, and use_gnome_confine_hack.
|
static |
Definition at line 6489 of file GHOST_SystemWayland.cc.
References CLOG_DEBUG, LOG, and name.
|
static |
Definition at line 5480 of file GHOST_SystemWayland.cc.
References CLOG_WARN, LOG, result, state, and GHOST_TEventKeyData::utf8_buf.
Referenced by gwl_seat_key_repeat_timer_fn(), and keyboard_handle_key().
|
static |
Definition at line 2153 of file GHOST_SystemWayland.cc.
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_kKeyGrLess, GHOST_kKeyHome, GHOST_kKeyInsert, GHOST_kKeyLeftAlt, GHOST_kKeyLeftArrow, GHOST_kKeyLeftBracket, GHOST_kKeyLeftControl, GHOST_kKeyLeftHyper, GHOST_kKeyLeftOS, 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_kKeyPause, GHOST_kKeyPeriod, GHOST_kKeyPlus, GHOST_kKeyPrintScreen, GHOST_kKeyQuote, GHOST_kKeyRightAlt, GHOST_kKeyRightArrow, GHOST_kKeyRightBracket, GHOST_kKeyRightControl, GHOST_kKeyRightHyper, GHOST_kKeyRightOS, GHOST_kKeyRightShift, GHOST_kKeyScrollLock, GHOST_kKeySemicolon, GHOST_kKeySlash, GHOST_kKeySpace, GHOST_kKeyTab, GHOST_kKeyUnknown, GHOST_kKeyUpArrow, GHOST_kKeyUpPage, and GXMAP.
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 2270 of file GHOST_SystemWayland.cc.
References GHOST_kKeyAccentGrave, GHOST_kKeyGrLess, GHOST_kKeyUnknown, GHOST_PRINT, KEY_102ND, KEY_GRAVE, UNLIKELY, and xkb_map_gkey().
Referenced by keyboard_handle_enter(), and 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 5433 of file GHOST_SystemWayland.cc.
References EVDEV_OFFSET, GHOST_ASSERT, KEY_0, and KEY_1.
Referenced by keyboard_handle_key().
|
static |
Definition at line 3771 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set().
|
static |
Definition at line 3871 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_pointer_enable(), and tablet_seat_handle_tool_added().
|
static |
Definition at line 3738 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_update().
|
static |
Definition at line 3466 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_data_offer().
|
static |
Definition at line 3416 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::putClipboardImage(), and system_clipboard_put().
|
static |
Definition at line 2338 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_pointer_enable().
|
constexpr |
Default size for pending event vector.
Definition at line 150 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_event_thread_create(), and GHOST_SystemWayland::processEvents().
|
static |
Definition at line 348 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getModifierKeys(), and keyboard_handle_keymap().
|
static |
Definition at line 9346 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::xdg_app_id_get().
|
staticconstexpr |
Definition at line 8231 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getClipboardImage(), GHOST_SystemWayland::hasClipboardImage(), and GHOST_SystemWayland::putClipboardImage().
|
static |
Definition at line 2344 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), and data_device_handle_enter().
|
static |
Definition at line 2350 of file GHOST_SystemWayland.cc.
Referenced by dnd_events().
|
static |
Definition at line 2356 of file GHOST_SystemWayland.cc.
Referenced by system_clipboard_put(), and system_clipboard_put_primary_selection().
|
staticconstexpr |
Definition at line 2340 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), and system_clipboard_text_mime_type().
|
staticconstexpr |
Definition at line 2342 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), GHOST_SystemWayland::getClipboardImage(), and GHOST_SystemWayland::hasClipboardImage().
|
staticconstexpr |
Definition at line 2341 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), and system_clipboard_text_mime_type().
|
static |
Definition at line 9238 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_output_own(), and ghost_wl_output_tag().
|
static |
Definition at line 9240 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_surface_own_cursor_pointer(), and ghost_wl_surface_tag_cursor_pointer().
|
static |
Definition at line 9241 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_surface_own_cursor_tablet(), and ghost_wl_surface_tag_cursor_tablet().
|
static |
Definition at line 9239 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_surface_own(), and ghost_wl_surface_tag().
|
static |
Definition at line 765 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_frame().
|
static |
Map interfaces to initialization functions.
In general fundamental, low level objects such as the compositor and shared memory should be declared earlier and other interfaces that may use them should be declared later.
Definition at line 7311 of file GHOST_SystemWayland.cc.
Referenced by global_handle_add(), global_handle_remove(), gwl_registry_handler_from_interface_slot(), gwl_registry_handler_interface_slot_from_string(), and gwl_registry_handler_interface_slot_max().
|
static |
Definition at line 524 of file GHOST_SystemWayland.cc.
Referenced by tablet_tool_handle_frame().
|
static |
Definition at line 111 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getCapabilities(), and gwl_registry_wl_seat_add().
|
static |
Definition at line 5781 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_keyboard_enable().
|
static |
Definition at line 3755 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3783 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3480 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3433 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3239 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5212 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3095 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getModifierKeys().
|
static |
Definition at line 6519 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3889 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5827 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5798 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5880 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6689 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3166 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6143 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5159 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4772 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4560 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6427 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6637 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6620 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_output_add().
|
static |
Definition at line 4287 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_pointer_enable().
|
static |
Definition at line 5867 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_update().
|
static |
Definition at line 5815 of file GHOST_SystemWayland.cc.
Referenced by primary_selection_device_handle_data_offer().
|
static |
Definition at line 5919 of file GHOST_SystemWayland.cc.
Referenced by system_clipboard_put_primary_selection().
|
static |
Definition at line 7537 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 3227 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 6414 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_add().
|
static |
Definition at line 6646 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_xdg_wm_base_add().
|
staticconstexpr |
Number of smooth steps for a discrete step (matches X11 for touch-pads).
Definition at line 831 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_frame().
|
static |
Definition at line 5198 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_update().
|
static |
Definition at line 5129 of file GHOST_SystemWayland.cc.
Referenced by tablet_seat_handle_tool_added().
|
static |
Definition at line 4754 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_touch_enable().
|
static |
Always use software confine (not just in GNOME). Useful for developing with compositors that don't need this workaround.
Definition at line 179 of file GHOST_SystemWayland.cc.
Referenced by setCursorGrab_use_software_confine(), and xdg_output_handle_logical_size().
|
static |
Definition at line 6503 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_output_update().