Blender V4.3
wm_event_system.cc File Reference
#include <cmath>
#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_blenlib.h"
#include "BLI_ghash.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_lib_remap.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_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 "WM_api.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)
 

Typedefs

using eHandlerActionFlag
 

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)
 
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 int wm_operator_call_internal (bContext *C, wmOperatorType *ot, PointerRNA *properties, ReportList *reports, const wmOperatorCallContext 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_context (bContext *C, wmOperatorType *ot, short 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 int 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 int wm_operator_exec (bContext *C, wmOperator *op, const bool repeat, const bool store)
 
static int wm_operator_exec_notest (bContext *C, wmOperator *op)
 
int WM_operator_call_ex (bContext *C, wmOperator *op, const bool store)
 
int WM_operator_call (bContext *C, wmOperator *op)
 
int WM_operator_call_notest (bContext *C, wmOperator *op)
 
int WM_operator_repeat (bContext *C, wmOperator *op)
 
int 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 int wm_operator_invoke (bContext *C, wmOperatorType *ot, const wmEvent *event, PointerRNA *properties, ReportList *reports, const bool poll_only, bool use_last_properties)
 
int WM_operator_name_call_ptr (bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
 
int WM_operator_name_call (bContext *C, const char *opstring, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
 
bool WM_operator_name_poll (bContext *C, const char *opstring)
 
int WM_operator_name_call_with_properties (bContext *C, const char *opstring, wmOperatorCallContext context, IDProperty *properties, const wmEvent *event)
 
void WM_menu_name_call (bContext *C, const char *menu_name, short context)
 
int WM_operator_call_py (bContext *C, wmOperatorType *ot, wmOperatorCallContext 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_set_locked_interface (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 int wm_event_type_from_ghost_key (GHOST_TKey key)
 
static int wm_event_type_from_ghost_button (const GHOST_TButton button, const int 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
wmEventwm_event_add_ex (wmWindow *win, const wmEvent *event_to_add, const wmEvent *event_to_add_after)
 
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_report (eReportType type, const char *message)
 
void WM_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, wmOperatorCallContext opcontext, PointerRNA *properties, const wmEvent *event, const char *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)
 
static bool handler_region_v2d_mask_test (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_area_handler (ListBase *handlers, void *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, 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 3040 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 97 of file wm_event_system.cc.

◆ WM_HANDLER_CONTINUE

Typedef Documentation

◆ eHandlerActionFlag

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

Return value of handler-operator call.

Definition at line 107 of file wm_event_system.cc.

Function Documentation

◆ area_event_inside()

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

◆ ENUM_OPERATORS()

ENUM_OPERATORS ( eHandlerActionFlag ,
WM_HANDLER_MODAL  )

◆ event_or_prev_in_rect()

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

◆ handler_region_v2d_mask_test()

static bool handler_region_v2d_mask_test ( const ARegion * region,
const wmEvent * event )
static

◆ keymap_handler_log_action_str()

static const char * keymap_handler_log_action_str ( const eHandlerActionFlag action)
static

Definition at line 3003 of file wm_event_system.cc.

Referenced by wm_handlers_do_keymap_with_keymap_handler().

◆ keymap_handler_log_kmi_event_str()

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

◆ keymap_handler_log_kmi_op_str()

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

◆ note_cmp_for_queue_fn()

static 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 339 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_ex().

◆ note_hash_for_queue_fn()

static uint note_hash_for_queue_fn ( const void * ptr)
static

◆ region_event_inside()

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

◆ screen_temp_region_exists()

static 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 147 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()

static bool wm_action_not_handled ( const eHandlerActionFlag action)
static

Definition at line 2998 of file wm_event_system.cc.

References WM_HANDLER_CONTINUE.

Referenced by wm_event_do_handlers(), and wm_handlers_do().

◆ wm_event_add()

◆ WM_event_add_dropbox_handler()

◆ wm_event_add_ex()

wmEvent * wm_event_add_ex ( wmWindow * win,
const wmEvent * event_to_add,
const wmEvent * event_to_add_after )

Definition at line 172 of file wm_event_system.cc.

References BLI_addtail(), BLI_insertlinkafter(), and wmWindow::event_queue.

Referenced by wm_event_add().

◆ 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 4380 of file wm_event_system.cc.

References wmEventHandler_Op::area, BLI_assert, wmOperatorType::check, 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, wmWindow::modalhandlers, wmEventHandler_Op::op, wmEventHandler_Op::region, 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(), and WM_HANDLER_TYPE_OP.

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(), sequencer_add_image_strip_invoke(), sequencer_add_movie_strip_invoke(), sequencer_add_sound_strip_invoke(), sequencer_change_path_invoke(), 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(), 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 5735 of file wm_event_system.cc.

References ARRAY_SIZE, 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_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_kEventWindowDeactivate, GHOST_kNumEventTypes, GHOST_kTrackpadEventMagnify, GHOST_kTrackpadEventRotate, GHOST_kTrackpadEventScroll, GHOST_kTrackpadEventSmartMagnify, wmWindow::ime_data, wmWindow::ime_data_is_composing, wmTabletData::is_motion_absolute, GHOST_TEventKeyData::is_repeat, GHOST_TEventTrackpadData::isDirectionInverted, ISKEYBOARD_OR_BUTTON, GHOST_TEventKeyData::key, wmEvent::keymodifier, KM_ALT, KM_CTRL, 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, SET_FLAG_FROM_TEST, GHOST_TEventTrackpadData::subtype, GHOST_TEventButtonData::tablet, GHOST_TEventCursorData::tablet, wmEvent::tablet, wmEvent::type, UNLIKELY, USER_TRACKPAD_SCROLL_DIR_NATURAL, USER_TRACKPAD_SCROLL_DIR_TRADITIONAL, GHOST_TEventKeyData::utf8_buf, wmEvent::utf8_buf, wmEvent::val, WHEELDOWNMOUSE, WHEELUPMOUSE, wmWindowManager::winactive, WINDEACTIVATE, WM_capabilities_flag(), WM_CAPABILITY_TRACKPAD_PHYSICAL_DIRECTION, wm_cursor_position_from_ghost_screen_coords(), wm_event_add(), 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_LOG_HANDLERS, wm_stereo3d_mouse_offset_apply(), wm_tablet_data_from_ghost(), GHOST_TEventCursorData::x, GHOST_TEventTrackpadData::x, wmEvent::xy, and GHOST_TEventWheelData::z.

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

◆ 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 4809 of file wm_event_system.cc.

References BLI_addhead(), wmEventHandler_Keymap::head, wmEventHandler_Keymap::keymap, 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 4553 of file wm_event_system.cc.

References 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_modal_select_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(), 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_file_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(), sample_color_invoke(), blender::ed::space_node::sample_invoke(), screen_opengl_render_invoke(), screen_render_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(), sequencer_slip_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(), 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_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 387 of file wm_event_system.cc.

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

Referenced by achannel_nlatrack_solo_widget_cb(), 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(), 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(), 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(), 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::curves::curves_duplicate::delete_exec(), delete_exec(), delete_exec(), delete_fmodifier_cb(), delete_key_button_exec(), delete_key_using_keying_set(), delete_metaelems_exec(), 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(), do_object_box_select(), 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(), draw_channel_labels(), driverdropper_sample(), blender::ed::object::drop_geometry_nodes_invoke(), blender::ed::object::drop_named_material_invoke(), drop_world_exec(), blender::ed::object::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_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_join_objects_exec(), ED_mesh_shapes_join_objects_exec(), ED_mesh_uv_loop_reset(), ED_object_posemode_enter(), ED_object_posemode_exit(), ed_object_select_pick(), ed_object_select_pick_camera_track(), blender::ed::object::ED_object_shape_key_add(), ED_outliner_select_sync_from_outliner(), ED_scene_add(), ED_scene_sequencer_add(), ED_screen_animation_play(), ED_screen_animation_timer(), ED_space_clip_set_clip(), ED_space_clip_set_mask(), ED_space_image_set_mask(), ED_undo_gpencil_step(), 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_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_set_multi(), 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(), filepath_drop_exec(), DocumentImporter::finish(), 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_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(), 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_cyclical_set_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_reorder_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_paste_strokes_exec(), blender::ed::greasepencil::grease_pencil_primitive_update_view(), 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_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_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_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(), handle_number_input(), 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::insert_blank_frame_exec(), insert_key(), insert_key_button_exec(), insert_key_with_keyingset(), join_tracks_exec(), blender::ed::object::jump_to_object(), keyframe_jump_exec(), 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(), 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_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_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::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(), 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_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_file_exec(), blender::ed::space_node::node_add_group_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_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_hide_toggle_exec(), blender::ed::space_node::node_join_exec(), blender::ed::space_node::node_mouse_select(), blender::ed::space_node::node_options_toggle_exec(), blender::ed::space_node::node_panel_toggle_button_cb(), blender::ed::space_node::node_parent_set_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(), 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(), 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::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::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_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(), 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_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_opengl_render_end(), screen_opengl_render_exec(), screen_opengl_render_modal(), 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(), segment_speed_set_exec(), blender::ed::curves::select_all_exec(), blender::ed::greasepencil::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(), 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(), select_orientation_exec(), select_previous_exec(), blender::ed::curves::select_random_exec(), blender::ed::greasepencil::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(), seq_prefetch_wm_notify(), seq_prefetch_wm_notify(), sequencer_add_duplicate_exec(), sequencer_add_effect_strip_exec(), sequencer_add_image_strip_exec(), sequencer_add_mask_strip_exec(), sequencer_add_movie_strip_exec(), sequencer_add_movieclip_strip_exec(), sequencer_add_scene_strip_exec(), sequencer_add_scene_strip_new_exec(), sequencer_add_sound_strip_exec(), sequencer_change_effect_input_exec(), sequencer_change_effect_type_exec(), sequencer_change_path_exec(), sequencer_change_scene_exec(), sequencer_clipboard_paste_exec(), sequencer_connect_exec(), sequencer_de_select_all_exec(), sequencer_delete_exec(), sequencer_delete_strip_data(), sequencer_disconnect_exec(), sequencer_enable_proxies_exec(), sequencer_gap_insert_exec(), sequencer_gap_remove_exec(), sequencer_lock_exec(), sequencer_meta_make_exec(), sequencer_meta_separate_exec(), sequencer_meta_toggle_exec(), sequencer_mute_exec(), sequencer_offset_clear_exec(), sequencer_preview_add_sound(), sequencer_reassign_inputs_exec(), sequencer_refresh_all_exec(), sequencer_reload_exec(), sequencer_rename_channel_invoke(), sequencer_rendersize_exec(), sequencer_retiming_data_show_exec(), sequencer_retiming_freeze_frame_add_exec(), sequencer_retiming_key_add_exec(), sequencer_retiming_key_delete_exec(), sequencer_retiming_key_select_exec(), sequencer_retiming_reset_exec(), sequencer_retiming_select_all_exec(), sequencer_retiming_select_linked_time(), sequencer_retiming_transition_add_exec(), sequencer_scene_frame_range_update_exec(), sequencer_select_do_updates(), sequencer_select_exec(), sequencer_select_grouped_exec(), sequencer_select_handles_exec(), sequencer_select_inverse_exec(), sequencer_select_less_exec(), sequencer_select_linked_exec(), sequencer_select_linked_pick_invoke(), sequencer_select_more_exec(), sequencer_select_side_exec(), sequencer_select_side_of_frame_exec(), sequencer_separate_images_exec(), sequencer_set_2d_cursor_exec(), sequencer_set_range_to_strips_exec(), sequencer_slip_exec(), sequencer_slip_invoke(), sequencer_slip_modal(), sequencer_snap_exec(), sequencer_split_exec(), sequencer_strip_color_tag_set_exec(), sequencer_strip_jump_exec(), sequencer_strip_transform_clear_exec(), sequencer_strip_transform_fit_exec(), sequencer_swap_data_exec(), sequencer_swap_exec(), sequencer_swap_inputs_exec(), sequencer_unlock_exec(), sequencer_unmute_exec(), blender::ed::object::set_active_group_exec(), blender::ed::curves::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_lock_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(), slot_new_for_object_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(), solve_camera_invoke(), sort_bmelem_flag(), space_workspace_cycle_invoke(), special_aftertrans_update__mask(), special_aftertrans_update__movieclip(), special_aftertrans_update__movieclip_for_curves(), special_aftertrans_update__nla(), sphere_project_exec(), spin_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(), stitch_exit(), stitch_invoke(), blender::ed::object::stretchto_reset_exec(), strip_modifier_add_exec(), strip_modifier_copy_exec(), strip_modifier_equalizer_redefine_exec(), strip_modifier_move_exec(), strip_modifier_remove_exec(), 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::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(), 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(), 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_sequence_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_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(), uv_from_view_exec(), uv_hide_exec(), uv_mark_seam_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_align(), 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(), 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(), viewRedrawForce(), viewRedrawPost(), 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_event_do_handlers(), wm_event_do_notifiers(), wm_file_read_opwrap(), wm_file_read_post(), wm_handler_operator_call(), 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_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_simulate()

◆ wm_event_add_trackpad()

static 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 )

Set the custom-data (and own the pointer), free with MEM_freeN.

Definition at line 4478 of file wm_event_system.cc.

References wmEvent_ConsecutiveData::custom_data, wmWindow::event_queue_consecutive_gesture_data, MEM_mallocN, and WM_event_consecutive_data_free().

Referenced by ED_view3d_autodist_last_set().

◆ wm_event_cursor_other_windows()

◆ wm_event_cursor_store()

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

Definition at line 6392 of file wm_event_system.cc.

References CursorKeymapInfo_State::modifier, and state.

Referenced by WM_window_cursor_keymap_status_refresh().

◆ wm_event_custom_clear()

static 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 4002 of file wm_event_system.cc.

References wmWindow::addmousemove, area_event_inside(), AREA_FLAG_ACTIONZONES_UPDATE, BKE_scene_get_depsgraph(), BKE_sound_scene_playing(), BKE_sound_sync_scene(), BLI_assert, BLI_remlink(), CLOG_INFO, copy_v2_v2_int(), CTX_data_main(), CTX_data_scene(), CTX_data_scene_set(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region_set(), CTX_wm_screen(), CTX_wm_screen_set(), CTX_wm_window(), CTX_wm_window_set(), wmEvent::customdata, DEG_get_evaluated_scene(), depsgraph, ED_area_azones_update(), ED_screen_animation_play(), ED_screen_animation_playing(), ED_screen_areas_iter, ED_screen_set_active_region(), ED_undo_is_state_valid(), ED_update_for_newframe(), wmWindow::event_queue, 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, wmWindow::eventstate, EVT_XR_ACTION, ListBase::first, wmEvent::flag, FPS, G, G_DEBUG_EVENTS, G_DEBUG_HANDLERS, GPU_render_begin(), GPU_render_end(), wmWindow::handlers, Scene::id, ID_RECALC_FRAME_CHANGE, ISKEYBOARD_OR_BUTTON, ISMOUSE_BUTTON, ISMOUSE_MOTION, KM_NOTHING, KM_PRESS, len_manhattan_v2v2_int(), LISTBASE_FOREACH, wmWindow::modalhandlers, MOUSEMOVE, NC_WINDOW, NDOF_MOTION, wmEvent::prev_press_type, wmEvent::prev_xy, printf, ID::recalc, region_event_inside(), TIMER, wmEvent::type, wmEvent::val, wmWindowManager::windows, wm_action_not_handled(), wm_event_add(), wm_event_add_mousemove_to_head(), WM_event_add_notifier(), 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_CONTINUE, wm_handlers_do(), WM_keyconfig_update(), WM_LOG_HANDLERS, 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_view_layer(), 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()

static 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 3977 of file wm_event_system.cc.

References ED_area_find_region_xy_visual(), LISTBASE_FOREACH, 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 560 of file wm_event_system.cc.

References BKE_workspace_layout_screen_get(), BLI_assert, BLI_gset_remove(), BLI_pophead(), BLI_remlink(), CTX_data_depsgraph_pointer(), CTX_data_main(), CTX_data_view_layer(), CTX_wm_manager(), 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, ListBase::first, G, G_DEBUG_EVENTS, GPU_render_begin(), GPU_render_end(), LISTBASE_FOREACH, MEM_freeN(), wmWindowManager::message_bus, 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, wmNotifier::next, wmWindowManager::notifier_current, wmWindowManager::notifier_queue, wmWindowManager::notifier_queue_set, printf, RE_FreeUnusedGPUResources(), scene, wmWindow::scene, UI_popup_handlers_remove_all(), UNUSED_VARS_NDEBUG, wmWindowManager::winactive, wmRegionListenerParams::window, wmSpaceTypeListenerParams::window, wmWindowManager::windows, WM_event_add_notifier(), wm_event_do_refresh_wm_and_depsgraph(), wm_event_timers_execute(), WM_msgbus_handle(), wm_notifier_is_clear(), wm_test_autorun_warning(), wm_test_gpu_backend_fallback(), wm_test_opengl_deprecation_warning(), 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 524 of file wm_event_system.cc.

References 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()

static 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 4352 of file wm_event_system.cc.

References BLI_assert, 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 306 of file wm_event_system.cc.

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

Referenced by wm_event_do_handlers(), and wm_window_free().

◆ wm_event_free_and_remove_from_queue_if_valid()

static 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 3865 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()

static void wm_event_free_last ( wmWindow * win)
static

Definition at line 298 of file wm_event_system.cc.

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

Referenced by wm_event_add_trackpad().

◆ wm_event_free_last_handled()

static 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 270 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 4772 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()

static 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 4764 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_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 827 of file wm_event_system.cc.

References BLI_assert_msg, CTX_wm_window(), UNUSED_VARS_NDEBUG, and wm_event_always_pass().

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

◆ wm_event_handler_ui_cancel()

static void wm_event_handler_ui_cancel ( bContext * C)
static

Definition at line 945 of file wm_event_system.cc.

References 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()

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

Definition at line 3717 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()

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

◆ wm_event_is_ignorable_key_press()

static 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 5711 of file wm_event_system.cc.

References BLI_listbase_is_empty(), wmWindow::event_queue, wmEvent::flag, ListBase::last, WM_EVENT_IS_REPEAT, and wm_event_is_same_key_press().

Referenced by wm_event_add_ghostevent().

◆ wm_event_is_same_key_press()

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

Definition at line 5690 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 6357 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 4590 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 4604 of file wm_event_system.cc.

References wmEventHandler_Op::context, int, 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()

static 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 2427 of file wm_event_system.cc.

References BLI_assert, 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()

static 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 2494 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()

static 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 3846 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()

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

◆ wm_event_prev_values_set()

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

Copy the current state to the previous event state.

Definition at line 5533 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_area_handler()

void WM_event_remove_area_handler ( ListBase * handlers,
void * area )

◆ WM_event_remove_handlers()

◆ 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()

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

◆ wm_event_state_update_and_click_set_ex()

static 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 5630 of file wm_event_system.cc.

References BLI_assert, CLOG_INFO, 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_HANDLERS.

Referenced by WM_event_add_simulate(), and wm_event_state_update_and_click_set().

◆ wm_event_tablet_data_default()

wmTabletData wm_event_tablet_data_default ( )
constexpr

◆ WM_event_tablet_data_default_set()

void WM_event_tablet_data_default_set ( wmTabletData * tablet_data)

Definition at line 5419 of file wm_event_system.cc.

References wm_event_tablet_data_default().

◆ wm_event_timers_execute()

static void wm_event_timers_execute ( bContext * C)
static

◆ wm_event_type_from_ghost_button()

◆ wm_event_type_from_ghost_key()

static int 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 5131 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_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_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_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()

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

◆ wm_handler_fileselect_call()

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

◆ wm_handler_fileselect_do()

static 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 2752 of file wm_event_system.cc.

References ARegion::alignment, wmEventHandler_Op::area, BKE_area_find_region_type(), BKE_report(), BKE_report_print_level_set(), BLI_assert, BLI_findindex(), BLI_listbase_is_single(), BLI_remlink(), 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_fileselect_window_params_get(), 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_, int, ReportList::list, LISTBASE_FOREACH, SpaceFile::op, wmEventHandler_Op::op, wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, OPERATOR_FINISHED, 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, UI_popup_menu_reports(), UI_SCALE_FAC, wmEventHandler_Op::win, wmWindowManager::winactive, wmWindowManager::windows, wm_cursor_position_get(), wm_event_free_handler(), 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(), WM_window_native_pixel_size(), wmEvent::xy, and xy.

Referenced by WM_event_add_fileselect(), and wm_handler_fileselect_call().

◆ wm_handler_op_context()

static 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()

static 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 2538 of file wm_event_system.cc.

References BLI_listbase_is_empty(), BLI_remlink(), 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, wmOperatorType::flag, bToolRef_Runtime::gizmo_group, wmGizmoGroupType::gzmap_params, wmEventHandler_Op::head, wmOperator::idname, ReportList::list, wmOperatorType::modal, 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_CONTINUE, wm_handler_op_context(), WM_HANDLER_TYPE_GIZMO, WM_HANDLER_TYPE_KEYMAP, WM_HANDLER_TYPE_OP, WM_LOG_HANDLERS, 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()

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

◆ wm_handler_ui_call()

◆ wm_handlers_do()

◆ wm_handlers_do_gizmo_handler()

◆ wm_handlers_do_intern()

◆ wm_handlers_do_keymap_with_gizmo_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

◆ wm_handlers_do_keymap_with_keymap_handler()

◆ WM_main_add_notifier()

void WM_main_add_notifier ( uint type,
void * reference )

Definition at line 394 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(), 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::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::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_deselect_all(), ED_gpencil_set_active_channel(), ED_mesh_color_add(), ED_mesh_uv_add(), ED_node_set_active(), ED_node_set_active_viewer_key(), ED_node_tag_update_id(), 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_lock_sync(), EDBM_selectmode_disable(), EDBM_selectmode_set_multi(), 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(), insert_key_to_keying_set_path(), lib_id_override_editable_toggle_exec(), lineart_bake_endjob(), make_paths_absolute_exec(), make_paths_relative_exec(), 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::object::modifiers_clear_exec(), nlaedit_disable_tweakmode(), 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::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_remove_button_exec(), override_type_set_button_exec(), pack_all_exec(), pack_islands_endjob(), blender::ed::object::bake_simulation::pack_single_bake_exec(), posttrans_gpd_clean(), posttrans_mask_clean(), preferences_asset_library_add_exec(), preferences_asset_library_remove_exec(), preview_endjob(), proj_paint_add_slot(), 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(), 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(), blender::ed::space_node::send_notifiers_after_tree_change(), 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(), template_ID(), blender::ed::greasepencil::toggle_weight_tool_direction(), track_markers_endjob(), blender::ed::outliner::tree_element_layer_collection_activate(), blender::ed::outliner::tree_element_master_collection_activate(), ui_rna_update_preferences_dirty(), uiItemFullR(), 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(), viewRedrawPost(), 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_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)

◆ WM_menu_name_call()

void WM_menu_name_call ( bContext * C,
const char * menu_name,
short context )

◆ wm_notifier_clear()

static void wm_notifier_clear ( wmNotifier * note)
static

◆ wm_notifier_is_clear()

static bool wm_notifier_is_clear ( const wmNotifier * note)
static

◆ WM_operator_call()

int WM_operator_call ( bContext * C,
wmOperator * op )

Definition at line 1373 of file wm_event_system.cc.

References WM_operator_call_ex().

◆ WM_operator_call_ex()

int 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 1368 of file wm_event_system.cc.

References wm_operator_exec().

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

◆ wm_operator_call_internal()

◆ WM_operator_call_notest()

int 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 1378 of file wm_event_system.cc.

References wm_operator_exec_notest().

Referenced by op_generic_value_invoke(), and WM_operator_filesel().

◆ WM_operator_call_py()

int WM_operator_call_py ( bContext * C,
wmOperatorType * ot,
wmOperatorCallContext context,
PointerRNA * properties,
ReportList * reports,
bool is_undo )

Similar to WM_operator_name_call called with WM_OP_EXEC_DEFAULT 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 1912 of file wm_event_system.cc.

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

Referenced by pyop_call().

◆ wm_operator_check_locked_interface()

static 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 6257 of file wm_event_system.cc.

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

Referenced by wm_handler_operator_call().

◆ wm_operator_create()

◆ wm_operator_exec()

◆ wm_operator_exec_notest()

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

Simply calls exec with basic checks.

Definition at line 1354 of file wm_event_system.cc.

References 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 4995 of file wm_event_system.cc.

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

Referenced by gizmo_modal().

◆ wm_operator_finished()

◆ wm_operator_free_for_fileselect()

static void wm_operator_free_for_fileselect ( wmOperator * file_operator)
static

◆ wm_operator_invoke()

static int 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()

◆ WM_operator_name_call_ptr()

int WM_operator_name_call_ptr ( bContext * C,
wmOperatorType * ot,
wmOperatorCallContext 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 1857 of file wm_event_system.cc.

References BLI_assert, wmOperatorType::idname, 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(), modifier_reorder(), blender::ed::space_node::node_add_group_asset_invoke(), object_mouse_select_menu(), blender::ed::asset::shelf::AssetViewItem::on_activate(), operator_search_exec_fn(), 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(), transform_from_gizmo_invoke(), ui_but_anim_decorate_cb(), ui_handler_wait_for_input(), view3d_interactive_add_modal(), wm_drop_import_file_exec(), 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_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 1123 of file wm_event_system.cc.

References BLI_findindex(), CTX_wm_area(), CTX_wm_region(), and RGN_TYPE_WINDOW.

Referenced by wm_operator_finished().

◆ wm_operator_register_active_id()

static intptr_t wm_operator_register_active_id ( const wmWindowManager * wm)
static

◆ wm_operator_register_check()

static 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 1192 of file wm_event_system.cc.

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

Referenced by wm_operator_finished().

◆ WM_operator_repeat()

int WM_operator_repeat ( bContext * C,
wmOperator * op )

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

Definition at line 1383 of file wm_event_system.cc.

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

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

◆ 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 1399 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(), and uiTemplateOperatorRedoProperties().

◆ WM_operator_repeat_last()

int WM_operator_repeat_last ( bContext * C,
wmOperator * op )

Definition at line 1391 of file wm_event_system.cc.

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

Referenced by repeat_last_exec().

◆ wm_operator_reports()

◆ WM_operator_ui_poll()

◆ wm_operator_undo_active_id()

static 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 1044 of file wm_event_system.cc.

References UndoStack::step_active, and wmWindowManager::undo_stack.

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

◆ wm_paintcursor_tag()

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

◆ wm_paintcursor_test()

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

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

Note
Context was set on active area and region.

Definition at line 3775 of file wm_event_system.cc.

References area_event_inside(), BLI_rcti_isect_pt_v(), CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), ListBase::first, wmWindowManager::paintcursors, wmEvent::prev_xy, region_event_inside(), and wm_paintcursor_tag().

Referenced by wm_event_do_handlers().

◆ wm_region_mouse_co()

static void wm_region_mouse_co ( bContext * C,
wmEvent * event )
static

◆ wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak()

static 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 1525 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()

◆ 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 981 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_reportf()

◆ 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 995 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 blender::io::hydra::USDSceneDelegate::populate(), wm_handler_fileselect_do(), wm_handler_operator_call(), wm_jobs_reports_update(), wm_operator_reports(), and WM_report().

◆ WM_set_locked_interface()

◆ 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 6404 of file wm_event_system.cc.

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

Referenced by uiTemplateInputStatus().

◆ WM_window_cursor_keymap_status_refresh()

◆ WM_window_modal_keymap_status_draw()

◆ WM_window_status_area_find()

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

Similar to BKE_screen_area_map_find_area_xy and related functions, use here since the area is stored in the window manager.

Definition at line 6418 of file wm_event_system.cc.

References ScrAreaMap::areabase, wmWindow::global_areas, LISTBASE_FOREACH, SCREENFULL, and SPACE_STATUSBAR.

Referenced by WM_window_cursor_keymap_status_refresh(), WM_window_status_area_tag_redraw(), and WorkspaceStatus::WorkspaceStatus().

◆ WM_window_status_area_tag_redraw()