|
Blender V4.3
|
#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 <stdexcept>#include <thread>#include <unordered_map>#include <unordered_set>#include <wayland-cursor.h>#include <xkbcommon/xkbcommon-compose.h>#include <xkbcommon/xkbcommon.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-unstable-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_Cursor_AnimHandle |
| 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 |
| struct | GWL_Cursor_ShapeInfo |
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 | CASE_CURSOR(shape_id, shape_name_in_theme) |
| #define | SURFACE_CLEAR_PTR(surface_test) |
Local Defines | |
Control local functionality, compositors specific workarounds. | |
| #define | _VERBOSE_OLD_IFACE_PRINT(params_version, version_max) ((void)(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, int interface_slot, bool on_exit) |
| static void | gwl_registry_entry_update_all (GWL_Display *display, const int interface_slot_exclude) |
Private Cursor Animation API | |
| static bool | gwl_seat_cursor_anim_check (GWL_Seat *seat) |
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 | |
| #define | BTN_RANGE_MIN BTN_LEFT |
| #define | BTN_RANGE_MAX BTN_BACK |
| 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_OS + 1) |
| enum | { MOD_INDEX_SHIFT = 0 , MOD_INDEX_ALT = 1 , MOD_INDEX_CTRL = 2 , MOD_INDEX_OS = 3 } |
| 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 , GWL_TabletTool_FrameTypes_NUM } |
| 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 bool | ghost_wayland_log_handler_is_background = false |
| static const int | default_cursor_size = 24 |
| static const GWL_Cursor_ShapeInfo | ghost_wl_cursors |
| 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 = "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 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 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 void | pthread_set_min_priority (pthread_t handle) |
| static void | thread_set_min_priority (std::thread &thread) |
| 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 int | cursor_buffer_compatible_scale_from_image (const wl_cursor_image *wl_image, int scale) |
| static const wl_cursor * | gwl_seat_cursor_find_from_shape (GWL_Seat *seat, const GHOST_TStandardCursor shape, const char **r_cursor_name) |
| 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_Cursor &cursor, wl_shm *shm, GWL_SeatStatePointer *seat_state_pointer, wl_surface *wl_surface_cursor) |
| 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 *, 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 *, uint32_t axis_source) |
| static void | pointer_handle_axis_stop (void *data, wl_pointer *, uint32_t time, uint32_t axis) |
| static void | pointer_handle_axis_discrete (void *data, wl_pointer *, uint32_t axis, int32_t discrete) |
| static void | pointer_handle_axis_value120 (void *data, wl_pointer *, uint32_t axis, 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 | |
| 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 *, wl_touch *, uint32_t, uint32_t, wl_surface *, int32_t, wl_fixed_t, wl_fixed_t) |
| static void | touch_seat_handle_up (void *, wl_touch *, uint32_t, uint32_t, int32_t) |
| static void | touch_seat_handle_motion (void *, wl_touch *, uint32_t, int32_t, wl_fixed_t, wl_fixed_t) |
| static void | touch_seat_handle_frame (void *, wl_touch *) |
| static void | touch_seat_handle_cancel (void *, wl_touch *) |
| static void | touch_seat_handle_shape (void *, wl_touch *, int32_t, wl_fixed_t, wl_fixed_t) |
| static void | touch_seat_handle_orientation (void *, wl_touch *, int32_t, 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 *, 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) |
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 ) ((void)(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 227 of file GHOST_SystemWayland.cc.
Definition at line 276 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_button().
Definition at line 275 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_button().
| #define CASE_CURSOR | ( | shape_id, | |
| shape_name_in_theme ) |
| #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 424 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 231 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_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 746 of file GHOST_SystemWayland.cc.
| #define GWL_TabletTool_FrameTypes_NUM (int(GWL_TabletTool_EventTypes::Stylus3_Up) + 1) |
Definition at line 510 of file GHOST_SystemWayland.cc.
| #define GXMAP | ( | k, | |
| x, | |||
| y ) |
Referenced by xkb_map_gkey().
Definition at line 3019 of file GHOST_SystemWayland.cc.
Referenced by cursor_buffer_handle_release(), cursor_surface_handle_enter(), cursor_surface_handle_leave(), cursor_surface_handle_preferred_buffer_scale(), data_device_handle_data_offer(), data_device_handle_drop(), data_device_handle_enter(), data_device_handle_leave(), data_device_handle_motion(), data_device_handle_selection(), data_offer_handle_action(), data_offer_handle_offer(), data_offer_handle_source_actions(), data_source_handle_action(), data_source_handle_cancelled(), data_source_handle_dnd_drop_performed(), data_source_handle_dnd_finished(), data_source_handle_send(), data_source_handle_target(), global_handle_add(), global_handle_remove(), gwl_registry_wl_output_remove(), keyboard_depressed_state_key_event(), keyboard_depressed_state_push_events_from_change(), keyboard_handle_enter(), keyboard_handle_key(), keyboard_handle_keymap(), keyboard_handle_leave(), keyboard_handle_modifiers(), keyboard_handle_repeat_info(), output_handle_description(), output_handle_done(), output_handle_geometry(), output_handle_mode(), output_handle_name(), output_handle_scale(), pointer_handle_axis(), pointer_handle_axis_discrete(), pointer_handle_axis_source(), pointer_handle_axis_stop(), pointer_handle_axis_value120(), pointer_handle_button(), pointer_handle_enter(), pointer_handle_frame(), pointer_handle_leave(), pointer_handle_motion(), primary_selection_device_handle_data_offer(), primary_selection_device_handle_selection(), primary_selection_offer_offer(), primary_selection_source_cancelled(), primary_selection_source_send(), read_buffer_from_data_offer(), read_buffer_from_primary_selection_offer(), relative_pointer_handle_relative_motion(), seat_handle_capabilities(), seat_handle_name(), shell_handle_ping(), tablet_seat_handle_pad_added(), tablet_seat_handle_tablet_added(), tablet_seat_handle_tool_added(), tablet_tool_handle_button(), tablet_tool_handle_capability(), tablet_tool_handle_distance(), tablet_tool_handle_done(), tablet_tool_handle_down(), tablet_tool_handle_frame(), tablet_tool_handle_hardware_id_wacom(), tablet_tool_handle_hardware_serial(), tablet_tool_handle_motion(), tablet_tool_handle_pressure(), tablet_tool_handle_proximity_in(), tablet_tool_handle_proximity_out(), tablet_tool_handle_removed(), tablet_tool_handle_rotation(), tablet_tool_handle_slider(), tablet_tool_handle_tilt(), tablet_tool_handle_type(), tablet_tool_handle_up(), tablet_tool_handle_wheel(), touch_seat_handle_cancel(), touch_seat_handle_down(), touch_seat_handle_frame(), touch_seat_handle_motion(), touch_seat_handle_orientation(), touch_seat_handle_shape(), touch_seat_handle_up(), xdg_output_handle_description(), xdg_output_handle_done(), xdg_output_handle_logical_position(), xdg_output_handle_logical_size(), and xdg_output_handle_name().
| #define LOG (&LOG_WL_RELATIVE_POINTER) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_DATA_SOURCE) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_DATA_OFFER) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_DATA_DEVICE) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_CURSOR_BUFFER) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_CURSOR_SURFACE) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_POINTER) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_TOUCH) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_TABLET_TOOL) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_TABLET_SEAT) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_KEYBOARD) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_PRIMARY_SELECTION_OFFER) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
Definition at line 3019 of file GHOST_SystemWayland.cc.
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_SEAT) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_XDG_OUTPUT) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_OUTPUT) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_XDG_WM_BASE) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define LOG (&LOG_WL_REGISTRY) |
Definition at line 3019 of file GHOST_SystemWayland.cc.
| #define MOD_INDEX_NUM (MOD_INDEX_OS + 1) |
Definition at line 337 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 161 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 176 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 192 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 239 of file GHOST_SystemWayland.cc.
Referenced by keyboard_handle_key().
Initializer for GHOST integer coordinates from wl_fixed_t, taking window scale into account.
Definition at line 247 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(), and tablet_tool_handle_frame().
Definition at line 241 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_xdg_decoration_manager_remove(), and gwl_registry_xdg_wm_base_remove().
| using GWL_RegistryEntry_RemoveFn = void (*)(GWL_Display *display, void *user_data, bool on_exit) |
Remove callback for object registry.
| display | The display which holes a reference to the global object. |
| user_data | Optional reference to a sub element of display, use for outputs or seats for e.g. 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 1690 of file GHOST_SystemWayland.cc.
Add callback for object registry.
| display | The display which holes a reference to the global object. |
| params | Various arguments needed for registration. |
Definition at line 1658 of file GHOST_SystemWayland.cc.
Optional update callback to refresh internal data when another interface has been added/removed.
| display | The display which holes a reference to the global object. |
| params | Various arguments needed for updating. |
Definition at line 1677 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 264 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 286 of file GHOST_SystemWayland.cc.
| anonymous enum |
Keyboard scan-codes.
From linux/input-event-codes.h.
Definition at line 300 of file GHOST_SystemWayland.cc.
| anonymous enum |
| Enumerator | |
|---|---|
| MOD_INDEX_SHIFT | |
| MOD_INDEX_ALT | |
| MOD_INDEX_CTRL | |
| MOD_INDEX_OS | |
Definition at line 331 of file GHOST_SystemWayland.cc.
| anonymous enum |
| Enumerator | |
|---|---|
| GWL_IOR_READ | |
| GWL_IOR_WRITE | |
| GWL_IOR_NO_RETRY | |
Definition at line 2379 of file GHOST_SystemWayland.cc.
| enum eCursorSetMode |
| Enumerator | |
|---|---|
| CURSOR_VISIBLE_ALWAYS_SET | |
| CURSOR_VISIBLE_ONLY_HIDE | |
| CURSOR_VISIBLE_ONLY_SHOW | |
Definition at line 2865 of file GHOST_SystemWayland.cc.
|
strong |
Definition at line 711 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 | |
| GWL_TabletTool_FrameTypes_NUM | |
Definition at line 488 of file GHOST_SystemWayland.cc.
|
static |
Needed to ensure the cursor size is always a multiple of scale.
Definition at line 2716 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_cursor_buffer_set().
|
static |
Definition at line 3712 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 2697 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, and wl_surface.
Referenced by gwl_seat_cursor_buffer_set().
|
static |
Definition at line 8452 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 3790 of file GHOST_SystemWayland.cc.
References CLOG_INFO, GWL_Seat::cursor, data, ghost_wl_output_own(), ghost_wl_output_user_data(), gwl_seat_state_pointer_from_cursor_surface(), LOG, GWL_SeatStatePointer::outputs, GWL_Seat::system, update_cursor_scale(), GHOST_SystemWayland::wl_shm_get(), and wl_surface.
|
static |
Definition at line 3806 of file GHOST_SystemWayland.cc.
References CLOG_INFO, GWL_Seat::cursor, data, ghost_wl_output_own(), ghost_wl_output_user_data(), gwl_seat_state_pointer_from_cursor_surface(), LOG, GWL_SeatStatePointer::outputs, GWL_Seat::system, update_cursor_scale(), GHOST_SystemWayland::wl_shm_get(), and wl_surface.
|
static |
Definition at line 3822 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3402 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data_offer_listener, GWL_DataOffer::id, LOG, and GWL_DataOffer::wl.
|
static |
Definition at line 3523 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, CLOG_INFO, 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, ghost_wl_mime_text_utf8, ghost_wl_surface_user_data(), GWL_DataOffer::id, int, lock, LOG, pos, 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, UNLIKELY, 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 3424 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, CLOG_INFO, 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(), GWL_DataOffer::id, GWL_DataOffer::in_use, 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 3478 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_Seat::data_offer_dnd, GWL_Seat::data_offer_dnd_mutex, GWL_DataOffer::dnd, dnd_events(), GHOST_SystemWayland::getMilliSeconds(), GHOST_kEventDraggingExited, GWL_DataOffer::id, GWL_DataOffer::in_use, lock, LOG, GWL_Seat::surface_window_focus_dnd, GWL_Seat::system, GWL_DataOffer::wl, and GWL_Seat::wl.
|
static |
Definition at line 3500 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 3666 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_Seat::data_offer_copy_paste, GWL_Seat::data_offer_copy_paste_mutex, GWL_DataOffer::id, lock, LOG, and GWL_DataOffer::wl.
|
static |
Definition at line 3376 of file GHOST_SystemWayland.cc.
References GWL_DataOffer::action, CLOG_INFO, data, GWL_DataOffer::dnd, and LOG.
|
static |
Definition at line 3358 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, and GWL_DataOffer::types.
|
static |
Definition at line 3367 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 3331 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3287 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 3306 of file GHOST_SystemWayland.cc.
|
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 3319 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3262 of file GHOST_SystemWayland.cc.
References GWL_DataSource::buffer_out, CLOG_INFO, 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 3255 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3165 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(), 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().
Definition at line 2385 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 8094 of file GHOST_SystemWayland.cc.
References GHOST_WindowWayland::getClientBounds(), GHOST_Window::getCursorGrabAxis(), GHOST_Window::getCursorGrabBounds(), GHOST_Window::getCursorGrabModeIsWarp(), GHOST_kFailure, GHOST_kSuccess, GHOST_Rect::m_b, GHOST_Rect::m_l, GHOST_Rect::m_r, GHOST_Rect::m_t, UNPACK2, GHOST_WindowWayland::wl_fixed_from_window(), GHOST_WindowWayland::wl_fixed_to_window(), GHOST_Rect::wrapPoint(), and GWL_SeatStatePointer::xy.
Referenced by GHOST_SystemWayland::getCursorPosition(), and GHOST_SystemWayland::getCursorPositionClientRelative().
|
static |
Callback for WAYLAND to run when there is an error.
Definition at line 2015 of file GHOST_SystemWayland.cc.
References GHOST_ISystem::getBacktraceFn(), and ghost_wayland_log_handler_is_background.
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 2549 of file GHOST_SystemWayland.cc.
References ghost_wl_shm_format_as_size(), memfd_create_sealed(), and UNPACK2.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set().
|
static |
Definition at line 2437 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 2482 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 2465 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 1972 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, ghost_wl_display_report_error_from_code(), and wl_display_get_error.
Referenced by GHOST_SystemWayland::processEvents().
|
static |
Definition at line 1947 of file GHOST_SystemWayland.cc.
References ELEM, GHOST_ASSERT, 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 1992 of file GHOST_SystemWayland.cc.
References ghost_wl_display_report_error_from_code(), and wl_display_get_error.
Referenced by GHOST_WindowWayland::GHOST_WindowWayland().
|
static |
Access the LOCALE (with a fallback).
Definition at line 1932 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_add().
Return milliseconds from a microsecond uint32 pair (used by some wayland functions).
Definition at line 1924 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 8759 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 8789 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 9021 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 2528 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 8765 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 8776 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 8783 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 8771 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(), and tablet_tool_handle_proximity_in().
| void ghost_wl_surface_tag | ( | wl_surface * | wl_surface | ) |
Definition at line 8795 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 8801 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 8807 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 9029 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(), and GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 7208 of file GHOST_SystemWayland.cc.
References GWL_RegistryHandler::add_fn, CLOG_INFO, data, GHOST_ASSERT, gwl_registry_entry_update_all(), gwl_registry_handler_interface_slot_from_string(), gwl_registry_handlers, LOG, and params.
|
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 7262 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GHOST_ASSERT, gwl_registry_entry_remove_by_name(), gwl_registry_entry_update_all(), gwl_registry_handlers, and LOG.
|
static |
Free the GWL_Display and its related members.
Definition at line 1526 of file GHOST_SystemWayland.cc.
References ghost_wl_display_lock_without_input(), gwl_display_event_thread_destroy(), gwl_registry_entry_remove_all(), gwl_seat_cursor_anim_end(), gwl_xdg_decor_system_destroy(), and wl_display_disconnect.
|
static |
Definition at line 7324 of file GHOST_SystemWayland.cc.
References events_pending_default_size, GHOST_ASSERT, gwl_display_event_thread_fn(), and pthread_set_min_priority().
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 7336 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy().
|
static |
Definition at line 7301 of file GHOST_SystemWayland.cc.
References ghost_wl_display_event_pump_from_thread(), 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.
--backend=headless causes there to be no seats. CMake's WITH_UI_TESTS does this. Definition at line 1616 of file GHOST_SystemWayland.cc.
References 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::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 1624 of file GHOST_SystemWayland.cc.
References gwl_display_seat_index(), and UNLIKELY.
Referenced by GHOST_SystemWayland::seat_active_set().
|
static |
Definition at line 1599 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT.
Referenced by gwl_display_seat_active_set().
|
static |
Definition at line 777 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, int, 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 802 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 972 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_remove(), and primary_selection_device_handle_selection().
|
static |
Definition at line 982 of file GHOST_SystemWayland.cc.
References GWL_PrimarySelection_DataSource::buffer_out, 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 6486 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6495 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 1737 of file GHOST_SystemWayland.cc.
References GWL_RegistryEntry::interface_slot, GWL_RegistryEntry::name, GWL_RegistryEntry::next, params, 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_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 1813 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, gwl_registry_entry_remove_by_interface_slot(), and gwl_registry_handler_interface_slot_max().
Referenced by gwl_display_destroy().
|
static |
Definition at line 1784 of file GHOST_SystemWayland.cc.
References gwl_registry_handler_from_interface_slot(), GWL_RegistryEntry::interface_slot, GWL_RegistryEntry::next, GWL_RegistryHandler::remove_fn, and GWL_RegistryEntry::user_data.
Referenced by gwl_registry_entry_remove_all().
|
static |
Definition at line 1752 of file GHOST_SystemWayland.cc.
References gwl_registry_handler_from_interface_slot(), GWL_RegistryEntry::interface_slot, GWL_RegistryEntry::name, GWL_RegistryEntry::next, 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 e.g.). 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 e.g. 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 1853 of file GHOST_SystemWayland.cc.
References GHOST_ASSERT, gwl_registry_handler_from_interface_slot(), gwl_registry_handler_interface_slot_max(), params, and GWL_RegistryHandler::update_fn.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), global_handle_add(), and global_handle_remove().
|
static |
Definition at line 7201 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 7189 of file GHOST_SystemWayland.cc.
References gwl_registry_handlers, int, GWL_RegistryHandler::interface_p, 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 7184 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 6842 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6851 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6577 of file GHOST_SystemWayland.cc.
References ghost_wl_output_tag(), GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), output_listener, params, and GWL_Output::system.
|
static |
Definition at line 6607 of file GHOST_SystemWayland.cc.
References CLOG_WARN, GHOST_ASSERT, LOG, and output.
|
static |
Definition at line 6592 of file GHOST_SystemWayland.cc.
References GWL_Output::output, params, GWL_Output::xdg, and xdg_output_listener.
|
static |
Definition at line 6645 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_Seat::seat, seat_listener, GWL_Seat::system, GWL_Seat::wl, and GWL_Seat::xkb.
|
static |
Definition at line 6722 of file GHOST_SystemWayland.cc.
References 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_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_DataOffer::wl, GWL_DataSource::wl, GWL_Seat::wl, GWL_Seat::wp, and GWL_Seat::xkb.
|
static |
Definition at line 6666 of file GHOST_SystemWayland.cc.
References GWL_Seat::data_device, data_device_listener, params, GWL_Seat::primary_selection, GWL_Seat::primary_selection_device, primary_selection_device_listener, GWL_Seat::seat, GWL_Seat::tablet_seat, tablet_seat_listener, GWL_Seat::wl, and GWL_Seat::wp.
|
static |
Definition at line 6823 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6831 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6966 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6976 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6903 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6912 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6923 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6935 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 7007 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 7020 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6882 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6892 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6862 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6871 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6987 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6996 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6946 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6955 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6532 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, and params.
|
static |
Definition at line 6543 of file GHOST_SystemWayland.cc.
References GWL_XDG_Decor_System::manager, GWL_XDG_Decor_System::manager_name, and WL_NAME_UNSET.
|
static |
Definition at line 6557 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), and params.
|
static |
Definition at line 6566 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6506 of file GHOST_SystemWayland.cc.
References GWL_IFACE_VERSION_CLAMP, gwl_registry_entry_add(), params, GWL_XDG_Decor_System::shell, shell_listener, and GWL_XDG_Decor_System::shell_name.
|
static |
Definition at line 6518 of file GHOST_SystemWayland.cc.
References GWL_XDG_Decor_System::shell, GWL_XDG_Decor_System::shell_name, and WL_NAME_UNSET.
|
static |
Definition at line 861 of file GHOST_SystemWayland.cc.
References add(), GWL_ScaledFixedT::factor, and GWL_ScaledFixedT::value.
|
static |
Definition at line 6117 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 6108 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 6087 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, gwl_seat_capability_pointer_multitouch_disable(), GWL_Seat::pointer, GWL_Cursor::surface_cursor, GWL_Cursor::theme, GWL_Cursor::wl, GWL_Seat::wl, and wl_cursor_theme_destroy.
Referenced by gwl_registry_wl_seat_remove(), and seat_handle_capabilities().
|
static |
Definition at line 6048 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(), int, GWL_Seat::pointer, pointer_listener, GWL_Seat::seat, GWL_Cursor::surface_cursor, GWL_Seat::system, GWL_Cursor::theme_name, GWL_Cursor::theme_size, GWL_Cursor::visible, GWL_Cursor::wl, GWL_Seat::wl, and GHOST_SystemWayland::wl_compositor_get().
Referenced by seat_handle_capabilities().
|
static |
Definition at line 5929 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 6007 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 5965 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 6145 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 6135 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 |
Definition at line 2929 of file GHOST_SystemWayland.cc.
References GWL_Cursor::anim_handle, GWL_Seat::cursor, GHOST_ASSERT, gwl_seat_cursor_buffer_set(), GHOST_SystemWayland::server_mutex, GWL_Seat::system, GWL_Cursor::theme_cursor, thread_set_min_priority(), GWL_Cursor::wl, wl_cursor_image_get_buffer, wl_display_flush, and GHOST_SystemWayland::wl_display_get().
Referenced by gwl_seat_cursor_anim_begin_if_needed().
|
static |
Definition at line 2971 of file GHOST_SystemWayland.cc.
References gwl_seat_cursor_anim_begin(), and gwl_seat_cursor_anim_check().
Referenced by gwl_seat_cursor_anim_reset(), and gwl_seat_cursor_buffer_set_current().
|
static |
Definition at line 2916 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, GWL_Cursor::theme_cursor, and GWL_Cursor::wl.
Referenced by gwl_seat_cursor_anim_begin_if_needed().
|
static |
Definition at line 2978 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, and GWL_Cursor_AnimHandle::exit_pending.
Referenced by gwl_display_destroy(), gwl_seat_cursor_anim_reset(), gwl_seat_cursor_buffer_hide(), and gwl_seat_cursor_buffer_set_current().
|
static |
Definition at line 2988 of file GHOST_SystemWayland.cc.
References gwl_seat_cursor_anim_begin_if_needed(), and gwl_seat_cursor_anim_end().
Referenced by gwl_seat_cursor_buffer_show().
|
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 2806 of file GHOST_SystemWayland.cc.
References gwl_seat_cursor_anim_end(), GWL_Seat::pointer, GWL_SeatStatePointer::serial, GWL_Seat::tablet, GWL_Seat::tablet_tools, GWL_Seat::wl, and GWL_Seat::wp.
Referenced by gwl_seat_cursor_visible_set().
|
static |
Definition at line 2816 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, cursor_buffer_compatible_scale_from_image(), cursor_buffer_set_surface_impl(), GWL_Seat::pointer, GWL_SeatStatePointer::serial, GWL_TabletTool::surface_cursor, GWL_Seat::tablet, GWL_Seat::tablet_tools, GWL_SeatStatePointer::theme_scale, GWL_Seat::wl, GWL_TabletTool::wl, and GWL_Seat::wp.
Referenced by gwl_seat_cursor_anim_begin(), and gwl_seat_cursor_buffer_set_current().
|
static |
Definition at line 2857 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, gwl_seat_cursor_anim_begin_if_needed(), gwl_seat_cursor_anim_end(), gwl_seat_cursor_buffer_set(), and GWL_Seat::wl.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set(), and GHOST_SystemWayland::cursor_shape_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 2767 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, gwl_seat_cursor_anim_reset(), GWL_Cursor::is_custom, GWL_Seat::pointer, GWL_SeatStatePointer::serial, GWL_TabletTool::surface_cursor, GWL_Seat::tablet, GWL_Seat::tablet_tools, GWL_SeatStatePointer::theme_scale, GWL_Seat::wl, GWL_TabletTool::wl, and GWL_Seat::wp.
Referenced by gwl_seat_cursor_visible_set().
|
static |
Definition at line 2729 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor, GHOST_PRINT, ghost_wl_cursors, GWL_Cursor_ShapeInfo::names, GWL_Seat::system, wl_cursor_theme_get_cursor, wl_cursor_theme_load, and GHOST_SystemWayland::wl_shm_get().
Referenced by GHOST_SystemWayland::cursor_shape_check(), and GHOST_SystemWayland::cursor_shape_set().
|
static |
Definition at line 2871 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(), and GWL_Cursor::is_hardware.
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 1240 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 |
timer_mutex. Definition at line 1301 of file GHOST_SystemWayland.cc.
References GHOST_TimerManager::addTimer(), GWL_Seat::delay, GHOST_SystemWayland::getMilliSeconds(), 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 1268 of file GHOST_SystemWayland.cc.
References GWL_Seat::compose_state, 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 |
timer_mutex. Definition at line 1326 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 1210 of file GHOST_SystemWayland.cc.
References GWL_Seat::cursor_source_serial, GWL_Seat::pointer, GWL_SeatStatePointer::serial, and GWL_Seat::tablet.
Referenced by GHOST_SystemWayland::getButtons(), GHOST_SystemWayland::getCursorPosition(), and GHOST_SystemWayland::getCursorPositionClientRelative().
|
static |
Definition at line 1221 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 398 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 405 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 562 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 int.
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 575 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 929 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 3028 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 3048 of file GHOST_SystemWayland.cc.
References CLOG_INFO, GHOST_kEventKeyDown, GHOST_kEventKeyUp, GHOST_KEY_MODIFIER_FROM_INDEX, GHOST_KEY_MODIFIER_NUM, 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 3021 of file GHOST_SystemWayland.cc.
References GHOST_KEY_MODIFIER_NUM, 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 5138 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 5371 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 |
timer_mutex. Definition at line 5346 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(), and keyboard_handle_leave().
|
static |
Restart the key-repeat timer.
| use_delay | When false, use the interval (prevents pause when the setting changes while the key is held). |
timer_mutex. Definition at line 5361 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 5033 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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(), KEY_0, KEY_1, keyboard_depressed_state_reset(), GWL_Seat::layout_active, LOG, MOD_INDEX_NUM, MOD_INDEX_SHIFT, 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 5222 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 5509 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 5549 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_Seat::delay, GWL_Seat::key_repeat, keyboard_handle_key_repeat_reset(), LOG, GWL_Seat::rate, GWL_Seat::system, GWL_Seat::timer, and GHOST_SystemWayland::timer_mutex.
|
static |
Definition at line 2347 of file GHOST_SystemWayland.cc.
References free().
Referenced by ghost_wl_buffer_create_for_image().
|
static |
Definition at line 6404 of file GHOST_SystemWayland.cc.
|
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 6367 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, ELEM, FRACTIONAL_DENOMINATOR, GHOST_ASSERT, LOG, and UNPACK2.
Referenced by xdg_output_handle_done().
|
static |
Definition at line 6306 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, GWL_Output::transform, and transform().
|
static |
Definition at line 6334 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, and GWL_Output::size_native.
|
static |
Definition at line 6399 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6391 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, and GWL_Output::scale.
Definition at line 2197 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_axis(), pointer_handle_axis_discrete(), and pointer_handle_axis_value120().
|
static |
Definition at line 3972 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 4199 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 4170 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointerScroll::axis_source, CLOG_INFO, data, LOG, and GWL_Seat::pointer_scroll.
|
static |
Definition at line 4178 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 4216 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 3933 of file GHOST_SystemWayland.cc.
References BTN_RANGE_MAX, BTN_RANGE_MIN, Button0_Down, CLOG_INFO, 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 3863 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 3994 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_INFO, 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_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, int, 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 3901 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, ghost_wl_surface_own_with_null_check(), LOG, GWL_Seat::wl, and wl_surface.
|
static |
Definition at line 3915 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 5619 of file GHOST_SystemWayland.cc.
References CLOG_INFO, GWL_PrimarySelection_DataOffer::id, LOG, primary_selection_offer_listener, and GWL_PrimarySelection_DataOffer::wp.
|
static |
Definition at line 5631 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_PrimarySelection::data_offer_mutex, gwl_primary_selection_discard_offer(), lock, and LOG.
|
static |
Definition at line 5591 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_PrimarySelection_DataOffer::id, LOG, GWL_PrimarySelection_DataOffer::types, and GWL_PrimarySelection_DataOffer::wp.
|
static |
Definition at line 5697 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, gwl_primary_selection_discard_source(), and LOG.
|
static |
|
static |
Definition at line 2325 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_event_thread_create(), and thread_set_min_priority().
|
static |
Definition at line 3181 of file GHOST_SystemWayland.cc.
References CLOG_WARN, GWL_DataOffer::dnd, GWL_DataOffer::id, GWL_DataOffer::in_use, LOG, mutex, read_file_as_buffer(), and GWL_DataOffer::wl.
Referenced by data_device_handle_drop(), GHOST_SystemWayland::getClipboardImage(), and system_clipboard_get().
|
static |
Definition at line 3218 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 2585 of file GHOST_SystemWayland.cc.
References 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 e.g.).
errno will be set. Definition at line 2613 of file GHOST_SystemWayland.cc.
References 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 3122 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 3095 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 8713 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 6154 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 6191 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 8688 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 8132 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(), and GWL_Seat::wp.
Referenced by GHOST_SystemWayland::setCursorPosition(), and GHOST_SystemWayland::setCursorPositionClientRelative().
|
static |
Definition at line 6432 of file GHOST_SystemWayland.cc.
Definition at line 1916 of file GHOST_SystemWayland.cc.
References b.
Referenced by GHOST_SystemWayland::ms_from_input_time().
|
static |
Definition at line 7782 of file GHOST_SystemWayland.cc.
References data, GWL_Seat::data_offer_copy_paste, GWL_Seat::data_offer_copy_paste_mutex, gwl_display_seat_active_get(), mutex, read_buffer_from_data_offer(), system_clipboard_text_mime_type(), GWL_DataOffer::types, UNLIKELY, and wl_display_roundtrip.
Referenced by GHOST_SystemWayland::getClipboard().
|
static |
Definition at line 7732 of file GHOST_SystemWayland.cc.
References data, GWL_PrimarySelection::data_offer_mutex, 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, and wl_display_roundtrip.
Referenced by GHOST_SystemWayland::getClipboard().
|
static |
Definition at line 7884 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, GWL_DataSource::buffer_out, GWL_Seat::data_device, 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(), lock, GWL_DataSource::source, UNLIKELY, GWL_DataSource::wl, and GWL_Seat::wl.
Referenced by GHOST_SystemWayland::putClipboard().
|
static |
Definition at line 7847 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, GWL_PrimarySelection_DataSource::buffer_out, 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(), lock, GWL_Seat::primary_selection, GWL_Seat::primary_selection_device, primary_selection_source_listener, GWL_PrimarySelection_DataSource::source, UNLIKELY, 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 7720 of file GHOST_SystemWayland.cc.
References ARRAY_SIZE, ghost_wl_mime_text_plain, and ghost_wl_mime_text_utf8.
Referenced by system_clipboard_get(), and system_clipboard_get_primary_selection().
|
static |
Definition at line 5009 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4980 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4987 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 4817 of file GHOST_SystemWayland.cc.
References BTN_STYLUS, BTN_STYLUS2, BTN_STYLUS3, CLOG_INFO, 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 4630 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4760 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4644 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4707 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_Seat::data_source_serial, gwl_tablet_tool_frame_event_add(), LOG, GWL_TabletTool::seat, and Stylus0_Down.
|
static |
Definition at line 4863 of file GHOST_SystemWayland.cc.
References GWL_SeatStatePointer::buttons, GWL_TabletTool::clicks, CLOG_INFO, 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_wl_surface_user_data(), gwl_tablet_tool_ebutton, gwl_tablet_tool_frame_event_reset(), GWL_TabletTool::has_xy, int, 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 4622 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4614 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4730 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, gwl_tablet_tool_frame_event_add(), GWL_TabletTool::has_xy, LOG, Motion, x, GWL_TabletTool::xy, and y.
|
static |
Definition at line 4746 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, GWL_TabletTool::data, float, gwl_tablet_tool_frame_event_add(), LOG, GHOST_TabletData::Pressure, and Pressure.
|
static |
Definition at line 4662 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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_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 4697 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, and GWL_TabletTool::proximity.
|
static |
Definition at line 4648 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, GWL_TabletTool::seat, GWL_TabletTool::surface_cursor, GWL_Seat::tablet_tools, GWL_TabletTool::wl, and GWL_Seat::wp.
|
static |
Definition at line 4786 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4793 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4767 of file GHOST_SystemWayland.cc.
References CLOG_INFO, 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 4603 of file GHOST_SystemWayland.cc.
References GHOST_TabletData::Active, CLOG_INFO, data, GWL_TabletTool::data, LOG, and tablet_tool_map_type().
|
static |
Definition at line 4721 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, gwl_tablet_tool_frame_event_add(), LOG, and Stylus0_Up.
|
static |
Definition at line 4799 of file GHOST_SystemWayland.cc.
References GWL_TabletTool::clicks, CLOG_INFO, data, GWL_TabletTool::frame_pending, gwl_tablet_tool_frame_event_add(), LOG, Wheel, and GWL_TabletTool::wheel.
|
static |
Definition at line 2212 of file GHOST_SystemWayland.cc.
References GHOST_kTabletModeEraser, GHOST_kTabletModeStylus, and GHOST_PRINT.
Referenced by tablet_tool_handle_type().
|
static |
Definition at line 2335 of file GHOST_SystemWayland.cc.
References pthread_set_min_priority().
Referenced by gwl_seat_cursor_anim_begin().
|
static |
Definition at line 4559 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4523 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4554 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4544 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4574 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4565 of file GHOST_SystemWayland.cc.
Definition at line 4535 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3740 of file GHOST_SystemWayland.cc.
References FRACTIONAL_DENOMINATOR, GWL_SeatStatePointer::outputs, GWL_SeatStatePointer::theme_scale, wl_cursor_theme_destroy, wl_cursor_theme_get_cursor, and wl_cursor_theme_load.
Referenced by cursor_surface_handle_enter(), cursor_surface_handle_leave(), and GHOST_SystemWayland::output_scale_update().
|
static |
Definition at line 6280 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6262 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, and output_handle_done().
|
static |
Definition at line 6213 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, LOG, GWL_Output::position_logical, x, and y.
|
static |
Definition at line 6226 of file GHOST_SystemWayland.cc.
References CLOG_INFO, data, FRACTIONAL_DENOMINATOR, GHOST_PRINT, LOG, and use_gnome_confine_hack.
|
static |
Definition at line 6273 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5298 of file GHOST_SystemWayland.cc.
References state, and GHOST_TEventKeyData::utf8_buf.
Referenced by gwl_seat_key_repeat_timer_fn(), and keyboard_handle_key().
|
static |
Definition at line 2051 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_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_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 2165 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 5251 of file GHOST_SystemWayland.cc.
References EVDEV_OFFSET, GHOST_ASSERT, KEY_0, and KEY_1.
Referenced by keyboard_handle_key().
|
static |
Definition at line 3725 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::cursor_shape_custom_set().
|
static |
Definition at line 3842 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_pointer_enable(), and tablet_seat_handle_tool_added().
|
static |
Definition at line 3692 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_update().
|
static |
Definition at line 3385 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_data_offer().
|
static |
Definition at line 3338 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::putClipboardImage(), and system_clipboard_put().
|
static |
Definition at line 2233 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_pointer_enable().
|
constexpr |
Default size for pending event vector.
Definition at line 155 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_event_thread_create(), and GHOST_SystemWayland::processEvents().
|
static |
Definition at line 347 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getModifierKeys(), and keyboard_handle_keymap().
|
static |
Definition at line 2007 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), and ghost_wayland_log_handler().
|
static |
Definition at line 8862 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::xdg_app_id_get().
|
static |
Definition at line 2239 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_cursor_find_from_shape().
|
staticconstexpr |
Definition at line 7929 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getClipboardImage(), GHOST_SystemWayland::hasClipboardImage(), and GHOST_SystemWayland::putClipboardImage().
|
static |
Definition at line 2303 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), and data_device_handle_enter().
|
static |
Definition at line 2309 of file GHOST_SystemWayland.cc.
Referenced by dnd_events().
|
static |
Definition at line 2315 of file GHOST_SystemWayland.cc.
Referenced by system_clipboard_put(), and system_clipboard_put_primary_selection().
|
staticconstexpr |
Definition at line 2299 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), and system_clipboard_text_mime_type().
|
staticconstexpr |
Definition at line 2301 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop().
|
staticconstexpr |
Definition at line 2300 of file GHOST_SystemWayland.cc.
Referenced by data_device_handle_drop(), and system_clipboard_text_mime_type().
|
static |
Definition at line 8754 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_output_own(), and ghost_wl_output_tag().
|
static |
Definition at line 8756 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_surface_own_cursor_pointer(), and ghost_wl_surface_tag_cursor_pointer().
|
static |
Definition at line 8757 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_surface_own_cursor_tablet(), and ghost_wl_surface_tag_cursor_tablet().
|
static |
Definition at line 8755 of file GHOST_SystemWayland.cc.
Referenced by ghost_wl_surface_own(), and ghost_wl_surface_tag().
|
static |
Definition at line 749 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 7064 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 513 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 5571 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_keyboard_enable().
|
static |
Definition at line 3709 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3737 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3399 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3355 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3162 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5030 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3018 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::getModifierKeys().
|
static |
Definition at line 6303 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3860 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5616 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5588 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5669 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6481 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 3089 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 5926 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4977 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4600 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 4520 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6210 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6429 of file GHOST_SystemWayland.cc.
|
static |
Definition at line 6412 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_output_add().
|
static |
Definition at line 4250 of file GHOST_SystemWayland.cc.
Referenced by gwl_seat_capability_pointer_enable().
|
static |
Definition at line 5656 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_update().
|
static |
Definition at line 5604 of file GHOST_SystemWayland.cc.
Referenced by primary_selection_device_handle_data_offer().
|
static |
Definition at line 5708 of file GHOST_SystemWayland.cc.
Referenced by system_clipboard_put_primary_selection().
|
static |
Definition at line 7286 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::GHOST_SystemWayland().
|
static |
Definition at line 3150 of file GHOST_SystemWayland.cc.
Referenced by GHOST_SystemWayland::window_cursor_grab_set().
|
static |
Definition at line 6197 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_add().
|
static |
Definition at line 6438 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 815 of file GHOST_SystemWayland.cc.
Referenced by pointer_handle_frame().
|
static |
Definition at line 5016 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_seat_update().
|
static |
Definition at line 4947 of file GHOST_SystemWayland.cc.
Referenced by tablet_seat_handle_tool_added().
|
static |
Definition at line 4582 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 184 of file GHOST_SystemWayland.cc.
Referenced by setCursorGrab_use_software_confine(), and xdg_output_handle_logical_size().
|
static |
Definition at line 6287 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_output_update().