Blender V5.0
wm_event_system.cc File Reference
#include <cstdlib>
#include <cstring>
#include <fmt/format.h>
#include "AS_asset_library.hh"
#include "DNA_listBase.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
#include "MEM_guardedalloc.h"
#include "CLG_log.h"
#include "GHOST_C-api.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
#include "BLI_timer.h"
#include "BLI_utildefines.h"
#include "BKE_context.hh"
#include "BKE_customdata.hh"
#include "BKE_global.hh"
#include "BKE_idprop.hh"
#include "BKE_layer.hh"
#include "BKE_lib_remap.hh"
#include "BKE_library.hh"
#include "BKE_main.hh"
#include "BKE_report.hh"
#include "BKE_scene.hh"
#include "BKE_screen.hh"
#include "BKE_undo_system.hh"
#include "BKE_workspace.hh"
#include "BKE_sound.h"
#include "BLT_translation.hh"
#include "ED_asset.hh"
#include "ED_fileselect.hh"
#include "ED_info.hh"
#include "ED_markers.hh"
#include "ED_render.hh"
#include "ED_screen.hh"
#include "ED_undo.hh"
#include "ED_util.hh"
#include "ED_view3d.hh"
#include "GPU_context.hh"
#include "RNA_access.hh"
#include "UI_interface.hh"
#include "UI_interface_layout.hh"
#include "UI_view2d.hh"
#include "WM_api.hh"
#include "WM_keymap.hh"
#include "WM_message.hh"
#include "WM_toolsystem.hh"
#include "WM_types.hh"
#include "wm.hh"
#include "wm_event_system.hh"
#include "wm_event_types.hh"
#include "wm_surface.hh"
#include "wm_window.hh"
#include "wm_window_private.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "RE_pipeline.h"

Go to the source code of this file.

Classes

struct  uiOperatorWaitForInput
struct  wmEvent_ModalMapStore
struct  wmEvent_ConsecutiveData
struct  CursorKeymapInfo_State
struct  CursorKeymapInfo

Macros

#define USE_GIZMO_MOUSE_PRIORITY_HACK
#define WM_HANDLER_CONTINUE   ((eHandlerActionFlag)0)
#define CASE_BUTTON(ghost_button, type)

Enumerations

enum  eHandlerActionFlag { WM_HANDLER_BREAK = 1 << 0 , WM_HANDLER_HANDLED = 1 << 1 , WM_HANDLER_MODAL = 1 << 2 }

Functions

 ENUM_OPERATORS (eHandlerActionFlag, WM_HANDLER_MODAL)
Notifiers & Listeners
static void wm_notifier_clear (wmNotifier *note)
static bool wm_notifier_is_clear (const wmNotifier *note)
static uint note_hash_for_queue_fn (const void *ptr)
static bool note_cmp_for_queue_fn (const void *a, const void *b)
static void wm_event_add_notifier_intern (wmWindowManager *wm, const wmWindow *win, uint type, void *reference)
void WM_event_add_notifier_ex (wmWindowManager *wm, const wmWindow *win, uint type, void *reference)
void WM_event_add_notifier (const bContext *C, uint type, void *reference)
void WM_main_add_notifier (uint type, void *reference)
void WM_main_remove_notifier_reference (const void *reference)
void WM_main_remap_editor_id_reference (const blender::bke::id::IDRemapper &mappings)
void wm_event_do_depsgraph (bContext *C, bool is_after_open_file)
void wm_event_do_refresh_wm_and_depsgraph (bContext *C)
static void wm_event_timers_execute (bContext *C)
void wm_event_do_notifiers (bContext *C)
static bool wm_event_always_pass (const wmEvent *event)
BLI_INLINE void wm_event_handler_return_value_check (const bContext *C, const wmEvent *event, const eHandlerActionFlag action)
Operator Logic
static wmOperatorStatus wm_operator_call_internal (bContext *C, wmOperatorType *ot, PointerRNA *properties, ReportList *reports, const blender::wm::OpCallContext context, const bool poll_only, const wmEvent *event)
static intptr_t wm_operator_undo_active_id (const wmWindowManager *wm)
static intptr_t wm_operator_register_active_id (const wmWindowManager *wm)
bool WM_operator_poll (bContext *C, wmOperatorType *ot)
bool WM_operator_poll_or_report_error (bContext *C, wmOperatorType *ot, ReportList *reports)
bool WM_operator_poll_context (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context)
bool WM_operator_ui_poll (wmOperatorType *ot, PointerRNA *ptr)
void WM_operator_region_active_win_set (bContext *C)
static void wm_operator_reports (bContext *C, wmOperator *op, const wmOperatorStatus retval, const bool caller_owns_reports)
static bool wm_operator_register_check (wmWindowManager *wm, wmOperatorType *ot)
static void wm_operator_finished (bContext *C, wmOperator *op, const bool repeat, const bool store, const bool has_undo_step, const bool has_register)
static wmOperatorStatus wm_operator_exec (bContext *C, wmOperator *op, const bool repeat, const bool store)
static wmOperatorStatus wm_operator_exec_notest (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_call_ex (bContext *C, wmOperator *op, const bool store)
wmOperatorStatus WM_operator_call (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_call_notest (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_repeat (bContext *C, wmOperator *op)
wmOperatorStatus WM_operator_repeat_last (bContext *C, wmOperator *op)
bool WM_operator_repeat_check (const bContext *, wmOperator *op)
bool WM_operator_is_repeat (const bContext *C, const wmOperator *op)
static wmOperatorwm_operator_create (wmWindowManager *wm, wmOperatorType *ot, PointerRNA *properties, ReportList *reports)
static void wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak (wmWindow *win)
static void wm_region_mouse_co (bContext *C, wmEvent *event)
static wmOperatorStatus wm_operator_invoke (bContext *C, wmOperatorType *ot, const wmEvent *event, PointerRNA *properties, ReportList *reports, const bool poll_only, bool use_last_properties)
wmOperatorStatus WM_operator_name_call_ptr (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
wmOperatorStatus WM_operator_name_call (bContext *C, const char *opstring, blender::wm::OpCallContext context, PointerRNA *properties, const wmEvent *event)
bool WM_operator_name_poll (bContext *C, const char *opstring)
wmOperatorStatus WM_operator_name_call_with_properties (bContext *C, const char *opstring, blender::wm::OpCallContext context, IDProperty *properties, const wmEvent *event)
void WM_menu_name_call (bContext *C, const char *menu_name, blender::wm::OpCallContext context)
wmOperatorStatus WM_operator_call_py (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext context, PointerRNA *properties, ReportList *reports, const bool is_undo)
WM Interface Locking
static bool wm_operator_check_locked_interface (bContext *C, wmOperatorType *ot)
void WM_locked_interface_set_with_flags (wmWindowManager *wm, short lock_flags)
void WM_locked_interface_set (wmWindowManager *wm, bool lock)
Ghost Event Conversion
static wmEventwm_event_add_mousemove_to_head (wmWindow *win)
static void wm_event_state_update_and_click_set_ex (wmEvent *event, uint64_t event_time_ms, wmEvent *event_state, uint64_t *event_state_prev_press_time_ms_p, const bool is_keyboard, const bool check_double_click)
static wmEventType wm_event_type_from_ghost_key (GHOST_TKey key)
static wmEventType wm_event_type_from_ghost_button (const GHOST_TButton button, const wmEventType fallback)
static void wm_eventemulation (wmEvent *event, bool test_only)
constexpr wmTabletData wm_event_tablet_data_default ()
void WM_event_tablet_data_default_set (wmTabletData *tablet_data)
void wm_tablet_data_from_ghost (const GHOST_TabletData *tablet_data, wmTabletData *wmtab)
static wmWindowwm_event_cursor_other_windows (wmWindowManager *wm, wmWindow *win, wmEvent *event)
static bool wm_event_is_double_click (const wmEvent *event, const uint64_t event_time_ms, const uint64_t event_prev_press_time_ms)
static void wm_event_prev_values_set (wmEvent *event, wmEvent *event_state)
static void wm_event_prev_click_set (uint64_t event_time_ms, wmEvent *event_state, uint64_t *r_event_state_prev_press_time_ms)
static wmEventwm_event_add_mousemove (wmWindow *win, const wmEvent *event)
static wmEventwm_event_add_trackpad (wmWindow *win, const wmEvent *event, int deltax, int deltay)
static void wm_event_state_update_and_click_set (wmEvent *event, uint64_t event_time_ms, wmEvent *event_state, uint64_t *event_state_prev_press_time_ms_p, const GHOST_TEventType type)
static bool wm_event_is_same_key_press (const wmEvent &event_a, const wmEvent &event_b)
static bool wm_event_is_ignorable_key_press (const wmWindow *win, const wmEvent &event)
void wm_event_add_ghostevent (wmWindowManager *wm, wmWindow *win, const int type, const void *customdata, const uint64_t event_time_ms)
Private Utilities
static bool screen_temp_region_exists (const ARegion *region)
Event Management
static wmEventwm_event_add_intern (wmWindow *win, const wmEvent *event_to_add)
wmEventWM_event_add (wmWindow *win, const wmEvent *event_to_add)
wmEventWM_event_add_simulate (wmWindow *win, const wmEvent *event_to_add)
static void wm_event_custom_free (wmEvent *event)
static void wm_event_custom_clear (wmEvent *event)
void wm_event_free (wmEvent *event)
static void wm_event_free_last_handled (wmWindow *win, wmEvent *event)
static void wm_event_free_last (wmWindow *win)
void wm_event_free_all (wmWindow *win)
void wm_event_init_from_window (wmWindow *win, wmEvent *event)
UI Handling
static eHandlerActionFlag wm_handler_ui_call (bContext *C, wmEventHandler_UI *handler, const wmEvent *event, const bool always_pass)
void wm_event_handler_ui_cancel_ex (bContext *C, wmWindow *win, ARegion *region, bool reactivate_button)
static void wm_event_handler_ui_cancel (bContext *C)
WM Reports

Access to #wmWindowManager.reports

void WM_report_banner_show (wmWindowManager *wm, wmWindow *win)
void WM_report_banners_cancel (Main *bmain)
void WM_reports_from_reports_move (wmWindowManager *wm, ReportList *reports)
void WM_global_report (eReportType type, const char *message)
void WM_global_reportf (eReportType type, const char *format,...)
Operator Wait For Input

Delay executing operators that depend on cursor location.

See: OPTYPE_DEPENDS_ON_CURSOR doc-string for more information.

static void ui_handler_wait_for_input_remove (bContext *C, void *userdata)
static int ui_handler_wait_for_input (bContext *C, const wmEvent *event, void *userdata)
void WM_operator_name_call_ptr_with_depends_on_cursor (bContext *C, wmOperatorType *ot, blender::wm::OpCallContext opcontext, PointerRNA *properties, const wmEvent *event, const StringRef drawstr)
Handle Single Event (All Handler Types)
static eHandlerActionFlag wm_handlers_do_intern (bContext *C, wmWindow *win, wmEvent *event, ListBase *handlers)
static eHandlerActionFlag wm_handlers_do (bContext *C, wmEvent *event, ListBase *handlers)
Event Queue Utilities

Utilities used by wm_event_do_handlers.

static bool wm_event_inside_rect (const wmEvent *event, const rcti *rect)
static ScrAreaarea_event_inside (bContext *C, const int xy[2])
static ARegionregion_event_inside (bContext *C, const int xy[2])
static void wm_paintcursor_tag (bContext *C, wmWindowManager *wm, ARegion *region)
static void wm_paintcursor_test (bContext *C, const wmEvent *event)
static eHandlerActionFlag wm_event_drag_and_drop_test (wmWindowManager *wm, wmWindow *win, wmEvent *event)
static bool wm_event_pie_filter (wmWindow *win, const wmEvent *event)
static void wm_event_free_and_remove_from_queue_if_valid (wmEvent *event)
Main Event Queue (Every Window)

Handle events for all windows, run from the WM_main event loop.

static eHandlerActionFlag wm_event_do_region_handlers (bContext *C, wmEvent *event, ARegion *region)
static eHandlerActionFlag wm_event_do_handlers_area_regions (bContext *C, wmEvent *event, ScrArea *area)
void wm_event_do_handlers (bContext *C)
File Selector Handling
void WM_event_fileselect_event (wmWindowManager *wm, void *ophandle, const int eventval)
static wmWindowwm_event_find_fileselect_root_window_from_context (const bContext *C)
void WM_event_add_fileselect (bContext *C, wmOperator *op)
Consecutive Event Access
void * WM_event_consecutive_data_get (wmWindow *win, const char *id)
void WM_event_consecutive_data_set (wmWindow *win, const char *id, void *custom_data)
void WM_event_consecutive_data_free (wmWindow *win)
Modal Operator Handling
wmEventHandler_OpWM_event_add_modal_handler_ex (wmWindow *win, ScrArea *area, ARegion *region, wmOperator *op)
wmEventHandler_OpWM_event_add_modal_handler (bContext *C, wmOperator *op)
void WM_event_remove_model_handler (ListBase *handlers, const wmOperator *op, const bool postpone)
void WM_event_remove_modal_handler_all (const wmOperator *op, const bool postpone)
void WM_event_modal_handler_area_replace (wmWindow *win, const ScrArea *old_area, ScrArea *new_area)
void WM_event_modal_handler_region_replace (wmWindow *win, const ARegion *old_region, ARegion *new_region)
void WM_event_ui_handler_region_popup_replace (wmWindow *win, const ARegion *old_region, ARegion *new_region)
wmEventHandler_KeymapWM_event_add_keymap_handler (ListBase *handlers, wmKeyMap *keymap)
static void wm_event_get_keymap_from_toolsystem_ex (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result, const bool with_gizmos)
void WM_event_get_keymap_from_toolsystem_with_gizmos (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
void WM_event_get_keymap_from_toolsystem (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
wmEventHandler_KeymapWM_event_add_keymap_handler_dynamic (ListBase *handlers, wmEventHandler_KeymapDynamicFn keymap_fn, void *user_data)
wmEventHandler_KeymapWM_event_add_keymap_handler_priority (ListBase *handlers, wmKeyMap *keymap, int)
static bool event_or_prev_in_rect (const wmEvent *event, const rcti *rect)
bool WM_event_handler_region_v2d_mask_poll (const wmWindow *, const ScrArea *, const ARegion *region, const wmEvent *event)
bool WM_event_handler_region_marker_poll (const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
bool WM_event_handler_region_v2d_mask_no_marker_poll (const wmWindow *win, const ScrArea *area, const ARegion *region, const wmEvent *event)
wmEventHandler_KeymapWM_event_add_keymap_handler_poll (ListBase *handlers, wmKeyMap *keymap, EventHandlerPoll poll)
wmEventHandler_KeymapWM_event_add_keymap_handler_v2d_mask (ListBase *handlers, wmKeyMap *keymap)
void WM_event_remove_keymap_handler (ListBase *handlers, wmKeyMap *keymap)
void WM_event_set_keymap_handler_post_callback (wmEventHandler_Keymap *handler, void(keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data), void *user_data)
wmEventHandler_UIWM_event_add_ui_handler (const bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, const eWM_EventHandlerFlag flag)
void WM_event_remove_ui_handler (ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn, void *user_data, const bool postpone)
void WM_event_free_ui_handler_all (bContext *C, ListBase *handlers, wmUIHandlerFunc handle_fn, wmUIHandlerRemoveFunc remove_fn)
wmEventHandler_DropboxWM_event_add_dropbox_handler (ListBase *handlers, ListBase *dropboxes)
void WM_event_remove_handlers_by_area (ListBase *handlers, const ScrArea *area)
wmOperatorWM_operator_find_modal_by_type (wmWindow *win, const wmOperatorType *ot)
void WM_event_add_mousemove (wmWindow *win)
Event / Keymap Matching API
void WM_event_get_keymaps_from_handler (wmWindowManager *wm, wmWindow *win, wmEventHandler_Keymap *handler, wmEventHandler_KeymapResult *km_result)
wmKeyMapItemWM_event_match_keymap_item (bContext *C, wmKeyMap *keymap, const wmEvent *event)
wmKeyMapItemWM_event_match_keymap_item_from_handlers (bContext *C, wmWindowManager *wm, wmWindow *win, ListBase *handlers, const wmEvent *event)
bool WM_event_match (const wmEvent *winevent, const wmKeyMapItem *kmi)
Cursor Keymap Status

Show cursor keys in the status bar. This is done by detecting changes to the state - full key-map lookups are expensive so only perform this on changing tools, space types, pressing different modifier keys... etc.

static void wm_event_cursor_store (CursorKeymapInfo_State *state, const wmEvent *event, short space_type, short region_type, const bToolRef *tref)
const char * WM_window_cursor_keymap_status_get (const wmWindow *win, int button_index, int type_index)
ScrAreaWM_window_status_area_find (wmWindow *win, bScreen *screen)
void WM_window_status_area_tag_redraw (wmWindow *win)
void WM_window_cursor_keymap_status_refresh (bContext *C, wmWindow *win)
Modal Keymap Status
bool WM_window_modal_keymap_status_draw (bContext *C, wmWindow *win, uiLayout *layout)

Handler Types

General API for different handler types.

#define PRINT
static void wm_operator_free_for_fileselect (wmOperator *file_operator)
void wm_event_free_handler (wmEventHandler *handler)
static void wm_handler_op_context_get_if_valid (bContext *C, wmEventHandler_Op *handler, const wmEvent *event, ScrArea **r_area, ARegion **r_region)
static void wm_handler_op_context (bContext *C, wmEventHandler_Op *handler, const wmEvent *event)
void WM_event_remove_handlers (bContext *C, ListBase *handlers)
BLI_INLINE bool wm_eventmatch (const wmEvent *winevent, const wmKeyMapItem *kmi)
static wmKeyMapItemwm_eventmatch_modal_keymap_items (const wmKeyMap *keymap, wmOperator *op, const wmEvent *event)
static void wm_event_modalkeymap_begin (const bContext *C, wmOperator *op, wmEvent *event, wmEvent_ModalMapStore *event_backup)
static void wm_event_modalkeymap_end (wmEvent *event, const wmEvent_ModalMapStore *event_backup)
static void wm_handler_operator_insert (wmWindow *win, wmEventHandler_Op *handler)
static eHandlerActionFlag wm_handler_operator_call (bContext *C, ListBase *handlers, wmEventHandler *handler_base, wmEvent *event, PointerRNA *properties, const char *kmi_idname)
static eHandlerActionFlag wm_handler_fileselect_do (bContext *C, ListBase *handlers, wmEventHandler_Op *handler, int val)
static eHandlerActionFlag wm_handler_fileselect_call (bContext *C, ListBase *handlers, wmEventHandler_Op *handler, const wmEvent *event)
static bool wm_action_not_handled (const eHandlerActionFlag action)
static const char * keymap_handler_log_action_str (const eHandlerActionFlag action)
static std::optional< std::string > keymap_handler_log_kmi_event_str (const wmKeyMapItem *kmi)
static std::string keymap_handler_log_kmi_op_str (bContext *C, const wmKeyMapItem *kmi)
static eHandlerActionFlag wm_handlers_do_keymap_with_keymap_handler (bContext *C, wmEvent *event, ListBase *handlers, wmEventHandler_Keymap *handler, wmKeyMap *keymap, const bool do_debug_handler)
static eHandlerActionFlag wm_handlers_do_keymap_with_gizmo_handler (bContext *C, wmEvent *event, ListBase *handlers, wmEventHandler_Gizmo *handler, wmGizmoGroup *gzgroup, wmKeyMap *keymap, const bool do_debug_handler, bool *r_keymap_poll)
static eHandlerActionFlag wm_handlers_do_gizmo_handler (bContext *C, wmWindowManager *wm, wmEventHandler_Gizmo *handler, wmEvent *event, const bool always_pass, ListBase *handlers, const bool do_debug_handler)

Detailed Description

Handle events and notifiers from GHOST input (mouse, keyboard, tablet, NDOF).

Also some operator reports utility functions.

Definition in file wm_event_system.cc.

Macro Definition Documentation

◆ CASE_BUTTON

#define CASE_BUTTON ( ghost_button,
type )
Value:
case ghost_button: \
return type

Referenced by wm_event_type_from_ghost_button().

◆ PRINT

#define PRINT
Value:
if (do_debug_handler) \
#define printf(...)

Definition at line 3098 of file wm_event_system.cc.

Referenced by wm_handlers_do_keymap_with_gizmo_handler(), and wm_handlers_do_keymap_with_keymap_handler().

◆ USE_GIZMO_MOUSE_PRIORITY_HACK

#define USE_GIZMO_MOUSE_PRIORITY_HACK

When a gizmo is highlighted and uses click/drag events, this prevents mouse button press events from being passed through to other key-maps which would obscure those events.

This allows gizmos that only use drag to co-exist with tools that use click.

Without tools using press events which would prevent click/drag events getting to the gizmos.

This is not a fool proof solution since it's possible the gizmo operators would pass through these events when called, see: #65479.

Definition at line 107 of file wm_event_system.cc.

◆ WM_HANDLER_CONTINUE

Enumeration Type Documentation

◆ eHandlerActionFlag

Return value of handler-operator call.

Enumerator
WM_HANDLER_BREAK 
WM_HANDLER_HANDLED 
WM_HANDLER_MODAL 

WM_HANDLER_MODAL | WM_HANDLER_BREAK means unhandled.

Definition at line 117 of file wm_event_system.cc.

Function Documentation

◆ area_event_inside()

ScrArea * area_event_inside ( bContext * C,
const int xy[2] )
static

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( eHandlerActionFlag ,
WM_HANDLER_MODAL  )

References WM_HANDLER_MODAL.

◆ event_or_prev_in_rect()

bool event_or_prev_in_rect ( const wmEvent * event,
const rcti * rect )
static

◆ keymap_handler_log_action_str()

const char * keymap_handler_log_action_str ( const eHandlerActionFlag action)
static

Definition at line 3061 of file wm_event_system.cc.

References WM_HANDLER_BREAK, and WM_HANDLER_HANDLED.

Referenced by wm_handlers_do_keymap_with_keymap_handler().

◆ keymap_handler_log_kmi_event_str()

std::optional< std::string > keymap_handler_log_kmi_event_str ( const wmKeyMapItem * kmi)
static

◆ keymap_handler_log_kmi_op_str()

std::string keymap_handler_log_kmi_op_str ( bContext * C,
const wmKeyMapItem * kmi )
static

◆ note_cmp_for_queue_fn()

bool note_cmp_for_queue_fn ( const void * a,
const void * b )
static

Comparison for #wmWindowManager.notifier_queue_set

Note
This is not an exact equality function as the window is ignored.

Definition at line 340 of file wm_event_system.cc.

References wmNotifier::action, b, wmNotifier::category, wmNotifier::data, wmNotifier::reference, and wmNotifier::subtype.

Referenced by wm_event_add_notifier_intern().

◆ note_hash_for_queue_fn()

uint note_hash_for_queue_fn ( const void * ptr)
static

Hash for #wmWindowManager.notifier_queue_set, ignores window.

Definition at line 328 of file wm_event_system.cc.

References wmNotifier::action, BLI_ghashutil_ptrhash(), wmNotifier::category, wmNotifier::data, ptr, wmNotifier::reference, and wmNotifier::subtype.

Referenced by wm_event_add_notifier_intern().

◆ region_event_inside()

ARegion * region_event_inside ( bContext * C,
const int xy[2] )
static

◆ screen_temp_region_exists()

bool screen_temp_region_exists ( const ARegion * region)
static

Return true if region exists in any screen. Note that region may be freed memory so it's contents should never be read.

Definition at line 157 of file wm_event_system.cc.

References BLI_findindex(), G_MAIN, LISTBASE_FOREACH, and Main::screens.

Referenced by WM_event_remove_handlers(), and wm_handler_ui_call().

◆ ui_handler_wait_for_input()

◆ ui_handler_wait_for_input_remove()

◆ wm_action_not_handled()

bool wm_action_not_handled ( const eHandlerActionFlag action)
static

Definition at line 3056 of file wm_event_system.cc.

References WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, and WM_HANDLER_MODAL.

Referenced by wm_event_do_handlers(), and wm_handlers_do().

◆ WM_event_add()

◆ WM_event_add_dropbox_handler()

◆ WM_event_add_fileselect()

void WM_event_add_fileselect ( bContext * C,
wmOperator * op )

The idea here is to keep a handler alive on window queue, owning the operator. The file window can send event to make it execute, thus ensuring executing happens outside of lower level queues, with UI refreshed. Should also allow multi-window solutions.

Definition at line 4441 of file wm_event_system.cc.

References wmEventHandler_Op::area, BLI_assert, C, wmOperatorType::check, CLG_quiet_get(), CLOG_WARN, wmEventHandler_Op::context, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_window(), CTX_wm_window_set(), ED_fileselect_handler_area_find(), wmWindow::eventstate, EVT_FILESELECT_CANCEL, EVT_FILESELECT_EXTERNAL_CANCEL, EVT_FILESELECT_FULL_OPEN, wmEventHandler_Op::head, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH_MUTABLE, MEM_callocN(), wmWindow::modalhandlers, wmEventHandler_Op::op, PROP_DIRPATH, PROP_FILENAME, PROP_FILEPATH, PROP_STRING, wmOperator::ptr, wmEventHandler_Op::region, RNA_property_subtype(), RNA_property_type(), RNA_struct_find_property(), wmEventHandler::type, wmOperator::type, wmEventHandler_Op::win, WM_event_fileselect_event(), wm_event_find_fileselect_root_window_from_context(), wm_handler_fileselect_do(), wm_handler_op_context_get_if_valid(), wm_handler_operator_insert(), WM_HANDLER_TYPE_OP, and WM_LOG_OPERATORS.

Referenced by blender::ed::asset::asset_bundle_install_invoke(), cachefile_layer_open_invoke(), cachefile_open_invoke(), clip_filesel(), file_browse_invoke(), blender::ed::io::filesel_drop_import_invoke(), find_missing_files_invoke(), image_filesel(), blender::ed::object::multires_external_save_invoke(), blender::ed::object::object_image_add_invoke(), open_invoke(), paste_from_file_invoke(), preferences_asset_library_add_invoke(), rigidbody_world_export_invoke(), screenshot_invoke(), blender::ed::vse::sequencer_add_image_strip_invoke(), blender::ed::vse::sequencer_add_movie_strip_invoke(), blender::ed::vse::sequencer_add_sound_strip_invoke(), blender::ed::vse::sequencer_change_path_invoke(), blender::ed::vse::sequencer_export_subtitles_invoke(), text_open_invoke(), text_save_as_invoke(), blender::ed::object::volume_import_invoke(), wm_lib_relocate_invoke(), wm_link_append_invoke(), wm_open_mainfile__select_file_path_exec(), WM_operator_filesel(), wm_recover_auto_save_invoke(), wm_save_as_mainfile_invoke(), and wm_save_mainfile_invoke().

◆ wm_event_add_ghostevent()

void wm_event_add_ghostevent ( wmWindowManager * wm,
wmWindow * win,
int type,
const void * customdata,
const uint64_t event_time_ms )

Windows store their own event queues #wmWindow.event_queue (no bContext here).

Having both, event and event_state, can be highly confusing to work with, but is necessary for our current event system, so let's clear things up a bit:

  • Data added to event only will be handled immediately, but will not be copied to the next event.
  • Data added to event_state only stays, but is handled with the next event -> execution delay.
  • Data added to event and event_state stays and is handled immediately.

Always support accessing the last key press/release. This is set from win->eventstate, so it will always be a valid event type to store in the previous state.

Note that these values are intentionally not set in the win->eventstate, as copying these values only makes sense when win->eventstate->{val/type} would be written to (which only happens for some kinds of events). If this was done it could leave win->eventstate previous and current value set to the same key press/release state which doesn't make sense.

Definition at line 5905 of file wm_event_system.cc.

References ARRAY_SIZE, GHOST_TEventWheelData::axis, BLI_assert, BLI_assert_unreachable, BLI_str_utf8_from_unicode(), BLI_str_utf8_size_or_error(), GHOST_TEventButtonData::button, CLOG_ERROR, CLOG_INFO, CLOG_WARN, copy_v2_v2_int(), GHOST_TEventTrackpadData::deltaX, GHOST_TEventTrackpadData::deltaY, e, EVENT_NONE, wmWindow::eventstate, wmWindow::eventstate_prev_press_time_ms, EVT_ESCKEY, EVT_HYPER, EVT_LEFTALTKEY, EVT_LEFTCTRLKEY, EVT_LEFTSHIFTKEY, EVT_OSKEY, EVT_RIGHTALTKEY, EVT_RIGHTCTRLKEY, EVT_RIGHTSHIFTKEY, EVT_UNKNOWNKEY, wmEvent::flag, G, G_FLAG_EVENT_SIMULATE, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventCursorMove, GHOST_kEventImeComposition, GHOST_kEventImeCompositionEnd, GHOST_kEventImeCompositionStart, GHOST_kEventKeyDown, GHOST_kEventKeyUp, GHOST_kEventTrackpad, GHOST_kEventUnknown, GHOST_kEventWheel, GHOST_kEventWheelAxisVertical, GHOST_kEventWindowDeactivate, GHOST_kNumEventTypes, GHOST_kTrackpadEventMagnify, GHOST_kTrackpadEventRotate, GHOST_kTrackpadEventScroll, GHOST_kTrackpadEventSmartMagnify, i, wmTabletData::is_motion_absolute, GHOST_TEventKeyData::is_repeat, GHOST_TEventTrackpadData::isDirectionInverted, ISKEYBOARD_OR_BUTTON, GHOST_TEventKeyData::key, wmEvent::keymodifier, KM_ALT, KM_CTRL, KM_HYPER, KM_NOTHING, KM_OSKEY, KM_PRESS, KM_RELEASE, KM_SHIFT, MIDDLEMOUSE, wmEvent::modifier, MOUSEMOVE, MOUSEPAN, MOUSEROTATE, MOUSESMARTZOOM, MOUSEZOOM, NDOF_MOTION, wmEvent::prev_type, wmEvent::prev_val, wmWindow::runtime, wmWindowManager::runtime, SET_FLAG_FROM_TEST, GHOST_TEventTrackpadData::subtype, GHOST_TEventButtonData::tablet, GHOST_TEventCursorData::tablet, wmEvent::tablet, wmTabletData::tilt, wmEvent::type, U, UNLIKELY, USER_TRACKPAD_SCROLL_DIR_NATURAL, USER_TRACKPAD_SCROLL_DIR_TRADITIONAL, GHOST_TEventKeyData::utf8_buf, wmEvent::utf8_buf, wmEvent::val, GHOST_TEventWheelData::value, WHEELDOWNMOUSE, WHEELLEFTMOUSE, WHEELRIGHTMOUSE, WHEELUPMOUSE, WINDEACTIVATE, WM_capabilities_flag(), WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION, wm_cursor_position_from_ghost_screen_coords(), wm_event_add_intern(), wm_event_add_mousemove(), wm_event_add_trackpad(), wm_event_cursor_other_windows(), wm_event_is_ignorable_key_press(), WM_EVENT_IS_REPEAT, WM_event_print(), WM_EVENT_SCROLL_INVERT, wm_event_state_update_and_click_set(), wm_event_type_from_ghost_button(), wm_event_type_from_ghost_key(), wm_eventemulation(), WM_IME_COMPOSITE_END, WM_IME_COMPOSITE_EVENT, WM_IME_COMPOSITE_START, WM_LOG_EVENTS, wm_stereo3d_mouse_offset_apply(), wm_tablet_data_from_ghost(), GHOST_TEventCursorData::x, GHOST_TEventTrackpadData::x, and wmEvent::xy.

Referenced by ghost_event_proc(), wm_window_update_eventstate_modifiers(), and wm_window_update_eventstate_modifiers_clear().

◆ wm_event_add_intern()

◆ WM_event_add_keymap_handler()

◆ WM_event_add_keymap_handler_dynamic()

◆ WM_event_add_keymap_handler_poll()

◆ WM_event_add_keymap_handler_priority()

wmEventHandler_Keymap * WM_event_add_keymap_handler_priority ( ListBase * handlers,
wmKeyMap * keymap,
int priority )
Note
Priorities not implemented yet, for time being just insert in begin of list.

Definition at line 4926 of file wm_event_system.cc.

References BLI_addhead(), wmEventHandler_Keymap::head, wmEventHandler_Keymap::keymap, MEM_callocN(), wmEventHandler::type, WM_event_remove_keymap_handler(), and WM_HANDLER_TYPE_KEYMAP.

Referenced by UI_popover_end().

◆ WM_event_add_keymap_handler_v2d_mask()

◆ WM_event_add_modal_handler()

wmEventHandler_Op * WM_event_add_modal_handler ( bContext * C,
wmOperator * op )

Definition at line 4670 of file wm_event_system.cc.

References C, CTX_wm_area(), CTX_wm_region(), CTX_wm_window(), and WM_event_add_modal_handler_ex().

Referenced by actionzone_invoke(), add_marker_at_click_invoke(), animchannels_select_filter_invoke(), annotation_draw_invoke(), area_join_invoke(), area_move_invoke(), area_split_invoke(), area_swap_invoke(), blender::ed::object::bake_invoke(), blender::ui::bonedropper_invoke(), brush_edit_invoke(), change_frame_invoke(), change_frame_invoke(), change_frame_invoke(), clip_prefetch_invoke(), console_select_set_invoke(), curve_draw_invoke(), curve_pen_invoke(), blender::ed::curves::curves_draw_invoke(), datadropper_invoke(), depthdropper_invoke(), driverdropper_invoke(), blender::ed::sculpt_paint::dyntopo::dyntopo_detail_size_edit_invoke(), ED_imbuf_sample_invoke(), ed_marker_move_invoke(), edbm_bevel_invoke(), edbm_inset_invoke(), edbm_point_normals_invoke(), blender::ui::eyedropper_colorband_invoke(), blender::ui::greasepencil::eyedropper_grease_pencil_invoke(), eyedropper_invoke(), fluid_bake_invoke(), fly_invoke(), font_selection_set_invoke(), gizmo_tweak_invoke(), grab_clone_invoke(), graph_slider_invoke(), graphview_cursor_invoke(), blender::ed::sculpt_paint::grease_pencil_brush_stroke_invoke(), blender::ed::sculpt_paint::grease_pencil_fill_invoke(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_invoke(), blender::ed::greasepencil::grease_pencil_primitive_invoke(), blender::ed::sculpt_paint::grease_pencil_sculpt_paint_invoke(), blender::ed::sculpt_paint::grease_pencil_vertex_brush_stroke_invoke(), blender::ed::sculpt_paint::grease_pencil_weight_brush_stroke_invoke(), image_view_pan_init(), image_view_zoom_init(), blender::ed::curves::pen_tool::PenToolOperation::invoke(), knifetool_invoke(), lightprobe_cache_bake_invoke(), lineart_bake_common(), loopcut_init(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_invoke(), minimize_stretch_invoke(), blender::ed::object::multiresbake_image_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_add_import_node_exec(), blender::ed::space_node::node_insert_offset_invoke(), blender::ed::space_node::node_link_invoke(), blender::ed::space_node::node_resize_init(), blender::ed::object::object_transform_axis_target_invoke(), op_generic_value_invoke(), blender::ed::outliner::outliner_item_openclose_invoke(), blender::ed::sculpt_paint::image::ops::paint::paint_invoke(), paintcurve_slide_invoke(), pose_slide_invoke_common(), poselib_blend_invoke(), ptcache_bake_invoke(), radial_control_invoke(), region_scale_invoke(), blender::ed::spreadsheet::reorder_columns_invoke(), blender::ed::spreadsheet::resize_column_invoke(), sample_color_invoke(), blender::ed::space_node::sample_invoke(), screen_opengl_render_invoke(), screen_render_invoke(), blender::ed::asset::screenshot_preview_invoke(), scroller_activate_invoke(), blender::ed::sculpt_paint::sculpt_brush_stroke_invoke(), blender::ed::sculpt_paint::cloth::sculpt_cloth_filter_invoke(), blender::ed::sculpt_paint::color::sculpt_color_filter_invoke(), blender::ed::sculpt_paint::sculpt_curves_stroke_invoke(), blender::ed::sculpt_paint::expand::sculpt_expand_invoke(), blender::ed::sculpt_paint::filter::sculpt_mesh_filter_invoke(), blender::ed::sculpt_paint::dyntopo::sculpt_sample_detail_size_invoke(), blender::ed::sculpt_paint::select_grow::select_grow_invoke(), blender::ed::vse::sequencer_slip_invoke(), blender::ed::vse::sequencer_text_cursor_set_invoke(), blender::ed::object::bake_simulation::simulate_to_frame_invoke(), slide_marker_invoke(), slide_plane_marker_invoke(), slide_point_invoke(), slide_spline_curvature_invoke(), blender::ed::space_node::snode_bg_viewmove_invoke(), solve_camera_invoke(), blender::ed::object::bake_simulation::start_bake_job(), stencil_control_invoke(), stitch_invoke(), text_autocomplete_invoke(), text_scroll_bar_invoke(), text_scroll_invoke(), text_selection_set_invoke(), track_markers(), blender::ed::transform::transform_invoke(), uv_sculpt_stroke_invoke(), view3d_interactive_add_invoke(), view3d_navigate_invoke_impl(), view_edge_pan_invoke(), view_pan_init(), view_pan_invoke(), view_zoom_init(), view_zoomdrag_invoke(), viewdolly_invoke(), viewroll_invoke(), blender::ed::object::voxel_size_edit_invoke(), vpaint_invoke(), walk_invoke(), WM_generic_select_modal(), WM_gesture_box_invoke(), WM_gesture_circle_invoke(), WM_gesture_lasso_invoke(), WM_gesture_lines_invoke(), WM_gesture_polyline_invoke(), WM_gesture_straightline_invoke(), wm_xr_navigation_fly_invoke(), wm_xr_navigation_grab_invoke(), wm_xr_navigation_swap_hands_invoke(), wm_xr_navigation_teleport_invoke(), and wpaint_invoke().

◆ WM_event_add_modal_handler_ex()

◆ WM_event_add_mousemove()

◆ wm_event_add_mousemove()

◆ wm_event_add_mousemove_to_head()

◆ WM_event_add_notifier()

void WM_event_add_notifier ( const bContext * C,
uint type,
void * reference )

Definition at line 397 of file wm_event_system.cc.

References C, CTX_wm_manager(), CTX_wm_window(), and WM_event_add_notifier_ex().

Referenced by achannel_setting_flush_widget_cb(), achannel_setting_slider_cb(), achannel_setting_slider_nla_curve_cb(), achannel_setting_widget_cb(), act_markers_make_local_exec(), action_circle_select_exec(), action_new_exec(), action_pushdown_exec(), action_stash_create_exec(), action_stash_exec(), actkeys_bake_exec(), actkeys_box_select_exec(), actkeys_clean_exec(), actkeys_clickselect_exec(), actkeys_columnselect_exec(), actkeys_delete_exec(), actkeys_deselectall_exec(), actkeys_duplicate_exec(), actkeys_easing_exec(), actkeys_expo_exec(), actkeys_framejump_exec(), actkeys_handletype_exec(), actkeys_insertkey_exec(), actkeys_ipo_exec(), actkeys_keytype_exec(), actkeys_lassoselect_exec(), actkeys_mirror_exec(), actkeys_paste_exec(), actkeys_previewrange_exec(), actkeys_select_leftright_exec(), actkeys_select_less_exec(), actkeys_select_linked_exec(), actkeys_select_more_exec(), actkeys_snap_exec(), add_default_keyingset_exec(), add_driver_button_invoke(), add_driver_button_none(), add_feather_vertex_exec(), add_keyingset_button_exec(), add_marker_at_click_modal(), add_marker_exec(), blender::ed::space_node::add_node_group_asset(), add_or_move_to_collection_exec(), add_simple_uvs_exec(), blender::ed::object::add_type_with_obdata(), add_vertex_exec(), add_vertex_extrude(), add_vertex_handle_cyclic_at_point(), add_vertex_new(), add_vertex_subdivide(), ANIM_channel_draw_widgets(), anim_set_efra_exec(), anim_set_sfra_exec(), animchannels_box_select_exec(), animchannels_channel_select_keys_invoke(), animchannels_clean_empty_exec(), animchannels_collapse_exec(), animchannels_delete_exec(), animchannels_enable_exec(), animchannels_expand_exec(), animchannels_group_exec(), animchannels_mouseclick_invoke(), animchannels_rearrange_exec(), animchannels_rename_invoke(), animchannels_select_filter_modal(), animchannels_selectall_exec(), animchannels_setflag_exec(), animchannels_ungroup_exec(), annotation_draw_exec(), annotation_draw_invoke(), annotation_draw_modal(), apply_armature_pose2bones_exec(), blender::ed::object::apply_objects_internal(), apply_to_active_object(), area_close_exec(), area_docking_apply(), area_dupli_invoke(), area_join_cancel(), area_join_exec(), area_join_invoke(), area_join_modal(), area_move_apply_do(), area_split_apply(), area_split_exit(), area_swap_modal(), armature_align_bones_exec(), armature_autoside_names_exec(), armature_bone_primitive_add_exec(), armature_calc_roll_exec(), armature_click_extrude_exec(), armature_de_select_all_exec(), armature_de_select_less_exec(), armature_de_select_more_exec(), armature_delete_selected_exec(), armature_dissolve_selected_exec(), armature_duplicate_selected_exec(), armature_extrude_exec(), armature_fill_bones_exec(), armature_flip_names_exec(), armature_hide_exec(), armature_parent_clear_exec(), armature_parent_set_exec(), armature_reveal_exec(), armature_roll_clear_exec(), armature_select_hierarchy_exec(), armature_select_mirror_exec(), armature_shortest_path_pick_invoke(), armature_split_exec(), armature_subdivide_exec(), armature_switch_direction_exec(), armature_symmetrize_exec(), armature_undosys_step_decode(), blender::ed::asset::asset_catalog_redo_exec(), blender::ed::asset::asset_catalog_undo_exec(), blender::ed::asset::asset_library_refresh_exec(), blender::animrig::autokeyframe_property(), average_islands_scale_exec(), average_tracks_exec(), blender::ed::object::bake_image_exec(), blender::ed::object::bake_invoke(), blend_offset_exec(), blend_offset_modal_update(), blend_to_default_exec(), blend_to_default_modal_update(), blend_to_ease_exec(), blend_to_ease_modal_update(), blend_to_neighbor_exec(), blend_to_neighbor_modal_update(), bone_collection_add_exec(), bone_collection_assign_editbones(), bone_collection_assign_named_mode_specific(), bone_collection_assign_pchans(), bone_collection_move_exec(), bone_collection_remove_exec(), bone_collection_select(), bone_select_menu_exec(), bookmark_select_exec(), box_select_exec(), box_select_exec(), box_select_graph_exec(), breakdown_exec(), breakdown_modal_update(), brush_colors_flip_exec(), brush_edit_apply(), btw_smooth_exec(), btw_smooth_modal_update(), camera_background_image_add_exec(), camera_background_image_remove_exec(), change_frame_apply(), change_frame_apply(), change_frame_apply(), change_frame_cancel(), change_frame_modal(), channels_bake_exec(), blender::ed::object::childof_clear_inverse_exec(), blender::ed::object::childof_set_inverse_exec(), circle_select_exec(), circle_select_exec(), clean_tracks_exec(), clear_edited_exec(), clear_key_button_exec(), blender::ed::object::clear_override_library_exec(), clear_render_border_exec(), clear_render_border_exec(), clear_solution_exec(), clear_tilt_exec(), clear_track_path_exec(), blender::ed::space_node::clear_viewer_border_exec(), click_select_channel_gplayer(), click_select_channel_grease_pencil_layer(), click_select_channel_grease_pencil_layer_group(), clip_delete_marker(), clip_delete_track(), clip_set_2d_cursor_exec(), clip_set_scene_frames_exec(), blender::ed::object::collection_add_exec(), blender::ed::object::collection_create_exec(), blender::ed::outliner::collection_drop_invoke(), blender::ed::object::collection_exporter_add_exec(), blender::ed::object::collection_exporter_remove_exec(), blender::ed::object::collection_link_exec(), blender::ed::object::collection_objects_remove_all_exec(), blender::ed::object::collection_objects_remove_exec(), blender::ed::object::collection_remove_exec(), blender::ed::object::collection_unlink_exec(), connect_hair_exec(), blender::ed::object::constraint_add_exec(), blender::ed::object::constraint_apply_exec(), blender::ed::object::constraint_copy_exec(), blender::ed::object::constraint_copy_to_selected_exec(), blender::ed::object::constraint_delete_exec(), blender::ed::outliner::constraint_fn(), blender::ed::object::constraint_move_down_exec(), blender::ed::object::constraint_move_up_exec(), copy_driver_to_selected_button_exec(), copy_particle_dupliob_exec(), blender::ed::object::correctivesmooth_bind_exec(), blender::ed::transform::create_orientation_exec(), create_plane_track_tracks_exec(), create_primitive_from_points(), cube_project_exec(), curve_decimate_exec(), curve_delete_exec(), curve_dissolve_exec(), curve_draw_exec(), curve_extrude_exec(), curve_normals_make_consistent_exec(), curve_pen_modal(), curve_select_less_exec(), curve_select_more_exec(), curve_select_random_exec(), curve_select_similar_exec(), curve_smooth_radius_exec(), curve_smooth_tilt_exec(), curve_smooth_weight_exec(), curve_split_exec(), curve_undosys_step_decode(), blender::ed::curves::curves_draw_exec(), blender::ed::sculpt_paint::curves_sculptmode_enter(), blender::ed::sculpt_paint::curves_sculptmode_toggle_exec(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), curvesurf_prim_add(), cyclic_toggle_exec(), cylinder_project_exec(), blender::ed::object::dash_modifier_segment_add_exec(), blender::ed::object::dash_modifier_segment_move_exec(), blender::ed::object::dash_modifier_segment_remove_exec(), blender::ed::object::data_transfer_exec(), blender::ed::object::datalayout_transfer_exec(), de_select_all_exec(), de_select_first_exec(), de_select_last_exec(), decimate_exec(), decimate_modal_update(), blender::ed::object::bake_simulation::delete_baked_simulation_exec(), blender::ed::curves::curves_delete::delete_exec(), blender::ed::pointcloud::pointcloud_delete::delete_exec(), delete_exec(), delete_exec(), delete_fmodifier_cb(), blender::ed::object::shapekey::ShapeKeyItem::delete_item(), blender::ui::greasepencil::LayerGroupViewItem::delete_item(), blender::ui::greasepencil::LayerViewItem::delete_item(), delete_key_button_exec(), delete_key_using_keying_set(), delete_metaelems_exec(), blender::ed::transform::delete_orientation_exec(), delete_track_exec(), detect_features_exec(), disable_markers_exec(), disconnect_hair_exec(), do_graph_region_driver_buttons(), do_graph_region_modifier_buttons(), do_lasso_select_marker(), do_lasso_select_mask(), blender::ed::space_node::do_lasso_select_node(), do_nla_region_buttons(), blender::ed::outliner::do_outliner_item_editmode_toggle(), blender::ed::outliner::do_outliner_item_posemode_toggle(), do_pose_box_select(), do_preview_buttons(), do_set_scale(), do_uvedit_vertex(), do_view3d_region_buttons(), do_view3d_vgroup_buttons(), dopesheet_select_channel_exec(), blender::ed::vse::draw_channel_labels(), driverdropper_sample(), blender::ed::object::drop_geometry_nodes_invoke(), blender::ed::object::drop_named_material_invoke(), drop_scene_asset_exec(), drop_world_exec(), blender::ed::space_node::duplicate_compositing_node_group_exec(), blender::ed::curves::curves_duplicate::duplicate_exec(), blender::ed::object::duplicate_exec(), blender::ed::pointcloud::duplicate_exec(), duplicate_exec(), duplicate_metaelems_exec(), dupliob_move_down_exec(), dupliob_move_up_exec(), dupliob_refresh_exec(), ease_exec(), ease_modal_update(), ED_area_newspace(), ED_area_prevspace(), ED_armature_edit_select_pick_bone(), ED_armature_join_objects_exec(), ED_curve_editfont_select_pick(), ED_curve_editnurb_select_pick(), ED_curve_join_objects_exec(), ed_curves_select_pick(), ED_grease_pencil_join_objects_exec(), ED_lattice_select_pick(), ed_marker_add_exec(), ed_marker_box_select_exec(), ed_marker_camera_bind_exec(), ed_marker_delete_exec(), ed_marker_move_apply(), ed_marker_move_modal(), ed_marker_rename_exec(), ed_marker_select(), ed_marker_select_all_exec(), ed_marker_select_leftright_exec(), ED_mask_deselect_all(), ED_mball_select_pick(), ED_mesh_uv_loop_reset(), ED_object_posemode_enter(), ED_object_posemode_exit(), ed_object_select_pick(), ed_object_select_pick_camera_track(), ED_outliner_select_sync_from_outliner(), ED_scene_add(), ED_scene_delete(), ED_screen_animation_timer(), ED_space_clip_set_clip(), ED_space_clip_set_mask(), ED_space_image_set_mask(), ED_text_activate_in_screen(), ed_undo_step_post(), ED_view3d_cursor3d_update(), ED_wpaint_ensure_data(), edbm_delete_exec(), edbm_dupli_extrude_cursor_invoke(), edbm_faces_select_interior_exec(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), edbm_region_to_loop_exec(), edbm_select_all_exec(), edbm_select_axis_exec(), edbm_select_by_attribute_exec(), edbm_select_by_pole_count_exec(), edbm_select_face_by_sides_exec(), edbm_select_less_exec(), edbm_select_linked_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_linked_pick_exec(), edbm_select_linked_pick_invoke(), edbm_select_loose_exec(), edbm_select_mirror_exec(), edbm_select_more_exec(), edbm_select_non_manifold_exec(), EDBM_select_pick(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_similar_region_exec(), edbm_select_ungrouped_exec(), EDBM_selectmode_to_scene(), EDBM_selectmode_toggle_multi(), edbm_separate_exec(), edcu_shortest_path_pick_invoke(), blender::ed::sculpt_paint::face_set::edit_modify_geometry(), blender::ed::curves::add_bezier::exec(), blender::ed::curves::add_circle::exec(), blender::ed::curves::clear_tilt::exec(), blender::ed::curves::curve_type_set::exec(), blender::ed::curves::cyclic_toggle::exec(), blender::ed::curves::set_handle_type::exec(), blender::ed::curves::subdivide::exec(), blender::ed::curves::switch_direction::exec(), blender::ed::object::explode_refresh_exec(), file_box_select_exec(), file_box_select_modal(), file_column_sort_ui_context_invoke(), file_delete_exec(), file_directory_enter_handle(), file_directory_new_exec(), file_filename_enter_handle(), file_hidedot_exec(), file_next_exec(), file_parent_exec(), file_previous_exec(), file_refresh_exec(), file_select_exec(), file_walk_select_invoke(), filelist_readjob_start_ex(), filepath_drop_exec(), fly_modal(), fmodifier_reorder(), blender::ed::object::followpath_path_animate_exec(), font_cursor_set_apply(), font_undosys_step_decode(), blender::ed::object::forcefield_toggle_exec(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::foreach_editable_drawing(), blender::ed::sculpt_paint::greasepencil::GreasePencilStrokeOperationCommon::foreach_editable_drawing(), blender::ed::greasepencil::frame_clean_duplicate_exec(), frame_jump_delta_exec(), frame_jump_exec(), frame_jump_exec(), frame_offset_exec(), gaussian_smooth_exec(), gaussian_smooth_modal_update(), geometry_extract_apply(), blender::ed::object::geometry_node_tree_copy_assign_exec(), blender::ed::object::geometry_nodes_input_attribute_toggle_exec(), blender::ed::geometry::geometry_randomization_exec(), gizmo_ruler_exit(), gpencil_actframe_delete_exec(), gpencil_data_add_exec(), gpencil_data_unlink_exec(), gpencil_layer_add_exec(), gpencil_layer_move_exec(), gpencil_layer_remove_exec(), blender::ed::greasepencil::gpencil_stroke_subdivide_exec(), graph_circle_select_exec(), graph_disable_markers_exec(), graph_driver_delete_invalid_exec(), graph_driver_vars_paste_exec(), graph_fmodifier_add_exec(), graph_fmodifier_paste_exec(), graph_select_all_markers_exec(), graph_slider_modal(), graphkeys_bake_exec(), graphkeys_box_select_exec(), graphkeys_clean_exec(), graphkeys_click_insert_exec(), graphkeys_clickselect_exec(), graphkeys_columnselect_exec(), graphkeys_delete_exec(), graphkeys_deselectall_exec(), graphkeys_duplicate_exec(), graphkeys_easing_exec(), graphkeys_equalize_handles_exec(), graphkeys_euler_filter_exec(), graphkeys_expo_exec(), graphkeys_framejump_exec(), graphkeys_handletype_exec(), graphkeys_insertkey_exec(), graphkeys_ipo_exec(), graphkeys_keys_to_samples_exec(), graphkeys_lassoselect_exec(), graphkeys_mirror_exec(), graphkeys_paste_exec(), graphkeys_previewrange_exec(), graphkeys_samples_to_keys_exec(), graphkeys_select_key_handles_exec(), graphkeys_select_leftright_exec(), graphkeys_select_less_exec(), graphkeys_select_linked_exec(), graphkeys_select_more_exec(), graphkeys_smooth_exec(), graphkeys_snap_exec(), graphview_cursor_apply(), graphview_cursor_modal(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), blender::ed::greasepencil::grease_pencil_active_frame_delete_exec(), blender::ed::greasepencil::grease_pencil_caps_set_exec(), blender::ed::greasepencil::grease_pencil_clean_loose_exec(), blender::ed::greasepencil::grease_pencil_convert_curve_type_exec(), blender::ed::greasepencil::grease_pencil_cyclical_set_exec(), blender::ed::greasepencil::grease_pencil_delete_breakdown_frames_exec(), blender::ed::greasepencil::grease_pencil_delete_exec(), blender::ed::greasepencil::grease_pencil_delete_frame_exec(), blender::ed::greasepencil::grease_pencil_dissolve_exec(), blender::ed::greasepencil::grease_pencil_draw_operator_invoke(), blender::ed::greasepencil::grease_pencil_duplicate_exec(), blender::ed::greasepencil::grease_pencil_extrude_exec(), blender::ed::sculpt_paint::grease_pencil_fill_event_modal_map(), blender::ed::sculpt_paint::grease_pencil_fill_exit(), blender::ed::sculpt_paint::grease_pencil_fill_invoke(), blender::ed::sculpt_paint::grease_pencil_fill_modal(), blender::ed::greasepencil::grease_pencil_frame_duplicate_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_invoke(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_restore(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_sequence_exec(), blender::ed::sculpt_paint::greasepencil::grease_pencil_interpolate_update(), blender::ed::greasepencil::grease_pencil_layer_active_exec(), blender::ed::greasepencil::grease_pencil_layer_add_exec(), blender::ed::greasepencil::grease_pencil_layer_duplicate_exec(), blender::ed::greasepencil::grease_pencil_layer_duplicate_object_exec(), blender::ed::greasepencil::grease_pencil_layer_group_add_exec(), blender::ed::greasepencil::grease_pencil_layer_group_color_tag_exec(), blender::ed::greasepencil::grease_pencil_layer_group_remove_exec(), blender::ed::greasepencil::grease_pencil_layer_hide_exec(), blender::ed::greasepencil::grease_pencil_layer_isolate_exec(), blender::ed::greasepencil::grease_pencil_layer_lock_all_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_add_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_remove_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_reorder_exec(), blender::ed::greasepencil::grease_pencil_layer_move_exec(), blender::ed::greasepencil::grease_pencil_layer_remove_exec(), blender::ed::greasepencil::grease_pencil_layer_reveal_exec(), blender::ed::greasepencil::grease_pencil_material_copy_to_object_exec(), blender::ed::greasepencil::grease_pencil_material_hide_exec(), blender::ed::greasepencil::grease_pencil_material_lock_all_exec(), blender::ed::greasepencil::grease_pencil_material_lock_unselected_exec(), blender::ed::greasepencil::grease_pencil_material_lock_unused_exec(), blender::ed::greasepencil::grease_pencil_material_reveal_exec(), blender::ed::greasepencil::grease_pencil_material_select_exec(), blender::ed::greasepencil::grease_pencil_material_unlock_all_exec(), blender::ed::greasepencil::grease_pencil_merge_layer_exec(), blender::ed::greasepencil::grease_pencil_move_to_layer_exec(), blender::ed::greasepencil::grease_pencil_outline_exec(), blender::ed::greasepencil::grease_pencil_paste_strokes_exec(), blender::ed::greasepencil::grease_pencil_primitive_update_view(), blender::ed::greasepencil::grease_pencil_remove_fill_guides_exec(), blender::ed::greasepencil::grease_pencil_reproject_exec(), blender::ed::greasepencil::grease_pencil_reset_uvs_exec(), blender::ed::sculpt_paint::grease_pencil_sculpt_paint_invoke(), blender::ed::greasepencil::grease_pencil_separate_exec(), blender::ed::greasepencil::grease_pencil_separate_layer(), blender::ed::greasepencil::grease_pencil_separate_material(), blender::ed::greasepencil::grease_pencil_separate_selected(), blender::ed::greasepencil::grease_pencil_set_active_material_exec(), blender::ed::greasepencil::grease_pencil_set_corner_type_exec(), blender::ed::greasepencil::grease_pencil_set_curve_resolution_exec(), blender::ed::greasepencil::grease_pencil_set_curve_type_exec(), blender::ed::greasepencil::grease_pencil_set_handle_type_exec(), blender::ed::greasepencil::grease_pencil_set_material_exec(), blender::ed::greasepencil::grease_pencil_set_start_point_exec(), blender::ed::greasepencil::grease_pencil_set_uniform_opacity_exec(), blender::ed::greasepencil::grease_pencil_set_uniform_thickness_exec(), blender::ed::greasepencil::grease_pencil_snap_cursor_to_sel_exec(), blender::ed::greasepencil::grease_pencil_snap_to_cursor_exec(), blender::ed::greasepencil::grease_pencil_snap_to_grid_exec(), blender::ed::greasepencil::grease_pencil_stroke_material_set_exec(), blender::ed::greasepencil::grease_pencil_stroke_merge_by_distance_exec(), blender::ed::greasepencil::grease_pencil_stroke_reorder_exec(), blender::ed::greasepencil::grease_pencil_stroke_simplify_exec(), blender::ed::greasepencil::grease_pencil_stroke_smooth_exec(), blender::ed::greasepencil::grease_pencil_stroke_split_exec(), blender::ed::greasepencil::grease_pencil_stroke_switch_direction_exec(), blender::ed::greasepencil::grease_pencil_texture_gradient_exec(), blender::ed::sculpt_paint::grease_pencil_update_extend(), blender::ed::sculpt_paint::grease_pencil_vertex_brush_stroke_invoke(), blender::ed::greasepencil::grease_pencil_vertex_paint_brightness_contrast_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_hsv_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_invert_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_levels_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_reset_exec(), blender::ed::greasepencil::grease_pencil_vertex_paint_set_exec(), blender::ed::greasepencil::grease_pencil_weight_invert_exec(), header_toggle_menus_exec(), hide_exec(), hide_exec(), hide_metaelems_exec(), hide_tracks_clear_exec(), hide_tracks_exec(), blender::ed::outliner::id_delete_tag(), blender::ed::outliner::id_override_library_resync_hierarchy_process(), image_add_render_slot_exec(), image_clear_render_slot_exec(), image_clipboard_paste_exec(), image_cycle_render_slot_exec(), image_flip_exec(), image_invert_exec(), image_multi_cb(), image_multiview_cb(), image_new_exec(), image_open_exec(), image_pack_exec(), image_read_viewlayers_exec(), image_reload_exec(), image_remove_render_slot_exec(), image_replace_exec(), image_rotate_orthogonal_exec(), image_sample_apply(), image_scale_exec(), image_unpack_exec(), blender::ed::greasepencil::GreasePencilPenToolOperation::initialize(), blender::ed::greasepencil::insert_blank_frame_exec(), insert_key(), insert_key_button_exec(), insert_key_with_keyingset(), blender::ed::curves::join_objects_exec(), blender::ed::mesh::join_objects_exec(), blender::ed::pointcloud::join_objects_exec(), join_tracks_exec(), blender::ed::object::jump_to_object(), keyframe_jump_exec(), keyframe_set_flag(), keyingset_active_menu_exec(), blender::ed::object::laplaciandeform_bind_exec(), lattice_flip_exec(), lattice_select_all_exec(), lattice_select_mirror_exec(), lattice_select_more_less(), lattice_select_random_exec(), lattice_select_ungrouped_exec(), lattice_undosys_step_decode(), lib_id_generate_preview_exec(), lib_id_generate_preview_from_object_exec(), lib_id_load_custom_preview_exec(), lib_id_override_editable_toggle_exec(), lib_id_remove_preview_exec(), blender::ed::object::light_linking_link_exec(), blender::ed::object::light_linking_select_exec(), blender::ed::object::light_linking_unlink_from_collection_exec(), lightprobe_cache_free_exec(), blender::ed::object::limitdistance_reset_exec(), lineart_bake_startjob(), lineart_gpencil_clear_strokes_exec(), localview_exec(), localview_remove_from_exec(), lock_selection_toggle_exec(), lock_tracks_exec(), blender::ed::object::make_links_data_exec(), blender::ed::object::make_links_scene_exec(), blender::ed::object::make_local_exec(), blender::ed::object::make_override_library_exec(), make_prim_finish(), make_regular_exec(), make_segment_exec(), blender::ed::object::make_single_user_exec(), marker_block_handler(), marker_jump_exec(), marker_update_cb(), mask_duplicate_exec(), mask_feather_weight_clear_exec(), mask_hide_view_clear_exec(), mask_hide_view_set_exec(), mask_layer_move_exec(), mask_layer_new_exec(), mask_layer_remove_exec(), mask_new_exec(), mask_normals_make_consistent_exec(), mask_parent_clear_exec(), mask_parent_set_exec(), mask_select_linked_exec(), mask_select_linked_pick_invoke(), mask_select_more_less(), mask_shape_key_clear_exec(), mask_shape_key_feather_reset_exec(), mask_shape_key_insert_exec(), mask_shape_key_rekey_exec(), mask_switch_direction_exec(), match_slope_exec(), match_slope_modal_update(), match_texture_space_exec(), blender::ed::outliner::material_drop_invoke(), blender::ed::greasepencil::material_isolate_exec(), material_slot_add_exec(), material_slot_assign_exec(), material_slot_copy_exec(), material_slot_de_select(), material_slot_move_exec(), material_slot_remove_all_exec(), material_slot_remove_exec(), material_slot_remove_unused_exec(), mball_select_all_exec(), mball_select_similar_exec(), mball_undosys_step_decode(), memfile_undosys_step_decode(), mesh_customdata_clear_exec__internal(), mesh_customdata_custom_splitnormals_add_exec(), mesh_customdata_custom_splitnormals_clear_exec(), mesh_customdata_skin_add_exec(), mesh_reorder_vertices_spatial_exec(), mesh_undosys_step_decode(), mesh_uv_texture_add_exec(), mesh_uv_texture_remove_exec(), blender::ed::object::meshdeform_bind_exec(), minimize_stretch_exit(), minimize_stretch_iteration(), mirror_exec(), mode_set_exec(), blender::ed::object::modifier_add_asset_exec(), blender::ed::object::modifier_add_exec(), blender::ed::object::modifier_apply_exec_ex(), blender::ed::object::modifier_convert_exec(), blender::ed::object::modifier_copy_exec(), blender::ed::object::modifier_copy_to_selected_exec(), blender::ed::outliner::modifier_fn(), blender::ed::object::modifier_link(), blender::ed::object::modifier_move_down_exec(), blender::ed::vse::modifier_move_to_index_exec(), blender::ed::object::modifier_move_up_exec(), blender::ed::object::modifier_remove_exec(), blender::ed::object::modifier_set_active_exec(), mouse_mesh_loop(), mouse_select(), move_lines_exec(), blender::ed::object::move_to_collection_exec(), blender::ed::object::multires_base_apply_exec(), blender::ed::object::multires_higher_levels_delete_exec(), blender::ed::object::multires_rebuild_subdiv_exec(), blender::ed::object::multires_reshape_exec(), blender::ed::object::multires_subdivide_exec(), blender::ed::object::multires_unsubdivide_exec(), blender::ed::outliner::namebutton_fn(), blender::ed::space_node::new_compositing_node_group_exec(), blender::ed::space_node::new_compositor_sequencer_node_group_exec(), new_image_from_plane_marker_exec(), new_material_exec(), blender::ed::space_node::new_node_tree_exec(), new_particle_settings_exec(), new_particle_target_exec(), new_sequencer_scene_exec(), new_texture_exec(), new_world_exec(), nla_fmodifier_add_exec(), nla_fmodifier_paste_exec(), nlaedit_add_actionclip_exec(), nlaedit_add_meta_exec(), nlaedit_add_sound_exec(), nlaedit_add_tracks_exec(), nlaedit_add_transition_exec(), nlaedit_apply_scale_exec(), nlaedit_box_select_exec(), nlaedit_clear_scale_exec(), nlaedit_clickselect_exec(), nlaedit_delete_exec(), nlaedit_delete_tracks_exec(), nlaedit_deselectall_exec(), nlaedit_duplicate_exec(), nlaedit_enable_tweakmode_exec(), nlaedit_make_single_user_exec(), nlaedit_move_down_exec(), nlaedit_move_up_exec(), nlaedit_objects_add_exec(), nlaedit_previewrange_exec(), nlaedit_remove_meta_exec(), nlaedit_select_leftright_exec(), nlaedit_snap_exec(), nlaedit_split_exec(), nlaedit_swap_exec(), nlaedit_sync_actlen_exec(), nlaedit_toggle_mute_exec(), nlatracks_mouseclick_invoke(), nlatracks_pushdown_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_attach_invoke(), blender::ed::space_node::node_box_select_exec(), blender::ed::space_node::node_circleselect_exec(), blender::ed::space_node::node_collapse_toggle_exec(), blender::ed::space_node::node_copy_color_exec(), blender::ed::space_node::node_default_group_width_set_exec(), blender::ed::space_node::node_delete_reconnect_exec(), blender::ed::space_node::node_detach_exec(), blender::ed::space_node::node_group_edit_exec(), blender::ed::space_node::node_group_make_exec(), blender::ed::space_node::node_join_in_frame_exec(), blender::ed::space_node::node_join_nodes_exec(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_options_toggle_exec(), blender::ed::space_node::node_parent_set_exec(), blender::ed::space_node::node_preview_toggle_exec(), blender::ed::space_node::node_select_all_exec(), blender::ed::space_node::node_select_grouped_exec(), blender::ed::space_node::node_select_linked_from_exec(), blender::ed::space_node::node_select_linked_to_exec(), blender::ed::space_node::node_select_single(), blender::ed::space_node::node_socket_toggle_exec(), blender::ed::space_node::node_swap_group_asset_invoke(), obedit_circle_select(), blender::ed::object::object_add_hook_newob_exec(), blender::ed::object::object_add_hook_selob_exec(), blender::ed::object::object_add_named_exec(), blender::ed::object::object_calculate_paths_exec(), blender::ed::object::object_clear_paths_exec(), blender::ed::object::object_clear_transform_generic_exec(), blender::ed::object::object_constraint_copy_exec(), blender::ed::object::object_constraints_clear_exec(), blender::ed::object::object_convert_exec(), blender::ed::object::object_delete_exec(), blender::ed::object::object_duplicates_make_real_exec(), blender::ed::object::object_hide_collection_exec(), blender::ed::object::object_hide_view_clear_exec(), blender::ed::object::object_hide_view_set_exec(), blender::ed::object::object_hook_assign_exec(), blender::ed::object::object_hook_recenter_exec(), blender::ed::object::object_hook_remove_exec(), blender::ed::object::object_hook_reset_exec(), blender::ed::object::object_hook_select_exec(), blender::ed::object::object_image_add_invoke(), blender::ed::object::object_metaball_add_exec(), blender::ed::object::object_modifiers_copy_exec(), blender::ed::object::object_origin_clear_exec(), blender::ed::object::object_origin_set_exec(), blender::ed::object::object_parent_inverse_apply_exec(), blender::ed::object::object_rand_verts_exec(), blender::ed::object::object_select_all_exec(), blender::ed::object::object_select_by_type_exec(), blender::ed::object::object_select_grouped_exec(), blender::ed::object::object_select_less_exec(), blender::ed::object::object_select_linked_exec(), object_select_menu_exec(), blender::ed::object::object_select_mirror_exec(), blender::ed::object::object_select_more_exec(), blender::ed::object::object_select_random_exec(), blender::ed::object::object_select_same_collection_exec(), object_select_tag_updates(), blender::ed::object::object_shape_key_add(), blender::ed::object::object_shape_key_mirror(), blender::ed::object::object_speaker_add_exec(), blender::ed::object::object_track_clear_exec(), blender::ed::object::object_transfer_mode_invoke(), blender::ed::object::object_transform_axis_target_cancel(), blender::ed::object::object_transform_axis_target_modal(), blender::ed::object::object_update_all_paths_exec(), blender::ed::object::object_update_paths_exec(), blender::ed::object::object_warp_verts_exec(), blender::ed::object::objects_add_active_exec(), blender::ed::object::objects_bake_render_invoke(), blender::ed::object::objects_remove_active_exec(), blender::ed::object::objectsolver_clear_inverse_exec(), blender::ed::object::objectsolver_set_inverse_exec(), blender::ed::object::ocean_bake_exec(), blender::ed::object::shapekey::ShapeKeyDropTarget::on_drop(), blender::ui::bonecollections::BoneCollectionDropTarget::on_drop(), blender::ui::greasepencil::LayerNodeDropTarget::on_drop(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_begin(), blender::ed::sculpt_paint::greasepencil::EraseOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_done(), blender::ed::sculpt_paint::greasepencil::PaintOperation::on_stroke_extended(), open_exec(), blender::ed::sculpt_paint::optimize_exec(), blender::ed::outliner::outliner_action_set_exec(), blender::ed::outliner::outliner_animdata_operation_exec(), blender::ed::outliner::outliner_box_select_exec(), blender::ed::outliner::outliner_buttons(), blender::ed::outliner::outliner_color_tag_set_exec(), blender::ed::outliner::outliner_data_operation_exec(), blender::ed::outliner::outliner_delete_exec(), blender::ed::outliner::outliner_drivers_addsel_exec(), blender::ed::outliner::outliner_drivers_deletesel_exec(), blender::ed::outliner::outliner_id_operation_exec(), blender::ed::outliner::outliner_id_paste_exec(), blender::ed::outliner::outliner_id_remap_exec(), blender::ed::outliner::outliner_keyingset_additems_exec(), blender::ed::outliner::outliner_keyingset_removeitems_exec(), blender::ed::outliner::outliner_lib_operation_exec(), blender::ed::outliner::outliner_liboverride_operation_exec(), blender::ed::outliner::outliner_object_operation_exec(), blender::ed::outliner::outliner_orphans_purge_exec(), blender::ed::outliner::outliner_select_all_exec(), override_idtemplate_clear_exec(), override_idtemplate_make_exec(), paint_2d_bucket_fill(), paint_2d_gradient_fill(), paint_2d_redraw(), paint_mask_slice_exec(), paint_proj_redraw(), paint_weight_gradient_exec(), paint_weight_gradient_modal(), paintcurve_cursor_invoke(), paintcurve_new_exec(), paintface_flush_flags(), blender::ed::greasepencil::paintmode_toggle_exec(), paintvert_tag_select_update(), palette_color_move_exec(), palette_join_exec(), palette_sort_exec(), blender::ed::object::parent_clear_exec(), blender::ed::outliner::parent_clear_invoke(), blender::ed::outliner::parent_drop_set_parents(), blender::ed::object::parent_noinv_set_exec(), blender::ed::object::parent_set_exec(), particle_system_add_exec(), particle_system_remove_all_exec(), particle_system_remove_exec(), paste_driver_button_exec(), paste_material_exec(), paste_mtex_exec(), paste_splines_exec(), paste_tracks_exec(), PE_box_select(), PE_circle_select(), PE_lasso_select(), PE_mouse_particles(), pe_select_all_exec(), pointcloud_select_pick(), pose_autoside_names_exec(), pose_bone_rotmode_exec(), pose_calculate_paths_exec(), pose_clear_paths_exec(), pose_clear_transform_generic_exec(), pose_clear_user_transforms_exec(), blender::ed::object::pose_constraint_copy_exec(), blender::ed::object::pose_constraints_clear_exec(), pose_de_select_all_exec(), pose_flip_names_exec(), pose_flip_quats_exec(), pose_hide_exec(), blender::ed::object::pose_ik_clear_exec(), pose_paste_exec(), pose_reveal_exec(), pose_select_mirror_exec(), pose_update_paths_exec(), pose_update_paths_range_exec(), pose_visual_transform_apply_exec(), poseAnim_mapping_refresh(), poselib_blend_apply(), poselib_blend_cleanup(), poselib_keytag_pose(), preferences_extension_repo_add_exec(), preferences_extension_repo_remove_exec(), preferences_reset_default_theme_exec(), previewrange_clear_exec(), previewrange_define_exec(), proj_paint_add_slot(), ptcache_add_new_exec(), ptcache_bake_from_cache_exec(), ptcache_free_bake_all_exec(), ptcache_free_bake_exec(), ptcache_remove_exec(), push_pull_exec(), push_pull_modal_update(), pyrna_struct_driver_add(), pyrna_struct_driver_remove(), pyrna_struct_keyframe_insert(), radial_control_cancel(), refine_marker_exec(), region_flip_exec(), region_quadview_exec(), region_scale_invoke(), region_scale_modal(), rekey_exec(), reload_exec(), remove_active_keyingset_exec(), remove_doubles_exec(), remove_driver_button_exec(), remove_keyingset_button_exec(), remove_particle_dupliob_exec(), remove_particle_target_exec(), render_border_exec(), render_border_exec(), render_view_add_exec(), render_view_remove_exec(), blender::ed::sculpt_paint::expand::reposition_pivot(), reset_exec(), reset_exec(), blender::ed::object::reset_override_library_exec(), blender::ed::sculpt_paint::undo::restore_active_shape_key(), blender::ed::outliner::restrictbutton_bone_select_fn(), blender::ed::outliner::restrictbutton_ebone_select_fn(), blender::ed::outliner::restrictbutton_ebone_visibility_fn(), blender::ed::outliner::restrictbutton_gp_layer_flag_fn(), blender::ed::outliner::restrictbutton_r_lay_fn(), reveal_exec(), reveal_exec(), reveal_metaelems_exec(), rigidbody_con_add_exec(), rigidbody_con_remove_exec(), rigidbody_object_add_exec(), rigidbody_object_remove_exec(), rigidbody_objects_add_exec(), rigidbody_objects_calc_mass_exec(), rigidbody_objects_remove_exec(), rigidbody_objects_shape_change_exec(), ringsel_finish(), blender::ed::spreadsheet::row_filter_add_exec(), blender::ed::spreadsheet::row_filter_remove_exec(), blender::ed::geometry::run_node_group_exec(), sample_color_exec(), blender::ed::sculpt_paint::sample_color_invoke(), sample_color_invoke(), sample_color_modal(), scale_average_exec(), scale_average_modal_update(), scale_from_neighbor_exec(), scale_from_neighbor_modal_update(), scene_delete_exec(), blender::ed::outliner::scene_fn(), screen_animation_cancel_exec(), screen_change_update(), screen_delete_exec(), screen_new_exec(), screen_render_exec(), screen_render_invoke(), blender::ed::sculpt_paint::dyntopo::sculpt_detail_flood_fill_exec(), blender::ed::sculpt_paint::sculpt_mode_toggle_exec(), SCULPT_tag_update_overlays(), blender::ed::greasepencil::sculptmode_toggle_exec(), blender::ed::vse::segment_speed_set_exec(), blender::ed::curves::select_all_exec(), blender::ed::greasepencil::select_all_exec(), blender::ed::pointcloud::select_all_exec(), select_all_exec(), select_all_exec(), blender::ed::greasepencil::select_alternate_exec(), blender::ed::curves::select_ends_exec(), blender::ed::greasepencil::select_ends_exec(), select_exec(), select_exec(), select_grouped_exec(), blender::ed::sculpt_paint::select_grow::select_grow_modal(), blender::ed::sculpt_paint::select_grow::select_grow_update(), blender::ed::curves::select_less_exec(), blender::ed::greasepencil::select_less_exec(), select_less_exec(), blender::ed::object::select_linked_by_id(), blender::ed::curves::select_linked_exec(), blender::ed::greasepencil::select_linked_exec(), select_linked_exec(), select_linked_exec(), blender::ed::curves::select_linked_pick(), select_linked_pick_exec(), select_linked_pick_invoke(), select_marker_camera_switch(), blender::ed::curves::select_more_exec(), blender::ed::greasepencil::select_more_exec(), select_more_exec(), select_next_exec(), select_nth_exec(), blender::ed::transform::select_orientation_exec(), select_previous_exec(), blender::ed::curves::select_random_exec(), blender::ed::greasepencil::select_random_exec(), blender::ed::pointcloud::select_random_exec(), blender::ed::sculpt_paint::select_random::select_random_exec(), select_random_exec(), select_random_metaelems_exec(), select_roots_exec(), select_row_exec(), blender::ed::greasepencil::select_set_mode_exec(), select_similar_bone_collection(), select_similar_bone_color(), select_similar_children(), select_similar_children_immediate(), select_similar_data_pchan(), select_similar_direction(), blender::ed::greasepencil::select_similar_exec(), select_similar_length(), select_similar_prefix(), select_similar_siblings(), select_similar_suffix(), select_tips_exec(), blender::ed::greasepencil::selection_update(), blender::ed::asset::shelf::send_redraw_notifier(), separate_armature_exec(), separate_exec(), separate_slots_exec(), blender::ed::vse::seq_prefetch_wm_notify(), blender::ed::vse::sequencer_change_effect_type_exec(), blender::ed::vse::sequencer_change_path_exec(), blender::ed::vse::sequencer_change_scene_exec(), blender::ed::vse::sequencer_clipboard_copy_exec(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::sequencer_connect_exec(), blender::ed::vse::sequencer_de_select_all_exec(), blender::ed::vse::sequencer_delete_exec(), blender::ed::vse::sequencer_delete_strip_data(), blender::ed::vse::sequencer_disconnect_exec(), blender::ed::vse::sequencer_enable_proxies_exec(), blender::ed::vse::sequencer_gap_insert_exec(), blender::ed::vse::sequencer_gap_remove_exec(), blender::ed::vse::sequencer_lock_exec(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_meta_separate_exec(), blender::ed::vse::sequencer_meta_toggle_exec(), blender::ed::vse::sequencer_mute_exec(), blender::ed::vse::sequencer_offset_clear_exec(), blender::ed::vse::sequencer_preview_add_sound(), blender::ed::vse::sequencer_reassign_inputs_exec(), blender::ed::vse::sequencer_refresh_all_exec(), blender::ed::vse::sequencer_reload_exec(), blender::ed::vse::sequencer_rename_channel_invoke(), blender::ed::vse::sequencer_rendersize_exec(), blender::ed::vse::sequencer_retiming_data_show_exec(), blender::ed::vse::sequencer_retiming_freeze_frame_add_exec(), blender::ed::vse::sequencer_retiming_key_add_exec(), blender::ed::vse::sequencer_retiming_key_delete_exec(), blender::ed::vse::sequencer_retiming_key_select_exec(), blender::ed::vse::sequencer_retiming_reset_exec(), blender::ed::vse::sequencer_retiming_select_all_exec(), blender::ed::vse::sequencer_retiming_select_linked_time(), blender::ed::vse::sequencer_retiming_transition_add_exec(), blender::ed::vse::sequencer_scene_frame_range_update_exec(), blender::ed::vse::sequencer_select_do_updates(), blender::ed::vse::sequencer_select_exec(), blender::ed::vse::sequencer_select_grouped_exec(), blender::ed::vse::sequencer_select_handles_exec(), blender::ed::vse::sequencer_select_inverse_exec(), blender::ed::vse::sequencer_select_less_exec(), blender::ed::vse::sequencer_select_linked_exec(), blender::ed::vse::sequencer_select_linked_pick_invoke(), blender::ed::vse::sequencer_select_more_exec(), blender::ed::vse::sequencer_select_side_exec(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_separate_images_exec(), blender::ed::vse::sequencer_set_2d_cursor_exec(), blender::ed::vse::sequencer_set_range_to_strips_exec(), blender::ed::vse::sequencer_slip_invoke(), blender::ed::vse::sequencer_slip_modal(), blender::ed::vse::sequencer_snap_exec(), blender::ed::vse::sequencer_split_exec(), blender::ed::vse::sequencer_strip_color_tag_set_exec(), blender::ed::vse::sequencer_strip_jump_exec(), blender::ed::vse::sequencer_strip_transform_clear_exec(), blender::ed::vse::sequencer_strip_transform_fit_exec(), blender::ed::vse::sequencer_swap_data_exec(), blender::ed::vse::sequencer_swap_exec(), blender::ed::vse::sequencer_swap_inputs_exec(), blender::ed::vse::sequencer_text_cursor_move_exec(), blender::ed::vse::sequencer_text_cursor_set_invoke(), blender::ed::vse::sequencer_text_cursor_set_modal(), blender::ed::vse::sequencer_text_edit_mode_toggle_exec(), blender::ed::vse::sequencer_unlock_exec(), blender::ed::vse::sequencer_unmute_exec(), blender::ed::object::set_active_group_exec(), blender::ed::curves::set_attribute_exec(), blender::ed::pointcloud::set_attribute_exec(), set_axis_exec(), set_goal_weight_exec(), set_handle_type_exec(), set_handle_type_exec(), set_origin_exec(), blender::ed::sculpt_paint::set_pivot_position_exec(), set_plane_exec(), set_radius_exec(), blender::ed::mesh::set_sharpness_by_angle_exec(), set_solver_keyframe_exec(), set_spline_type_exec(), set_style(), blender::ed::object::shade_auto_smooth_exec(), blender::ed::object::shade_smooth_exec(), shade_smooth_exec(), blender::ed::object::shaderfx_add_exec(), blender::ed::object::shaderfx_move_down_exec(), blender::ed::object::shaderfx_move_up_exec(), blender::ed::object::shaderfx_remove_exec(), shape_cut_exec(), blender::ed::object::shape_key_clear_exec(), blender::ed::object::shape_key_copy_exec(), blender::ed::object::shape_key_lock_exec(), blender::ed::object::shape_key_make_basis_exec(), blender::ed::object::shape_key_move_exec(), blender::ed::object::shape_key_remove_exec(), blender::ed::object::shape_key_retime_exec(), shear_exec(), shear_modal_update(), blender::ed::object::skin_armature_create_exec(), blender::ed::object::skin_loose_mark_clear_exec(), blender::ed::object::skin_radii_equalize_exec(), blender::ed::object::skin_root_mark_exec(), slide_marker_invoke(), slide_marker_modal(), slide_plane_marker_invoke(), slide_plane_marker_modal(), slide_point_customdata(), slide_point_invoke(), slide_point_modal(), slide_spline_curvature_invoke(), slide_spline_curvature_modal(), blender::ed::vse::slip_cleanup(), blender::ed::vse::slip_handle_num_input(), slot_channels_move_to_new_action_exec(), smooth_exec(), snap_curs_to_active_exec(), snap_curs_to_center_exec(), snap_curs_to_grid_exec(), snap_curs_to_sel_exec(), blender::ed::curves::snap_curves_to_surface::snap_curves_to_surface_exec(), snap_sel_to_grid_exec(), snap_selected_to_location_rotation(), solve_camera_invoke(), sort_bmelem_flag(), space_workspace_cycle_invoke(), blender::ed::transform::special_aftertrans_update__mask(), blender::ed::transform::special_aftertrans_update__movieclip(), blender::ed::transform::special_aftertrans_update__movieclip_for_curves(), blender::ed::transform::special_aftertrans_update__nla(), sphere_project_exec(), spin_exec(), blender::ed::curves::split::split_exec(), stabilize_2d_add_exec(), stabilize_2d_remove_exec(), stabilize_2d_rotation_add_exec(), stabilize_2d_rotation_remove_exec(), stabilize_2d_rotation_select_exec(), stabilize_2d_select_exec(), stencil_control_modal(), stencil_fit_image_aspect_exec(), stencil_reset_transform_exec(), blender::ed::curves::undo::step_decode(), blender::ed::greasepencil::undo::step_decode(), blender::ed::pointcloud::undo::step_decode(), stitch_exit(), stitch_invoke(), stop_playback(), blender::ed::geometry::store_result_geometry(), blender::ed::object::stretchto_reset_exec(), blender::ed::vse::strip_modifier_add_exec(), blender::ed::vse::strip_modifier_copy_exec(), blender::ed::vse::strip_modifier_equalizer_redefine_exec(), blender::ed::vse::strip_modifier_move_exec(), blender::ed::vse::strip_modifier_remove_exec(), blender::ed::vse::strip_speed_set_exec(), blender::ed::sculpt_paint::stroke_done(), blender::ed::greasepencil::stroke_trim_execute(), subdivide_exec(), subdivide_exec(), blender::ed::curves::surface_set::surface_set_exec(), surface_slot_remove_exec(), blender::ed::object::surfacedeform_bind_exec(), switch_direction_exec(), blender::ed::sculpt_paint::symmetrize_exec(), blender::ed::vse::sync_active_scene_and_time_with_scene_strip(), blender::ed::sculpt_paint::hide::tag_update_visibility(), target_move_down_exec(), target_move_up_exec(), template_id_cb(), template_texture_select(), text_comment_exec(), text_convert_whitespace_exec(), text_cursor_set_apply(), text_cursor_set_exec(), text_cursor_set_exit(), text_cut_exec(), text_delete_exec(), text_duplicate_line_exec(), blender::ed::vse::text_editing_update(), text_find_and_replace(), text_indent_exec(), text_insert_exec(), text_jump_exec(), text_jump_to_file_at_point_internal(), text_line_break_exec(), text_line_number_invoke(), text_make_internal_exec(), text_move_cursor(), text_new_exec(), text_open_exec(), text_paste_exec(), text_reload_exec(), text_replace_all(), text_run_script(), text_save_as_exec(), text_save_exec(), text_select_all_exec(), text_select_line_exec(), text_select_word_exec(), text_toggle_overwrite_exec(), text_undosys_step_decode(), text_unindent_exec(), text_unlink_exec(), text_update_edited(), textbox_add_exec(), textbox_remove_exec(), texture_paint_camera_project_exec(), blender::ed::sculpt_paint::image::ops::paint::texture_paint_init(), texture_slot_move_exec(), tile_add_exec(), tile_fill_exec(), tile_remove_exec(), blender::ed::object::time_modifier_segment_add_exec(), blender::ed::object::time_modifier_segment_move_exec(), blender::ed::object::time_modifier_segment_remove_exec(), time_offset_exec(), time_offset_modal_update(), toggle_cyclic_exec(), toggle_matcap_flip_exec(), toggle_shading_exec(), toggle_xray_exec(), track_copy_color_exec(), blender::ed::object::track_set_exec(), tracking_object_new_exec(), tracking_object_remove_exec(), transform_active_color(), blender::ed::transform::transform_exec(), blender::ed::outliner::tree_element_active_ebone__sel(), blender::ed::outliner::tree_element_bone_activate(), blender::ed::outliner::tree_element_bonecollection_activate(), blender::ed::outliner::tree_element_camera_activate(), blender::ed::outliner::tree_element_constraint_activate(), blender::ed::outliner::tree_element_defgroup_activate(), blender::ed::outliner::tree_element_gplayer_activate(), blender::ed::outliner::tree_element_grease_pencil_node_activate(), blender::ed::outliner::tree_element_material_activate(), blender::ed::outliner::tree_element_modifier_activate(), blender::ed::outliner::tree_element_object_activate(), blender::ed::outliner::tree_element_posechannel_activate(), blender::ed::outliner::tree_element_psys_activate(), blender::ed::outliner::tree_element_strip_activate(), blender::ed::outliner::tree_element_viewlayer_activate(), txt_add_object(), type_toggle_exec(), ui_apply_but_autokey(), ui_but_anim_expression_create(), ui_but_anim_expression_set(), ui_drop_material_exec(), ui_handler_panel_region(), ui_imageuser_layer_menu_step(), ui_imageuser_pass_menu_step(), ui_imageuser_slot_menu_step(), ui_numedit_but_TRACKPREVIEW(), ui_template_id_liboverride_hierarchy_make(), undo_history_exec(), unify_length_exec(), update_autoflags_fcurve(), update_image_from_plane_marker_exec(), update_reports_display_invoke(), blender::ed::curves::pen_tool::CurvesPenToolOperation::update_view(), blender::ed::greasepencil::GreasePencilPenToolOperation::update_view(), uv_align(), uv_arrange_islands_exec(), uv_copy_mirrored_faces_exec(), uv_from_view_exec(), uv_hide_exec(), uv_mark_seam_exec(), uv_move_on_axis_exec(), uv_paste_exec(), uv_pin_exec(), uv_remove_doubles_to_selected(), uv_remove_doubles_to_selected_shared_vertex(), uv_remove_doubles_to_unselected(), uv_reveal_exec(), uv_rip_exec(), uv_sculpt_stroke_modal(), uv_seams_from_islands_exec(), uv_select_linked_internal(), uv_select_more_less(), uv_select_split_exec(), uv_set_2d_cursor_exec(), uv_snap_cursor_exec(), uv_snap_selection_exec(), uv_weld(), validate_viewer_paths(), vertex_color_levels_exec(), vertex_color_set_exec(), vertex_color_smooth_exec(), blender::ed::object::vertex_group_add_exec(), blender::ed::object::vertex_group_assign_exec(), blender::ed::object::vertex_group_clean_exec(), blender::ed::object::vertex_group_copy_exec(), blender::ed::object::vertex_group_copy_to_selected_exec(), blender::ed::object::vertex_group_deselect_exec(), blender::ed::object::vertex_group_invert_exec(), blender::ed::object::vertex_group_levels_exec(), blender::ed::object::vertex_group_limit_total_exec(), blender::ed::object::vertex_group_lock_exec(), blender::ed::object::vertex_group_mirror_exec(), blender::ed::object::vertex_group_normalize_all_exec(), blender::ed::object::vertex_group_normalize_exec(), blender::ed::object::vertex_group_quantize_exec(), blender::ed::object::vertex_group_remove_exec(), blender::ed::object::vertex_group_remove_from_exec(), blender::ed::object::vertex_group_select_exec(), blender::ed::object::vertex_group_smooth_exec(), blender::ed::object::vertex_group_sort_exec(), vertex_paint_from_weight_exec(), blender::ed::object::vertex_parent_set_exec(), blender::ed::object::vertex_weight_copy_exec(), blender::ed::object::vertex_weight_delete_exec(), blender::ed::object::vertex_weight_normalize_active_vertex_exec(), blender::ed::object::vertex_weight_paste_exec(), blender::ed::object::vertex_weight_set_active_exec(), blender::ed::greasepencil::vertexmode_toggle_exec(), blender::ed::object::vgroup_move_exec(), view3d_box_select_exec(), view3d_camera_to_view_exec(), view3d_camera_to_view_selected_exec(), view3d_center_camera_exec(), view3d_center_lock_exec(), view3d_circle_select_exec(), view3d_collection_drop_copy_external_asset(), view3d_lasso_select(), view3d_ob_drop_copy_external_asset(), view3d_pastebuffer_exec(), view3d_select_exec(), view3d_setobjectascamera_exec(), view3d_zoom_1_to_1_camera_exec(), view_cursor_center_exec(), blender::ed::vse::view_ghost_border_exec(), view_layer_add_aov_exec(), view_layer_add_exec(), view_layer_add_lightgroup_exec(), view_layer_add_used_lightgroups_exec(), view_layer_remove_aov_exec(), view_layer_remove_exec(), view_layer_remove_lightgroup_exec(), view_layer_remove_unused_lightgroups_exec(), view_lock_clear_exec(), view_lock_to_active_exec(), view_zoomdrag_apply(), view_zoomstep_apply_ex(), blender::ed::space_node::viewer_border_exec(), blender::ed::transform::viewRedrawForce(), blender::ed::transform::viewRedrawPost(), blender::ed::object::visual_geometry_to_objects_exec(), blender::ed::object::visual_transform_apply_exec(), blender::ed::object::voxel_remesh_exec(), blender::ed::object::voxel_size_edit_modal(), vpaint_mode_toggle_exec(), vpaint_stroke_done(), walk_modal(), weight_from_bones_exec(), weight_set_exec(), blender::ed::greasepencil::weightmode_toggle_exec(), wm_debug_menu_exec(), wm_file_read_opwrap(), wm_file_read_post(), wm_handler_operator_call(), wm_id_linked_relocate_exec(), WM_lib_reload(), wm_lib_relocate_exec_do(), wm_link_append_exec(), wm_operator_register(), wm_operator_reports(), wm_save_as_mainfile_exec(), wm_stereo3d_set_exec(), wm_userpref_read_exec(), wm_window_close(), WM_window_set_active_scene(), wm_xr_session_toggle_exec(), workspace_append_activate_exec(), workspace_delete_all_others_exec(), workspace_delete_exec(), workspace_new_exec(), workspace_reorder_to_back_exec(), workspace_reorder_to_front_exec(), workspace_scene_pin_toggle_exec(), wpaint_mode_toggle_exec(), wpaint_stroke_done(), and wpaint_stroke_update_step().

◆ WM_event_add_notifier_ex()

◆ wm_event_add_notifier_intern()

◆ WM_event_add_simulate()

◆ wm_event_add_trackpad()

wmEvent * wm_event_add_trackpad ( wmWindow * win,
const wmEvent * event,
int deltax,
int deltay )
static

◆ WM_event_add_ui_handler()

◆ wm_event_always_pass()

◆ WM_event_consecutive_data_free()

void WM_event_consecutive_data_free ( wmWindow * win)

◆ WM_event_consecutive_data_get()

void * WM_event_consecutive_data_get ( wmWindow * win,
const char * id )

◆ WM_event_consecutive_data_set()

void WM_event_consecutive_data_set ( wmWindow * win,
const char * id,
void * custom_data )

◆ wm_event_cursor_other_windows()

◆ wm_event_cursor_store()

void wm_event_cursor_store ( CursorKeymapInfo_State * state,
const wmEvent * event,
short space_type,
short region_type,
const bToolRef * tref )
static

Definition at line 6595 of file wm_event_system.cc.

References state.

Referenced by WM_window_cursor_keymap_status_refresh().

◆ wm_event_custom_clear()

void wm_event_custom_clear ( wmEvent * event)
static

◆ wm_event_custom_free()

◆ wm_event_do_depsgraph()

◆ wm_event_do_handlers()

void wm_event_do_handlers ( bContext * C)

Goes over entire hierarchy: events -> window -> screen -> area -> region.

Note
Called in main loop.

Definition at line 4113 of file wm_event_system.cc.

References wmWindow::addmousemove, area_event_inside(), AREA_FLAG_ACTIONZONES_UPDATE, BLI_assert, BLI_remlink(), C, CLOG_DEBUG, copy_v2_v2_int(), CTX_data_main(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region_set(), CTX_wm_window(), CTX_wm_window_set(), wmEvent::customdata, ED_area_azones_update(), ED_screen_areas_iter, ED_screen_set_active_region(), ED_undo_is_state_valid(), EVENT_NONE, wmWindow::event_queue_check_click, wmWindow::event_queue_check_drag, wmWindow::event_queue_check_drag_handled, wmWindow::event_queue_consecutive_gesture_type, wmWindow::event_queue_consecutive_gesture_xy, wmTooltipState::event_xy, wmWindow::eventstate, EVT_XR_ACTION, wmTooltipState::exit_on_event, ScrArea::flag, wmEvent::flag, G, G_DEBUG_EVENTS, G_DEBUG_HANDLERS, GPU_render_begin(), GPU_render_end(), ScrArea::handlers, wmWindow::handlers, ISKEYBOARD_OR_BUTTON, ISMOUSE_BUTTON, ISMOUSE_MOTION, KM_NOTHING, KM_PRESS, len_manhattan_v2v2_int(), LISTBASE_FOREACH, wmWindow::modalhandlers, MOUSEMOVE, NDOF_MOTION, wmEvent::prev_press_type, wmEvent::prev_xy, printf, region_event_inside(), wmWindow::runtime, bScreen::skip_handling, TIMER, wmTooltipState::timer, bScreen::tool_tip, ScrArea::totrct, wmEvent::type, wmEvent::val, wmWindowManager::windows, wm_action_not_handled(), wm_event_add_intern(), wm_event_add_mousemove_to_head(), WM_event_consecutive_data_free(), WM_event_consecutive_gesture_test(), WM_event_consecutive_gesture_test_break(), WM_EVENT_CURSOR_MOTION_THRESHOLD, wm_event_do_handlers_area_regions(), wm_event_drag_and_drop_test(), WM_EVENT_FORCE_DRAG_THRESHOLD, wm_event_free_all(), wm_event_free_and_remove_from_queue_if_valid(), wm_event_free_last_handled(), wm_event_inside_rect(), WM_EVENT_IS_CONSECUTIVE, WM_EVENT_IS_REPEAT, wm_event_pie_filter(), WM_event_print(), WM_gizmoconfig_update(), WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, wm_handlers_do(), WM_keyconfig_update(), WM_LOG_EVENTS, wm_paintcursor_test(), wm_region_mouse_co(), wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak(), WM_tooltip_clear(), WM_tooltip_init(), WM_window_get_active_scene(), WM_window_get_active_screen(), WM_window_get_active_workspace(), wm_window_make_drawable(), and wmEvent::xy.

Referenced by ghost_event_proc(), and WM_main().

◆ wm_event_do_handlers_area_regions()

eHandlerActionFlag wm_event_do_handlers_area_regions ( bContext * C,
wmEvent * event,
ScrArea * area )
static

Send event to region handlers in area.

Two cases: 1) Always pass events (wm_event_always_pass()) are sent to all regions. 2) Event is passed to the region visually under the cursor (ED_area_find_region_xy_visual()).

Definition at line 4088 of file wm_event_system.cc.

References C, ED_area_find_region_xy_visual(), LISTBASE_FOREACH, ScrArea::regionbase, RGN_TYPE_ANY, wm_event_always_pass(), wm_event_do_region_handlers(), wm_event_handler_return_value_check(), WM_HANDLER_CONTINUE, and wmEvent::xy.

Referenced by wm_event_do_handlers().

◆ wm_event_do_notifiers()

void wm_event_do_notifiers ( bContext * C)

Called in main-loop.

Definition at line 584 of file wm_event_system.cc.

References wmRegionListenerParams::area, wmSpaceTypeListenerParams::area, BKE_workspace_layout_screen_get(), BLI_assert, BLI_gset_remove(), BLI_pophead(), BLI_remlink(), C, CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_window(), CTX_wm_window_set(), depsgraph, ED_area_do_listen(), ED_info_stats_clear(), ED_preview_restart_queue_work(), ED_region_do_listen(), ED_screen_areas_iter, ED_screen_change(), ED_screen_do_listen(), ED_update_for_newframe(), ED_workspace_delete(), ED_workspace_do_listen(), ED_workspace_layout_delete(), ELEM, wmWindowManager::file_saved, G, G_DEBUG_EVENTS, GPU_render_begin(), GPU_render_end(), LISTBASE_FOREACH, MEM_freeN(), NC_GEOM, NC_OBJECT, NC_SCENE, NC_SCREEN, NC_SPACE, NC_WM, ND_DATACHANGED, ND_FILEREAD, ND_FILESAVE, ND_FRAME, ND_LAYOUTBROWSE, ND_LAYOUTDELETE, ND_SPACE_INFO, ND_UNDO, ND_WORKSPACE_DELETE, ND_WORKSPACE_SET, wmRegionListenerParams::notifier, wmSpaceTypeListenerParams::notifier, printf, RE_FreeUnusedGPUResources(), wmRegionListenerParams::region, bScreen::regionbase, wmWindowManager::runtime, wmRegionListenerParams::scene, wmSpaceTypeListenerParams::scene, WorkSpace::sequencer_scene, UI_popup_handlers_remove_all(), UNUSED_VARS_NDEBUG, wmRegionListenerParams::window, wmSpaceTypeListenerParams::window, wmWindowManager::windows, wm_event_add_notifier_intern(), wm_event_do_refresh_wm_and_depsgraph(), wm_event_timers_execute(), WM_msgbus_handle(), wm_notifier_is_clear(), wm_test_autorun_warning(), wm_test_foreign_file_warning(), wm_test_gpu_backend_fallback(), WM_window_cursor_keymap_status_refresh(), WM_window_get_active_layout(), WM_window_get_active_scene(), WM_window_get_active_screen(), WM_window_get_active_workspace(), WM_window_set_active_workspace(), and WM_window_title().

Referenced by ghost_event_proc(), and WM_main().

◆ wm_event_do_refresh_wm_and_depsgraph()

void wm_event_do_refresh_wm_and_depsgraph ( bContext * C)

Was part of wm_event_do_notifiers, split out so it can be called once before entering the WM_main loop. This ensures operators don't run before the UI and depsgraph are initialized.

Definition at line 548 of file wm_event_system.cc.

References bScreen::areabase, C, CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_window_set(), ED_area_do_refresh(), LISTBASE_FOREACH, wmWindowManager::windows, wm_event_do_depsgraph(), and WM_window_get_active_screen().

Referenced by redraw_timer_step(), wm_event_do_notifiers(), and WM_main().

◆ wm_event_do_region_handlers()

◆ wm_event_drag_and_drop_test()

◆ WM_event_fileselect_event()

void WM_event_fileselect_event ( wmWindowManager * wm,
void * ophandle,
const int eventval )

◆ wm_event_find_fileselect_root_window_from_context()

wmWindow * wm_event_find_fileselect_root_window_from_context ( const bContext * C)
static

From the context window, try to find a window that is appropriate for use as root window of a modal File Browser (modal means: there is a SpaceFile.op to execute). The root window will become the parent of the File Browser and provides a context to execute the file operator in, even after closing the File Browser.

An appropriate window is either of the following:

  • A parent window that does not yet contain a modal File Browser. This is determined using ED_fileselect_handler_area_find_any_with_op().
  • A parent window containing a modal File Browser, but in a maximized/full-screen state. Users shouldn't be able to put a temporary screen like the modal File Browser into maximized/full-screen state themselves. So this setup indicates that the File Browser was opened using USER_TEMP_SPACE_DISPLAY_FULLSCREEN.

If no appropriate parent window can be found from the context window, return the first registered window (which can be assumed to be a regular window, e.g. no modal File Browser; this is asserted).

Definition at line 4413 of file wm_event_system.cc.

References BLI_assert, C, CTX_wm_manager(), CTX_wm_window(), ED_fileselect_handler_area_find_any_with_op(), ListBase::first, ScrArea::full, wmWindow::parent, and wmWindowManager::windows.

Referenced by WM_event_add_fileselect().

◆ wm_event_free()

◆ wm_event_free_all()

void wm_event_free_all ( wmWindow * win)

Definition at line 307 of file wm_event_system.cc.

References BLI_pophead(), wmWindow::runtime, and wm_event_free().

Referenced by wm_event_do_handlers(), and wm_window_free().

◆ wm_event_free_and_remove_from_queue_if_valid()

void wm_event_free_and_remove_from_queue_if_valid ( wmEvent * event)
static

Account for the special case when events are being handled and a file is loaded. In this case event handling exits early, however when "Load UI" is disabled the even will still be in #wmWindow.event_queue.

Without this it's possible to continuously handle the same event, see: #76484.

Definition at line 3966 of file wm_event_system.cc.

References BLI_remlink_safe(), G_MAIN, LISTBASE_FOREACH, and wm_event_free().

Referenced by wm_event_do_handlers().

◆ wm_event_free_handler()

◆ wm_event_free_last()

void wm_event_free_last ( wmWindow * win)
static

Definition at line 299 of file wm_event_system.cc.

References BLI_poptail(), wmWindow::runtime, and wm_event_free().

Referenced by wm_event_add_trackpad().

◆ wm_event_free_last_handled()

void wm_event_free_last_handled ( wmWindow * win,
wmEvent * event )
static

A version of wm_event_free that holds the last handled event.

Definition at line 271 of file wm_event_system.cc.

References wmWindow::event_last_handled, MEM_dupallocN(), MEM_freeN(), wm_event_custom_clear(), wm_event_custom_free(), and wm_event_free().

Referenced by wm_event_do_handlers().

◆ WM_event_free_ui_handler_all()

◆ WM_event_get_keymap_from_toolsystem()

void WM_event_get_keymap_from_toolsystem ( wmWindowManager * wm,
wmWindow * win,
wmEventHandler_Keymap * handler,
wmEventHandler_KeymapResult * km_result )

Definition at line 4889 of file wm_event_system.cc.

References wm_event_get_keymap_from_toolsystem_ex().

Referenced by ed_default_handlers().

◆ wm_event_get_keymap_from_toolsystem_ex()

void wm_event_get_keymap_from_toolsystem_ex ( wmWindowManager * wm,
wmWindow * win,
wmEventHandler_Keymap * handler,
wmEventHandler_KeymapResult * km_result,
const bool with_gizmos )
static

◆ WM_event_get_keymap_from_toolsystem_with_gizmos()

void WM_event_get_keymap_from_toolsystem_with_gizmos ( wmWindowManager * wm,
wmWindow * win,
wmEventHandler_Keymap * handler,
wmEventHandler_KeymapResult * km_result )

Definition at line 4881 of file wm_event_system.cc.

References wm_event_get_keymap_from_toolsystem_ex().

Referenced by ed_default_handlers().

◆ WM_event_get_keymaps_from_handler()

◆ WM_event_handler_region_marker_poll()

bool WM_event_handler_region_marker_poll ( const wmWindow * win,
const ScrArea * area,
const ARegion * region,
const wmEvent * event )

◆ WM_event_handler_region_v2d_mask_no_marker_poll()

bool WM_event_handler_region_v2d_mask_no_marker_poll ( const wmWindow * win,
const ScrArea * area,
const ARegion * region,
const wmEvent * event )

◆ WM_event_handler_region_v2d_mask_poll()

bool WM_event_handler_region_v2d_mask_poll ( const wmWindow * win,
const ScrArea * area,
const ARegion * region,
const wmEvent * event )
Returns
true when the event should be handled by the 2D views masked region.
Note
uses the EventHandlerPoll signature.

Definition at line 4952 of file wm_event_system.cc.

References BLI_rcti_translate(), event_or_prev_in_rect(), View2D::mask, ARegion::v2d, ARegion::winrct, rcti::xmin, and rcti::ymin.

Referenced by WM_event_add_keymap_handler_v2d_mask(), and WM_event_handler_region_v2d_mask_no_marker_poll().

◆ wm_event_handler_return_value_check()

BLI_INLINE void wm_event_handler_return_value_check ( const bContext * C,
const wmEvent * event,
const eHandlerActionFlag action )

Debug only sanity check for the return value of event handlers. Checks that "always pass" events don't cause non-passing handler return values, and thus actually pass.

Parameters
CPass in the context to check if it's "window" was cleared. The event check can't be executed if the handler just loaded a file or closed the window. (typically identified by CTX_wm_window(C) returning null), because the event will have been freed then. When null, always check the event (assume the caller knows the event was not freed).

Definition at line 856 of file wm_event_system.cc.

References BLI_assert_msg, BLI_INLINE, C, CTX_wm_window(), UNUSED_VARS_NDEBUG, wm_event_always_pass(), and WM_HANDLER_BREAK.

Referenced by wm_event_do_handlers_area_regions(), wm_handlers_do(), and wm_handlers_do_intern().

◆ wm_event_handler_ui_cancel()

void wm_event_handler_ui_cancel ( bContext * C)
static

Definition at line 974 of file wm_event_system.cc.

References C, CTX_wm_region(), CTX_wm_window(), and wm_event_handler_ui_cancel_ex().

Referenced by wm_operator_invoke().

◆ wm_event_handler_ui_cancel_ex()

◆ wm_event_init_from_window()

◆ wm_event_inside_rect()

bool wm_event_inside_rect ( const wmEvent * event,
const rcti * rect )
static

Definition at line 3812 of file wm_event_system.cc.

References BLI_rcti_isect_pt_v(), wm_event_always_pass(), and wmEvent::xy.

Referenced by wm_event_do_handlers().

◆ wm_event_is_double_click()

bool wm_event_is_double_click ( const wmEvent * event,
const uint64_t event_time_ms,
const uint64_t event_prev_press_time_ms )
static

◆ wm_event_is_ignorable_key_press()

bool wm_event_is_ignorable_key_press ( const wmWindow * win,
const wmEvent & event )
static

Returns true if the event is a key press event which is to be ignored and not added to the event queue.

A key press event will be ignored if there is already matched key press in the queue. This avoids the event queue "clogging" in the situations when there is an operator bound to a key press event and the execution time of the operator is longer than the key repeat.

Definition at line 5881 of file wm_event_system.cc.

References BLI_listbase_is_empty(), wmEvent::flag, wmWindow::runtime, WM_EVENT_IS_REPEAT, and wm_event_is_same_key_press().

Referenced by wm_event_add_ghostevent().

◆ wm_event_is_same_key_press()

bool wm_event_is_same_key_press ( const wmEvent & event_a,
const wmEvent & event_b )
static

Definition at line 5860 of file wm_event_system.cc.

References KM_PRESS, wmEvent::modifier, wmEvent::type, and wmEvent::val.

Referenced by wm_event_is_ignorable_key_press().

◆ WM_event_match()

bool WM_event_match ( const wmEvent * winevent,
const wmKeyMapItem * kmi )

Definition at line 6560 of file wm_event_system.cc.

References wm_eventmatch().

Referenced by ED_view3d_navigation_do().

◆ WM_event_match_keymap_item()

◆ WM_event_match_keymap_item_from_handlers()

◆ WM_event_modal_handler_area_replace()

void WM_event_modal_handler_area_replace ( wmWindow * win,
const ScrArea * old_area,
ScrArea * new_area )

Modal handlers store a pointer to an area which might be freed while the handler runs. Use this function to NULL all handler pointers to old_area.

Definition at line 4707 of file wm_event_system.cc.

References wmEventHandler_Op::area, wmEventHandler_Op::context, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH, wmWindow::modalhandlers, and WM_HANDLER_TYPE_OP.

Referenced by area_offscreen_exit(), and ED_area_exit().

◆ WM_event_modal_handler_region_replace()

void WM_event_modal_handler_region_replace ( wmWindow * win,
const ARegion * old_region,
ARegion * new_region )

Modal handlers store a pointer to a region which might be freed while the handler runs. Use this function to NULL all handler pointers to old_region.

Definition at line 4721 of file wm_event_system.cc.

References wmEventHandler_Op::context, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH, wmWindow::modalhandlers, wmEventHandler_Op::region, wmEventHandler_Op::region_type, ARegion::regiontype, RGN_TYPE_WINDOW, and WM_HANDLER_TYPE_OP.

Referenced by area_join_modal(), area_offscreen_exit(), and ED_region_exit().

◆ wm_event_modalkeymap_begin()

void wm_event_modalkeymap_begin ( const bContext * C,
wmOperator * op,
wmEvent * event,
wmEvent_ModalMapStore * event_backup )
static

This function prepares events for use with wmOperatorType.modal by:

  • Matching key-map items with the operators modal key-map.
  • Converting double click events into press events, allowing them to be restored when the events aren't handled.

    This is done since we only want to use double click events to match key-map items, allowing modal functions to check for press/release events without having to interpret them.

Definition at line 2504 of file wm_event_system.cc.

References BLI_assert, C, CTX_wm_manager(), wmEvent_ModalMapStore::dbl_click_disabled, EVT_MODAL_MAP, KM_DBL_CLICK, KM_PRESS, wmOperatorType::modalkeymap, wmOperator::opm, wmEvent_ModalMapStore::prev_type, wmEvent::prev_val, wmEvent_ModalMapStore::prev_val, wmKeyMapItem::propvalue, wmEvent::type, wmOperator::type, wmEvent::val, wm_eventmatch_modal_keymap_items(), and WM_keymap_active().

Referenced by wm_handler_operator_call().

◆ wm_event_modalkeymap_end()

void wm_event_modalkeymap_end ( wmEvent * event,
const wmEvent_ModalMapStore * event_backup )
static

Restore changes from wm_event_modalkeymap_begin

Warning
bad hacking event system... better restore event type for checking of KM_CLICK for example. Modal maps could use different method (ton).

Definition at line 2571 of file wm_event_system.cc.

References wmEvent_ModalMapStore::dbl_click_disabled, EVT_MODAL_MAP, KM_DBL_CLICK, wmEvent_ModalMapStore::prev_type, wmEvent_ModalMapStore::prev_val, and wmEvent::type.

Referenced by wm_handler_operator_call().

◆ wm_event_pie_filter()

bool wm_event_pie_filter ( wmWindow * win,
const wmEvent * event )
static

Filter out all events of the pie that spawned the last pie unless it's a release event.

Definition at line 3947 of file wm_event_system.cc.

References EVENT_NONE, KM_RELEASE, wmWindow::pie_event_type_lock, wmEvent::type, and wmEvent::val.

Referenced by wm_event_do_handlers().

◆ wm_event_prev_click_set()

void wm_event_prev_click_set ( uint64_t event_time_ms,
wmEvent * event_state,
uint64_t * r_event_state_prev_press_time_ms )
static

◆ wm_event_prev_values_set()

void wm_event_prev_values_set ( wmEvent * event,
wmEvent * event_state )
static

Copy the current state to the previous event state.

Definition at line 5704 of file wm_event_system.cc.

References wmEvent::prev_type, wmEvent::prev_val, wmEvent::type, and wmEvent::val.

Referenced by wm_event_state_update_and_click_set_ex().

◆ WM_event_remove_handlers()

◆ WM_event_remove_handlers_by_area()

void WM_event_remove_handlers_by_area ( ListBase * handlers,
const ScrArea * area )

◆ WM_event_remove_keymap_handler()

◆ WM_event_remove_modal_handler_all()

void WM_event_remove_modal_handler_all ( const wmOperator * op,
const bool postpone )

◆ WM_event_remove_model_handler()

void WM_event_remove_model_handler ( ListBase * handlers,
const wmOperator * op,
const bool postpone )

◆ WM_event_remove_ui_handler()

◆ WM_event_set_keymap_handler_post_callback()

void WM_event_set_keymap_handler_post_callback ( wmEventHandler_Keymap * handler,
void(keymap_tag)(wmKeyMap *keymap, wmKeyMapItem *kmi, void *user_data) ,
void * user_data )

◆ wm_event_state_update_and_click_set()

void wm_event_state_update_and_click_set ( wmEvent * event,
uint64_t event_time_ms,
wmEvent * event_state,
uint64_t * event_state_prev_press_time_ms_p,
const GHOST_TEventType type )
static

◆ wm_event_state_update_and_click_set_ex()

void wm_event_state_update_and_click_set_ex ( wmEvent * event,
const uint64_t event_time_ms,
wmEvent * event_state,
uint64_t * event_state_prev_press_time_ms_p,
const bool is_keyboard,
const bool check_double_click )
static

Update the event-state for any kind of event that supports KM_PRESS / KM_RELEASE.

Parameters
check_double_clickOptionally skip checking for double-click events. Needed for event simulation where the time of click events is not so predictable.

Definition at line 5800 of file wm_event_system.cc.

References BLI_assert, CLOG_DEBUG, ELEM, wmEvent::flag, ISKEYBOARD_OR_BUTTON, KM_DBL_CLICK, KM_PRESS, KM_RELEASE, wmEvent::modifier, wmEvent::type, wmEvent::val, wm_event_is_double_click(), WM_EVENT_IS_REPEAT, wm_event_prev_click_set(), wm_event_prev_values_set(), and WM_LOG_EVENTS.

Referenced by WM_event_add_simulate(), and wm_event_state_update_and_click_set().

◆ wm_event_tablet_data_default()

◆ WM_event_tablet_data_default_set()

void WM_event_tablet_data_default_set ( wmTabletData * tablet_data)

Definition at line 5598 of file wm_event_system.cc.

References wm_event_tablet_data_default().

◆ wm_event_timers_execute()

void wm_event_timers_execute ( bContext * C)
static

◆ wm_event_type_from_ghost_button()

◆ wm_event_type_from_ghost_key()

wmEventType wm_event_type_from_ghost_key ( GHOST_TKey key)
static
Returns
The WM enum for key or EVENT_NONE (which should be ignored).

Definition at line 5303 of file wm_event_system.cc.

References BLI_assert_unreachable, CLOG_WARN, EVENT_NONE, EVT_ACCENTGRAVEKEY, EVT_AKEY, EVT_APPKEY, EVT_BACKSLASHKEY, EVT_BACKSPACEKEY, EVT_CAPSLOCKKEY, EVT_COMMAKEY, EVT_DELKEY, EVT_DOWNARROWKEY, EVT_ENDKEY, EVT_EQUALKEY, EVT_ESCKEY, EVT_F1KEY, EVT_GRLESSKEY, EVT_HOMEKEY, EVT_HYPER, EVT_INSERTKEY, EVT_LEFTALTKEY, EVT_LEFTARROWKEY, EVT_LEFTBRACKETKEY, EVT_LEFTCTRLKEY, EVT_LEFTSHIFTKEY, EVT_LINEFEEDKEY, EVT_MEDIAFIRST, EVT_MEDIALAST, EVT_MEDIAPLAY, EVT_MEDIASTOP, EVT_MINUSKEY, EVT_OSKEY, EVT_PAD0, EVT_PADASTERKEY, EVT_PADENTER, EVT_PADMINUS, EVT_PADPERIOD, EVT_PADPLUSKEY, EVT_PADSLASHKEY, EVT_PAGEDOWNKEY, EVT_PAGEUPKEY, EVT_PAUSEKEY, EVT_PERIODKEY, EVT_PLUSKEY, EVT_QUOTEKEY, EVT_RETKEY, EVT_RIGHTALTKEY, EVT_RIGHTARROWKEY, EVT_RIGHTBRACKETKEY, EVT_RIGHTCTRLKEY, EVT_RIGHTSHIFTKEY, EVT_SEMICOLONKEY, EVT_SLASHKEY, EVT_SPACEKEY, EVT_TABKEY, EVT_UNKNOWNKEY, EVT_UPARROWKEY, EVT_ZEROKEY, GHOST_kKey0, GHOST_kKey9, GHOST_kKeyA, 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_kKeyF24, GHOST_kKeyGrLess, GHOST_kKeyHome, GHOST_kKeyInsert, GHOST_kKeyLeftAlt, GHOST_kKeyLeftArrow, GHOST_kKeyLeftBracket, GHOST_kKeyLeftControl, GHOST_kKeyLeftHyper, GHOST_kKeyLeftOS, GHOST_kKeyLeftShift, GHOST_kKeyLinefeed, GHOST_kKeyMediaFirst, GHOST_kKeyMediaLast, GHOST_kKeyMediaPlay, GHOST_kKeyMediaStop, GHOST_kKeyMinus, GHOST_kKeyNumLock, GHOST_kKeyNumpad0, GHOST_kKeyNumpad9, GHOST_kKeyNumpadAsterisk, GHOST_kKeyNumpadEnter, GHOST_kKeyNumpadMinus, GHOST_kKeyNumpadPeriod, GHOST_kKeyNumpadPlus, GHOST_kKeyNumpadSlash, GHOST_kKeyPause, GHOST_kKeyPeriod, GHOST_kKeyPlus, GHOST_kKeyPrintScreen, GHOST_kKeyQuote, GHOST_kKeyRightAlt, GHOST_kKeyRightArrow, GHOST_kKeyRightBracket, GHOST_kKeyRightControl, GHOST_kKeyRightHyper, GHOST_kKeyRightOS, GHOST_kKeyRightShift, GHOST_kKeyScrollLock, GHOST_kKeySemicolon, GHOST_kKeySlash, GHOST_kKeySpace, GHOST_kKeyTab, GHOST_kKeyUnknown, GHOST_kKeyUpArrow, GHOST_kKeyUpPage, GHOST_kKeyZ, and WM_LOG_EVENTS.

Referenced by wm_event_add_ghostevent().

◆ WM_event_ui_handler_region_popup_replace()

void WM_event_ui_handler_region_popup_replace ( wmWindow * win,
const ARegion * old_region,
ARegion * new_region )

◆ wm_eventemulation()

◆ wm_eventmatch()

◆ wm_eventmatch_modal_keymap_items()

wmKeyMapItem * wm_eventmatch_modal_keymap_items ( const wmKeyMap * keymap,
wmOperator * op,
const wmEvent * event )
static

◆ WM_global_report()

void WM_global_report ( eReportType type,
const char * message )

Report directly to the window manager without any context.

Warning
This function should almost always be avoided in favor of BKE_report, if this isn't possible, a code-comment must be included explaining why.

Global reports are bad practice because the caller can't handle or suppress them. This means for example, if an automated tasks/scripts can generate many reports that are shown to the user without any way to control error handling.

When used in operators it prevents the Python script from raising an exception form the error as it should do, showing a popup instead.

Definition at line 1041 of file wm_event_system.cc.

References BKE_report(), BKE_report_print_level_set(), BKE_reports_free(), BKE_reports_init(), RPT_PRINT, RPT_STORE, RPT_WARNING, and WM_reports_from_reports_move().

Referenced by action_preview_render_prepare(), button_activate_state(), cachefile_layer_add_exec(), dpaint_bake_endjob(), blender::io::alembic::export_startjob(), fmodifier_reorder(), import_endjob(), is_compositing_possible(), lineart_bake_common(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_invoke(), ui_but_paste_color(), ui_but_paste_normalized_vector(), ui_but_paste_numeric_array(), ui_but_paste_numeric_value(), ui_do_but_HOTKEYEVT(), wm_draw_region_buffer_create(), WM_global_reportf(), wm_xr_disable_passthrough(), and wm_xr_error_handler().

◆ WM_global_reportf()

◆ wm_handler_fileselect_call()

eHandlerActionFlag wm_handler_fileselect_call ( bContext * C,
ListBase * handlers,
wmEventHandler_Op * handler,
const wmEvent * event )
static

◆ wm_handler_fileselect_do()

eHandlerActionFlag wm_handler_fileselect_do ( bContext * C,
ListBase * handlers,
wmEventHandler_Op * handler,
int val )
static

File-select handlers are only in the window queue, so it's safe to switch screens or area types.

Definition at line 2831 of file wm_event_system.cc.

References ARegion::alignment, wmEventHandler_Op::area, bScreen::areabase, BKE_area_find_region_type(), BKE_report(), BKE_report_print_level_set(), BLI_assert, BLI_findindex(), BLI_listbase_is_single(), BLI_remlink(), C, wmOperatorType::cancel, wmEventHandler_Op::context, copy_v2_v2_int(), CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_window(), CTX_wm_window_set(), ED_area_do_refresh(), ED_area_prevspace(), ED_fileselect_params_to_userdef(), ED_fileselect_set_params_from_userdef(), ED_screen_full_prevspace(), ED_screen_temp_space_open(), ED_undo_grouped_push_op(), ED_undo_push_op(), wmWindow::eventstate, EVT_FILESELECT_CANCEL, EVT_FILESELECT_EXEC, EVT_FILESELECT_EXTERNAL_CANCEL, EVT_FILESELECT_FULL_OPEN, wmOperatorType::exec, ListBase::first, ARegion::flag, wmOperatorType::flag, ScrArea::full, wmEventHandler_Op::head, IFACE_, ReportList::list, LISTBASE_FOREACH, SpaceFile::op, wmEventHandler_Op::op, wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_RETVAL_CHECK, OPTYPE_UNDO, OPTYPE_UNDO_GROUPED, wmEventHandler_Op::region, wmOperator::reports, RGN_ALIGN_BOTTOM, RGN_FLAG_HIDDEN, RGN_TYPE_HEADER, RPT_ERROR, RPT_WARNING, wmWindowManager::runtime, SPACE_FILE, ScrArea::spacedata, ScrArea::spacetype, wmOperator::type, U, UI_popup_menu_reports(), wmEventHandler_Op::win, wmWindowManager::windows, wm_cursor_position_get(), wm_event_free_handler(), WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, wm_handler_op_context(), wm_operator_free_for_fileselect(), WM_operator_last_properties_store(), wm_operator_reports(), WM_reports_from_reports_move(), wm_window_close(), WM_window_get_active_screen(), WM_window_is_temp_screen(), wm_window_make_drawable(), wmEvent::xy, and xy.

Referenced by WM_event_add_fileselect(), and wm_handler_fileselect_call().

◆ wm_handler_op_context()

void wm_handler_op_context ( bContext * C,
wmEventHandler_Op * handler,
const wmEvent * event )
static

◆ wm_handler_op_context_get_if_valid()

◆ wm_handler_operator_call()

eHandlerActionFlag wm_handler_operator_call ( bContext * C,
ListBase * handlers,
wmEventHandler * handler_base,
wmEvent * event,
PointerRNA * properties,
const char * kmi_idname )
static
Warning
this function removes a modal handler, when finished.

Definition at line 2617 of file wm_event_system.cc.

References BLI_listbase_is_empty(), BLI_remlink(), C, CLOG_ERROR, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_window(), wmGizmo::flag, wmGizmoGroupType::flag, bToolRef_Runtime::gizmo_group, wmGizmoGroupType::gzmap_params, wmEventHandler_Op::head, wmOperator::idname, ReportList::list, wmOperatorType::modalkeymap, NC_SPACE, ND_SPACE_INFO_REPORT, wmEventHandler_Op::op, wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RETVAL_CHECK, OPERATOR_RUNNING_MODAL, wmOperator::opm, OPTYPE_UNDO, ot, wmOperator::reports, bToolRef::runtime, wmEventHandler::type, wmOperator::type, WM_cursor_grab_disable(), WM_event_add_notifier(), wm_event_always_pass(), wm_event_free_handler(), wm_event_modalkeymap_begin(), wm_event_modalkeymap_end(), WM_gizmo_group_type_ensure_ptr_ex(), WM_GIZMO_OPERATOR_TOOL_INIT, WM_gizmogroup_ensure_init(), WM_gizmogrouptype_find(), WM_GIZMOGROUPTYPE_TOOL_INIT, wm_gizmomap_highlight_get(), wm_gizmomaps_handled_modal_update(), WM_gizmomaptype_ensure(), WM_gizmomaptype_group_init_runtime_with_region(), WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, WM_HANDLER_HANDLED, WM_HANDLER_MODAL, wm_handler_op_context(), WM_HANDLER_TYPE_GIZMO, WM_HANDLER_TYPE_KEYMAP, WM_HANDLER_TYPE_OP, WM_LOG_EVENTS, wm_operator_check_locked_interface(), wm_operator_finished(), WM_operator_free(), wm_operator_invoke(), WM_operator_properties_free(), wm_operator_register_active_id(), wm_operator_reports(), wm_operator_undo_active_id(), WM_operatortype_find(), wm_region_mouse_co(), WM_reports_from_reports_move(), WM_toolsystem_ref_from_context(), WM_toolsystem_ref_properties_init_for_keymap(), and WM_window_status_area_tag_redraw().

Referenced by wm_handlers_do_intern(), wm_handlers_do_keymap_with_gizmo_handler(), and wm_handlers_do_keymap_with_keymap_handler().

◆ wm_handler_operator_insert()

void wm_handler_operator_insert ( wmWindow * win,
wmEventHandler_Op * handler )
static

◆ wm_handler_ui_call()

◆ wm_handlers_do()

◆ wm_handlers_do_gizmo_handler()

eHandlerActionFlag wm_handlers_do_gizmo_handler ( bContext * C,
wmWindowManager * wm,
wmEventHandler_Gizmo * handler,
wmEvent * event,
const bool always_pass,
ListBase * handlers,
const bool do_debug_handler )
static

◆ wm_handlers_do_intern()

eHandlerActionFlag wm_handlers_do_intern ( bContext * C,
wmWindow * win,
wmEvent * event,
ListBase * handlers )
static

◆ wm_handlers_do_keymap_with_gizmo_handler()

eHandlerActionFlag wm_handlers_do_keymap_with_gizmo_handler ( bContext * C,
wmEvent * event,
ListBase * handlers,
wmEventHandler_Gizmo * handler,
wmGizmoGroup * gzgroup,
wmKeyMap * keymap,
const bool do_debug_handler,
bool * r_keymap_poll )
static

◆ wm_handlers_do_keymap_with_keymap_handler()

◆ WM_locked_interface_set()

◆ WM_locked_interface_set_with_flags()

◆ WM_main_add_notifier()

void WM_main_add_notifier ( uint type,
void * reference )

Definition at line 404 of file wm_event_system.cc.

References ListBase::first, G_MAIN, Main::wm, and WM_event_add_notifier_ex().

Referenced by action_unlink_exec(), blender::ed::asset_browser::AssetCatalogTreeView::activate_catalog_by_id(), blender::ed::viewer_path::activate_geometry_node(), ANIM_armature_bonecoll_remove_from_index(), armature_circle_select(), armature_select_linked_impl(), blender::ed::asset::asset_clear_exec(), blender::ed::asset::asset_mark_exec(), blender::ed::space_node::backimage_fit_exec(), blender::ed::space_node::backimage_zoom_exec(), blender::ed::object::bake_simulation::bake_geometry_nodes_endjob(), blender::ed::object::base_active_refresh(), bone_collection_assign_exec(), bone_collection_create_and_assign_exec(), bpy_app_debug_value_set(), bpy_batch_remove(), bpy_orphans_purge(), bpy_rna_region_from_string(), blender::ed::sculpt_paint::brush_asset_activate_exec(), blender::ed::sculpt_paint::brush_asset_delete_exec(), blender::ed::sculpt_paint::brush_asset_edit_metadata_exec(), blender::ed::sculpt_paint::brush_asset_load_preview_exec(), blender::ed::sculpt_paint::brush_asset_revert_exec(), blender::ed::sculpt_paint::brush_asset_save_as_exec(), blender::ed::sculpt_paint::brush_asset_save_exec(), brush_scale_size_exec(), cachefile_layer_add_exec(), cachefile_layer_move_exec(), cachefile_layer_remove_exec(), blender::ed::asset::catalog_add(), blender::ed::asset::catalog_move(), blender::ed::asset::catalog_remove(), blender::ed::asset::catalog_rename(), blender::ed::asset::list::AssetList::clear(), blender::ed::asset::list::AssetList::clear_current_file_assets(), blender::ed::outliner::collection_duplicate_exec(), blender::ed::outliner::collection_flag_exec(), blender::ed::outliner::collection_hierarchy_delete_exec(), blender::ed::outliner::collection_instance_exec(), blender::ed::outliner::collection_isolate_exec(), blender::ed::outliner::collection_link_exec(), blender::ed::outliner::collection_new_exec(), blender::ed::outliner::collection_objects_select_exec(), blender::ed::outliner::collection_view_layer_exec(), blender::ed::outliner::collection_visibility_exec(), blender::ed::space_node::compo_updatejob(), blender::ed::object::constraint_copy_for_object(), blender::ed::object::constraint_copy_for_pose(), blender::ed::object::constraint_link(), blender::ed::object::constraint_move_to_index(), convert_action_exec(), copy_particle_systems_to_object(), blender::ed::animrig::create_pose_asset_local(), blender::ed::animrig::create_pose_asset_user_library(), blender::ed::curves::convert_from_particle_system::curves_convert_from_particle_system_exec(), blender::ed::curves::convert_to_particle_system::curves_convert_to_particle_system_exec(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), blender::ed::object::bake_simulation::delete_single_bake_exec(), do_lasso_select_armature(), do_lasso_select_objects(), do_lasso_select_pose(), blender::ed::asset_browser::AssetCatalogDropTarget::drop_asset_catalog_into_catalog(), blender::ed::asset_browser::AssetCatalogDropTarget::drop_assets_into_catalog(), ED_fileselect_activate_asset_catalog(), ED_fileselect_activate_by_id(), ED_fileselect_activate_by_relpath(), ED_fileselect_clear(), ED_fileselect_clear_main_assets(), ED_fileselect_deselect_all(), ED_gpencil_set_active_channel(), ED_id_rename(), ED_mesh_color_add(), ED_mesh_shapes_join_objects_exec(), ED_mesh_uv_add(), ED_node_set_active(), ED_node_set_active_viewer_key(), ED_node_tree_pop(), ED_node_tree_push(), ED_node_tree_start(), ED_object_particle_edit_mode_enter_ex(), ED_object_particle_edit_mode_exit_ex(), ED_object_texture_paint_mode_enter_ex(), ED_object_texture_paint_mode_exit_ex(), ED_pose_bone_select_tag_update(), ED_scene_view_layer_delete(), ED_space_image_set(), ED_undo_push(), ED_view3d_camera_autokey(), ED_view3d_camera_lock_sync(), ED_view3d_persp_switch_from_camera(), EDBM_selectmode_disable(), EDBM_selectmode_set_multi_ex(), edbm_selectmode_sync_multi_ex(), EDBM_selectmode_toggle_multi(), edbm_shortest_path_pick_ex(), EDBM_update(), edgering_select(), blender::ed::object::editmode_enter_ex(), blender::ed::object::editmode_exit_ex(), blender::ed::sculpt_paint::AddOperationExecutor::execute(), blender::ed::sculpt_paint::CombOperationExecutor::execute(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::execute(), blender::ed::sculpt_paint::DeleteOperationExecutor::execute(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::execute(), blender::ed::sculpt_paint::PinchOperationExecutor::execute(), blender::ed::sculpt_paint::PuffOperationExecutor::execute(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::execute(), blender::ed::sculpt_paint::SlideOperationExecutor::execute(), blender::ed::sculpt_paint::SmoothOperationExecutor::execute(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::execute(), blender::ui::greasepencil::eyedropper_add_material(), blender::ui::greasepencil::eyedropper_grease_pencil_modal(), find_missing_files_exec(), blender::ed::geometry::geometry_attribute_add_exec(), blender::ed::geometry::geometry_attribute_convert_exec(), blender::ed::geometry::geometry_attribute_remove_exec(), blender::ed::geometry::geometry_color_attribute_add_exec(), blender::ed::geometry::geometry_color_attribute_convert_exec(), blender::ed::geometry::geometry_color_attribute_duplicate_exec(), blender::ed::geometry::geometry_color_attribute_remove_exec(), blender::ed::geometry::geometry_color_attribute_set_render_exec(), ghost_event_proc(), gizmo_area_light_prop_matrix_set(), gizmo_empty_image_prop_matrix_set(), blender::ed::sculpt_paint::grease_pencil_fill_event_modal_map(), blender::ed::sculpt_paint::grease_pencil_fill_exit(), blender::ed::sculpt_paint::grease_pencil_fill_modal(), icon_preview_endjob(), blender::io::usd::import_endjob(), import_endjob(), blender::animrig::insert_key_to_keying_set_path(), blender::ed::object::lattice_add_to_selected_exec(), lib_id_override_editable_toggle_exec(), lineart_bake_endjob(), make_paths_absolute_exec(), make_paths_relative_exec(), blender::ed::object::material_active_index_set(), merge_actions_selection_exec(), mesh_uv_texture_remove_exec(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_modal(), blender::ed::object::modifier_copy_to_object(), blender::ed::object::modifier_move_to_index(), blender::ed::vse::modifier_set_active_exec(), blender::ed::object::modifiers_clear_exec(), nlaedit_disable_tweakmode(), blender::ed::space_node::node_activate_viewer_exec(), obedit_circle_select(), blender::ed::object::object_duplicates_make_real_exec(), blender::ed::object::object_grease_pencil_add_exec(), blender::ed::spreadsheet::InstancesTreeViewItem::on_activate(), blender::ed::spreadsheet::ViewerDataTreeItem::on_activate(), blender::ed::spreadsheet::ViewerPathTreeViewItem::on_activate(), blender::ed::outliner::outliner_hide_exec(), blender::ed::outliner::outliner_orphans_purge_exec(), blender::ed::outliner::outliner_select_sync_to_edit_bone(), blender::ed::outliner::outliner_select_sync_to_pose_bone(), blender::ed::outliner::outliner_unhide_all_exec(), override_add_button_exec(), override_remove_button_exec(), pack_all_exec(), pack_islands_endjob(), blender::ed::object::bake_simulation::pack_single_bake_exec(), blender::ed::animrig::pose_asset_delete_exec(), blender::ed::animrig::pose_asset_modify_exec(), blender::ed::transform::posttrans_gpd_clean(), blender::ed::transform::posttrans_mask_clean(), preferences_asset_library_add_exec(), preferences_asset_library_remove_exec(), blender::ed::vse::preview_endjob(), proj_paint_add_slot(), blender::seq::proxy_endjob(), proxy_endjob(), ptcache_job_endjob(), rearrange_gpencil_channels(), render_endjob(), report_missing_files_exec(), rna_property_update(), save_image_op(), blender::ed::outliner::scene_drop_invoke(), screen_modal_action_end(), screen_opengl_render_end(), blender::ed::asset::screenshot_preview_exec(), blender::ed::sculpt_paint::dyntopo::sculpt_dynamic_topology_toggle_exec(), blender::ed::sculpt_paint::dyntopo::sculpt_sample_detail_size_modal(), blender::ed::spreadsheet::select_component_domain_invoke(), blender::ed::object::select_grouped_exec(), blender::ed::greasepencil::select_layer_channel(), blender::ed::greasepencil::select_set_mode_exec(), send_notifiers_after_node_tree_change(), blender::ed::object::shade_auto_smooth_exec(), blender::ed::object::shade_smooth_exec(), blender::ed::object::shaderfx_copy(), blender::ed::object::shaderfx_copy_exec(), blender::ed::object::shaderfx_link(), blender::ed::object::shaderfx_move_to_index(), blender::ed::object::bake_simulation::simulate_to_frame_endjob(), blender::ed::space_node::snode_bg_viewmove_modal(), solve_camera_freejob(), blender::ed::space_node::tag_update_id(), blender::ed::greasepencil::toggle_weight_tool_direction_exec(), track_markers_endjob(), blender::ed::outliner::tree_element_layer_collection_activate(), blender::ed::outliner::tree_element_master_collection_activate(), ui_rna_update_preferences_dirty(), unpack_all_exec(), blender::ed::object::bake_simulation::unpack_single_bake_exec(), blender::nodes::socket_items::ops::update_after_node_change(), uv_select_mode_exec(), uv_select_tag_update_for_object(), uv_shortest_path_pick_ex(), uvedit_pack_islands_multi(), uvedit_unwrap_multi(), view3d_collection_drop_copy_external_asset(), view3d_ob_drop_copy_external_asset(), view3d_smoothview_apply_and_finish_ex(), blender::ed::transform::viewRedrawPost(), blender::ed::object::visual_geometry_to_objects_exec(), blender::ed::greasepencil::weight_sample_invoke(), weight_sample_invoke(), blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh(), WM_file_tag_modified(), WM_operator_stack_clear(), wm_set_working_color_space_exec(), wm_window_close(), wm_window_timers_process(), wm_xr_session_gpu_binding_context_create(), wm_xr_session_gpu_binding_context_destroy(), and wm_xr_session_update_screen().

◆ WM_main_remap_editor_id_reference()

◆ WM_main_remove_notifier_reference()

void WM_main_remove_notifier_reference ( const void * reference)

Clear notifiers by reference, Used so listeners don't act on freed data.

Definition at line 412 of file wm_event_system.cc.

References BLI_assert, BLI_gset_remove(), BLI_remlink(), ListBase::first, G_MAIN, LISTBASE_FOREACH_MUTABLE, MEM_freeN(), wmWindowManager::runtime, UNUSED_VARS_NDEBUG, Main::wm, WM_msg_id_remove(), and wm_notifier_clear().

Referenced by WM_init().

◆ WM_menu_name_call()

◆ wm_notifier_clear()

void wm_notifier_clear ( wmNotifier * note)
static

◆ wm_notifier_is_clear()

bool wm_notifier_is_clear ( const wmNotifier * note)
static

◆ WM_operator_call()

wmOperatorStatus WM_operator_call ( bContext * C,
wmOperator * op )

Definition at line 1437 of file wm_event_system.cc.

References C, and WM_operator_call_ex().

Referenced by WM_event_add().

◆ WM_operator_call_ex()

wmOperatorStatus WM_operator_call_ex ( bContext * C,
wmOperator * op,
bool store )

For running operators with frozen context (modal handlers, menus).

Parameters
storeStore properties for re-use when an operator has finished (unless PROP_SKIP_SAVE is set).
Warning
do not use this within an operator to call itself! #29537.

Definition at line 1432 of file wm_event_system.cc.

References C, and wm_operator_exec().

Referenced by dialog_exec_cb(), WM_event_add(), WM_operator_call(), and wm_operator_ui_popup_ok().

◆ wm_operator_call_internal()

◆ WM_operator_call_notest()

wmOperatorStatus WM_operator_call_notest ( bContext * C,
wmOperator * op )

This is intended to be used when an invoke operator wants to call exec on itself and is basically like running op->type->exec() directly, no poll checks no freeing, since we assume whoever called invoke will take care of that

Definition at line 1442 of file wm_event_system.cc.

References C, and wm_operator_exec_notest().

Referenced by op_generic_value_invoke(), WM_event_add(), and WM_operator_filesel().

◆ WM_operator_call_py()

wmOperatorStatus WM_operator_call_py ( bContext * C,
wmOperatorType * ot,
blender::wm::OpCallContext context,
PointerRNA * properties,
ReportList * reports,
bool is_undo )

Similar to WM_operator_name_call called with blender::wm::OpCallContext::ExecDefault context.

  • wmOperatorType is used instead of operator name since python already has the operator type.
  • poll() must be called by python before this runs.
  • reports can be passed to this function (so python can report them as exceptions).

Definition at line 1982 of file wm_event_system.cc.

References C, CTX_wm_manager(), wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, ot, and wm_operator_call_internal().

Referenced by pyop_call(), and WM_event_add().

◆ wm_operator_check_locked_interface()

bool wm_operator_check_locked_interface ( bContext * C,
wmOperatorType * ot )
static

Check whether operator is allowed to run in case interface is locked, If interface is unlocked, will always return truth.

Definition at line 6460 of file wm_event_system.cc.

References C, CTX_wm_manager(), OPTYPE_LOCK_BYPASS, ot, and wmWindowManager::runtime.

Referenced by wm_handler_operator_call().

◆ wm_operator_create()

◆ wm_operator_exec()

◆ wm_operator_exec_notest()

wmOperatorStatus wm_operator_exec_notest ( bContext * C,
wmOperator * op )
static

Simply calls exec with basic checks.

Definition at line 1418 of file wm_event_system.cc.

References C, wmOperatorType::exec, OPERATOR_CANCELLED, OPERATOR_RETVAL_CHECK, and wmOperator::type.

Referenced by WM_operator_call_notest().

◆ WM_operator_find_modal_by_type()

wmOperator * WM_operator_find_modal_by_type ( wmWindow * win,
const wmOperatorType * ot )

Return the first modal operator of type ot or NULL.

Definition at line 5167 of file wm_event_system.cc.

References LISTBASE_FOREACH, wmWindow::modalhandlers, wmEventHandler_Op::op, ot, wmOperator::type, and WM_HANDLER_TYPE_OP.

Referenced by blender::ed::transform::gizmo_modal().

◆ wm_operator_finished()

◆ wm_operator_free_for_fileselect()

void wm_operator_free_for_fileselect ( wmOperator * file_operator)
static

◆ wm_operator_invoke()

wmOperatorStatus wm_operator_invoke ( bContext * C,
wmOperatorType * ot,
const wmEvent * event,
PointerRNA * properties,
ReportList * reports,
const bool poll_only,
bool use_last_properties )
static

◆ WM_operator_is_repeat()

bool WM_operator_is_repeat ( const bContext * C,
const wmOperator * op )

◆ WM_operator_name_call()

wmOperatorStatus WM_operator_name_call ( bContext * C,
const char * opstring,
blender::wm::OpCallContext context,
PointerRNA * properties,
const wmEvent * event )

◆ WM_operator_name_call_ptr()

wmOperatorStatus WM_operator_name_call_ptr ( bContext * C,
wmOperatorType * ot,
blender::wm::OpCallContext context,
PointerRNA * properties,
const wmEvent * event )

Invokes operator in context.

Parameters
eventOptionally pass in an event to use when context uses one of the WM_OP_INVOKE_* values. When left unset the wmWindow.eventstate will be used, this can cause problems for operators that read the events type - for example, storing the key that was pressed so as to be able to detect its release. In these cases it's necessary to forward the current event being handled.

Definition at line 1926 of file wm_event_system.cc.

References BLI_assert, C, ot, wm_operator_call_internal(), and WM_operatortype_find().

Referenced by add_driver_button_menu_exec(), bone_mouse_select_menu(), blender::ed::object::collection_exporter_export(), constraint_reorder(), doc_view_manual_ui_context_exec(), file_browse_invoke(), file_directory_enter_handle(), file_external_operation_exec(), ghost_event_proc(), blender::ed::outliner::id_remap_fn(), image_file_browse_invoke(), blender::ed::outliner::lib_relocate(), blender::ed::space_node::link_drag_search_exec_fn(), blender::ed::object::mode_set_ex(), blender::seq::modifier_reorder(), modifier_reorder(), blender::ed::vse::move_strips(), blender::ed::space_node::node_add_group_asset_invoke(), blender::ed::space_node::node_swap_group_asset_invoke(), object_mouse_select_menu(), blender::ed::asset::shelf::AssetViewItem::on_activate(), blender::ed::asset::shelf::AssetDragController::on_drag_start(), operator_search_exec_fn(), blender::ed::outliner::outliner_id_relocate_invoke(), blender::ed::outliner::outliner_item_drag_drop_invoke(), preferences_extension_url_drop_invoke(), shaderfx_reorder(), blender::ed::transform::special_aftertrans_update__node(), toolsystem_ref_set_by_brush_type(), blender::ed::transform::transform_from_gizmo_invoke(), blender::ed::space_node::tree_path_handle_func(), ui_but_anim_decorate_cb(), ui_handler_wait_for_input(), view3d_interactive_add_modal(), wm_drop_import_file_exec(), WM_event_add(), WM_gizmo_operator_invoke(), WM_menu_name_call(), WM_operator_name_call(), WM_operator_name_call_ptr_with_depends_on_cursor(), WM_operator_name_call_with_properties(), wm_test_autorun_revert_action_exec(), and WM_toolsystem_ref_set_by_id_ex().

◆ WM_operator_name_call_ptr_with_depends_on_cursor()

◆ WM_operator_name_call_with_properties()

◆ WM_operator_name_poll()

bool WM_operator_name_poll ( bContext * C,
const char * opstring )

◆ WM_operator_poll()

◆ WM_operator_poll_context()

◆ WM_operator_poll_or_report_error()

bool WM_operator_poll_or_report_error ( bContext * C,
wmOperatorType * ot,
ReportList * reports )

Check poll succeeds or returns false & report an error.

This can be used from wmOperatorType::exec for operators that use the file-selector. It's needed in this case because the context can be changed once the file-selector has been activated.

Returns
true or false & report an error.
Note
It's best practice that ot->poll sets the "poll message", otherwise a generic (unhelpful) error will be used.

Definition at line 1117 of file wm_event_system.cc.

References BKE_reportf(), C, CTX_IFACE_, CTX_wm_operator_poll_msg_clear(), CTX_wm_operator_poll_msg_get(), IFACE_, MEM_freeN(), ot, RPT_ERROR, and WM_operator_poll().

Referenced by paste_from_file_exec(), and WM_event_add().

◆ WM_operator_region_active_win_set()

void WM_operator_region_active_win_set ( bContext * C)

Sets the active region for this space from the context.

See also
BKE_area_find_region_active_win

Definition at line 1177 of file wm_event_system.cc.

References BLI_findindex(), C, CTX_wm_area(), CTX_wm_region(), ScrArea::region_active_win, ScrArea::regionbase, ARegion::regiontype, and RGN_TYPE_WINDOW.

Referenced by wm_operator_finished().

◆ wm_operator_register_active_id()

intptr_t wm_operator_register_active_id ( const wmWindowManager * wm)
static

◆ wm_operator_register_check()

bool wm_operator_register_check ( wmWindowManager * wm,
wmOperatorType * ot )
static

This function is mainly to check that the rules for freeing an operator are kept in sync.

Definition at line 1253 of file wm_event_system.cc.

References wmWindowManager::op_undo_depth, OPTYPE_REGISTER, OPTYPE_UNDO, and ot.

Referenced by wm_operator_finished().

◆ WM_operator_repeat()

wmOperatorStatus WM_operator_repeat ( bContext * C,
wmOperator * op )

Execute this operator again, put here so it can share above code

Definition at line 1447 of file wm_event_system.cc.

References C, wmOperator::flag, OP_IS_REPEAT, ret, and wm_operator_exec().

Referenced by ED_undo_operator_repeat(), repeat_history_exec(), wm_block_redo_cb(), and WM_event_add().

◆ WM_operator_repeat_check()

bool WM_operator_repeat_check ( const bContext * C,
wmOperator * op )
Returns
true if WM_operator_repeat can run. Simple check for now but may become more involved. To be sure the operator can run call WM_operator_poll(C, op->type) also, since this call checks if WM_operator_repeat() can run at all, not that it WILL run at any time.

Definition at line 1463 of file wm_event_system.cc.

References wmOperatorType::exec, LISTBASE_FOREACH, wmOperatorType::macro, wmOperator::opm, wmOperator::type, and WM_operatortype_find().

Referenced by ED_undo_operator_repeat(), last_redo_poll(), repeat_history_invoke(), template_operator_property_buts_draw_single(), uiTemplateOperatorRedoProperties(), and WM_event_add().

◆ WM_operator_repeat_last()

wmOperatorStatus WM_operator_repeat_last ( bContext * C,
wmOperator * op )

Definition at line 1455 of file wm_event_system.cc.

References C, wmOperator::flag, OP_IS_REPEAT_LAST, ret, and wm_operator_exec().

Referenced by repeat_last_exec(), and WM_event_add().

◆ wm_operator_reports()

◆ WM_operator_ui_poll()

◆ wm_operator_undo_active_id()

intptr_t wm_operator_undo_active_id ( const wmWindowManager * wm)
static

Return the active undo step as an identifier for the purpose of comparison only.

Definition at line 1079 of file wm_event_system.cc.

References wmWindowManager::runtime.

Referenced by wm_handler_operator_call(), wm_operator_exec(), and wm_operator_invoke().

◆ wm_paintcursor_tag()

void wm_paintcursor_tag ( bContext * C,
wmWindowManager * wm,
ARegion * region )
static

◆ wm_paintcursor_test()

void wm_paintcursor_test ( bContext * C,
const wmEvent * event )
static

Called on mouse-move, check updates for wm->runtime->paintcursors.

Note
Context was set on active area and region.

Definition at line 3870 of file wm_event_system.cc.

References bScreen::active_region, area_event_inside(), BLI_rcti_isect_pt_v(), C, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_screen(), wmEvent::prev_xy, region_event_inside(), wmWindowManager::runtime, ARegion::winrct, and wm_paintcursor_tag().

Referenced by wm_event_do_handlers().

◆ wm_region_mouse_co()

◆ wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak()

void wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak ( wmWindow * win)
static

This isn't very nice but needed to redraw gizmos which are hidden while tweaking, See WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK for details.

Definition at line 1589 of file wm_event_system.cc.

References ED_region_tag_redraw(), ED_screen_areas_iter, LISTBASE_FOREACH, UNLIKELY, WM_gizmomap_tag_delay_refresh_for_tweak_check(), and WM_window_get_active_screen().

Referenced by wm_event_do_handlers().

◆ WM_report_banner_show()

◆ WM_report_banners_cancel()

void WM_report_banners_cancel ( Main * bmain)

Hide all currently displayed banners and abort their timer.

Definition at line 1010 of file wm_event_system.cc.

References BKE_reports_clear(), ListBase::first, wmWindowManager::runtime, Main::wm, and WM_event_timer_remove().

Referenced by fluid_bake_exec(), fluid_bake_invoke(), and fluid_free_exec().

◆ WM_reports_from_reports_move()

void WM_reports_from_reports_move ( wmWindowManager * wm,
ReportList * reports )

Move a whole list of reports to the WM ReportList, and show the banner.

Note
In case the given reports is a nullptr, or has its RPT_OP_HOLD flag set, this function does nothing.
The list of reports from given reports is moved into the list of WM's reports, so the given reports will be empty after calling this function. The reports ReportList data itself is not freed or cleared though, and remains fully usable after this call.

\params reports The ReportList from which to move reports to the WM one, may be nullptr. \params wm the WindowManager to add given reports to. If nullptr, the first WM of current G_MAIN will be used.

Definition at line 1024 of file wm_event_system.cc.

References BKE_reports_move_to_reports(), BLI_listbase_is_empty(), ReportList::flag, G_MAIN, ReportList::list, RPT_OP_HOLD, wmWindowManager::runtime, and WM_report_banner_show().

Referenced by handle_load_file(), blender::io::hydra::USDSceneDelegate::populate(), WM_global_report(), wm_handler_fileselect_do(), wm_handler_operator_call(), wm_jobs_reports_update(), and wm_operator_reports().

◆ wm_tablet_data_from_ghost()

◆ WM_window_cursor_keymap_status_get()

const char * WM_window_cursor_keymap_status_get ( const wmWindow * win,
int button_index,
int type_index )

Definition at line 6607 of file wm_event_system.cc.

References wmWindow::cursor_keymap_status, and CursorKeymapInfo::text.

Referenced by uiTemplateInputStatus().

◆ WM_window_cursor_keymap_status_refresh()

void WM_window_cursor_keymap_status_refresh ( bContext * C,
wmWindow * win )

◆ WM_window_modal_keymap_status_draw()

◆ WM_window_status_area_find()

ScrArea * WM_window_status_area_find ( wmWindow * win,
bScreen * screen )

◆ WM_window_status_area_tag_redraw()