Blender  V3.3
Classes | Macros
wm_event_system.cc File Reference
#include <cmath>
#include <cstdlib>
#include <cstring>
#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_dynstr.h"
#include "BLI_math.h"
#include "BLI_timer.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
#include "BKE_lib_remap.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_workspace.h"
#include "BKE_sound.h"
#include "BLT_translation.h"
#include "ED_asset.h"
#include "ED_fileselect.h"
#include "ED_info.h"
#include "ED_render.h"
#include "ED_screen.h"
#include "ED_undo.h"
#include "ED_util.h"
#include "ED_view3d.h"
#include "RNA_access.h"
#include "UI_interface.h"
#include "PIL_time.h"
#include "WM_api.h"
#include "WM_message.h"
#include "WM_toolsystem.h"
#include "WM_types.h"
#include "wm.h"
#include "wm_event_system.h"
#include "wm_event_types.h"
#include "wm_surface.h"
#include "wm_window.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"

Go to the source code of this file.

Classes

struct  uiOperatorWaitForInput
 
struct  wmEvent_ModalMapStore
 
struct  CursorKeymapInfo_State
 
struct  CursorKeymapInfo
 

Macros

#define USE_GIZMO_MOUSE_PRIORITY_HACK
 

Functions

Notifiers & Listeners
static void wm_notifier_clear (wmNotifier *note)
 
static bool wm_test_duplicate_notifier (const wmWindowManager *wm, uint type, void *reference)
 
void WM_event_add_notifier_ex (wmWindowManager *wm, const wmWindow *win, uint type, void *reference)
 
void WM_event_add_notifier (const bContext *C, uint type, void *reference)
 
void WM_main_add_notifier (unsigned int type, void *reference)
 
void WM_main_remove_notifier_reference (const void *reference)
 
static void wm_main_remap_assetlist (ID *old_id, ID *new_id, void *UNUSED(user_data))
 
static void wm_main_remap_msgbus_notify (ID *old_id, ID *new_id, void *user_data)
 
void WM_main_remap_editor_id_reference (const 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_execute_timers (bContext *C)
 
void wm_event_do_notifiers (bContext *C)
 
static int wm_event_always_pass (const wmEvent *event)
 
BLI_INLINE void wm_event_handler_return_value_check (const bContext *C, const wmEvent *event, const int 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)
 
bool WM_operator_poll (bContext *C, wmOperatorType *ot)
 
bool WM_operator_poll_context (bContext *C, wmOperatorType *ot, short context)
 
bool WM_operator_check_ui_empty (wmOperatorType *ot)
 
void WM_operator_region_active_win_set (bContext *C)
 
static void wm_operator_reports (bContext *C, wmOperator *op, int retval, 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)
 
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 *UNUSED(C), 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, wmEvent *event_state, const bool is_keyboard, const bool check_double_click)
 
static int convert_key (GHOST_TKey key)
 
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)
 
static void wm_event_prev_values_set (wmEvent *event, wmEvent *event_state)
 
static void wm_event_prev_click_set (wmEvent *event_state)
 
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, wmEvent *event_state, 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, int type, void *customdata)
 
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 int wm_handler_ui_call (bContext *C, wmEventHandler_UI *handler, const wmEvent *event, int 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
void WM_report_banner_show (void)
 
void WM_report_banners_cancel (Main *bmain)
 
static void wm_add_reports (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 int wm_handlers_do_intern (bContext *C, wmWindow *win, wmEvent *event, ListBase *handlers)
 
static int 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, wmPaintCursor *pc, ARegion *region)
 
static void wm_paintcursor_test (bContext *C, const wmEvent *event)
 
static int 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 int wm_event_do_region_handlers (bContext *C, wmEvent *event, ARegion *region)
 
static int 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, int eventval)
 
static wmWindowwm_event_find_fileselect_root_window_from_context (const bContext *C)
 
void WM_event_add_fileselect (bContext *C, wmOperator *op)
 
Modal Operator Handling
wmEventHandler_OpWM_event_add_modal_handler (bContext *C, wmOperator *op)
 
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)
 
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 UNUSED(priority))
 
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 char 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)
 
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)
 
static 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 int wm_handler_operator_call (bContext *C, ListBase *handlers, wmEventHandler *handler_base, wmEvent *event, PointerRNA *properties, const char *kmi_idname)
 
static int wm_handler_fileselect_do (bContext *C, ListBase *handlers, wmEventHandler_Op *handler, int val)
 
static int wm_handler_fileselect_call (bContext *C, ListBase *handlers, wmEventHandler_Op *handler, const wmEvent *event)
 
static int wm_action_not_handled (int action)
 
static const char * keymap_handler_log_action_str (const int action)
 
static const char * keymap_handler_log_kmi_event_str (const wmKeyMapItem *kmi, char *buf, size_t buf_maxlen)
 
static const char * keymap_handler_log_kmi_op_str (bContext *C, const wmKeyMapItem *kmi, char *buf, size_t buf_maxlen)
 
static int wm_handlers_do_keymap_with_keymap_handler (bContext *C, wmEvent *event, ListBase *handlers, wmEventHandler_Keymap *handler, wmKeyMap *keymap, const bool do_debug_handler)
 
static int 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 int 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

◆ PRINT

#define PRINT
Value:
if (do_debug_handler) \
printf

Definition at line 2793 of file wm_event_system.cc.

◆ 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: T65479.

Definition at line 90 of file wm_event_system.cc.

Function Documentation

◆ area_event_inside()

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

◆ convert_key()

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

Definition at line 4637 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_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_kKeyOS, GHOST_kKeyPause, GHOST_kKeyPeriod, GHOST_kKeyPlus, GHOST_kKeyPrintScreen, GHOST_kKeyQuote, GHOST_kKeyRightAlt, GHOST_kKeyRightArrow, GHOST_kKeyRightBracket, GHOST_kKeyRightControl, GHOST_kKeyRightShift, GHOST_kKeyScrollLock, GHOST_kKeySemicolon, GHOST_kKeySlash, GHOST_kKeySpace, GHOST_kKeyTab, GHOST_kKeyUnknown, GHOST_kKeyUpArrow, GHOST_kKeyUpPage, GHOST_kKeyZ, and WM_LOG_EVENTS.

Referenced by wm_event_add_ghostevent().

◆ 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 int  action)
static

Definition at line 2748 of file wm_event_system.cc.

References WM_HANDLER_BREAK, and WM_HANDLER_HANDLED.

Referenced by wm_handlers_do_keymap_with_keymap_handler().

◆ keymap_handler_log_kmi_event_str()

static const char* keymap_handler_log_kmi_event_str ( const wmKeyMapItem kmi,
char *  buf,
size_t  buf_maxlen 
)
static

◆ keymap_handler_log_kmi_op_str()

static const char* keymap_handler_log_kmi_op_str ( bContext C,
const wmKeyMapItem kmi,
char *  buf,
size_t  buf_maxlen 
)
static

◆ region_event_inside()

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

◆ ui_handler_wait_for_input()

static int ui_handler_wait_for_input ( bContext C,
const wmEvent event,
void userdata 
)
static

◆ ui_handler_wait_for_input_remove()

static void ui_handler_wait_for_input_remove ( bContext C,
void userdata 
)
static

◆ wm_action_not_handled()

static int wm_action_not_handled ( int  action)
static

Definition at line 2743 of file wm_event_system.cc.

References WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, and WM_HANDLER_MODAL.

Referenced by wm_event_do_handlers(), and wm_handlers_do().

◆ wm_add_reports()

static void wm_add_reports ( ReportList reports)
static

◆ wm_event_add()

wmEvent* wm_event_add ( wmWindow win,
const wmEvent event_to_add 
)

◆ WM_event_add_dropbox_handler()

wmEventHandler_Dropbox* WM_event_add_dropbox_handler ( ListBase handlers,
ListBase dropboxes 
)

◆ 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 115 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 ( struct bContext C,
struct 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 4088 of file wm_event_system.cc.

References wmEventHandler_Op::area, BLI_addhead(), BLI_assert, C, 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, wmOperator::type, wmEventHandler::type, UI_popup_handlers_remove_all(), 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(), and WM_HANDLER_TYPE_OP.

Referenced by asset_bundle_install_invoke(), cachefile_layer_open_invoke(), cachefile_open_invoke(), clip_filesel(), file_browse_invoke(), find_missing_files_invoke(), image_filesel(), multires_external_save_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(), 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,
void customdata 
)

Windows store 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 5193 of file wm_event_system.cc.

References BLI_assert, BLI_assert_unreachable, BLI_str_utf8_from_unicode(), BLI_str_utf8_size(), GHOST_TEventButtonData::button, BUTTON4MOUSE, BUTTON5MOUSE, BUTTON6MOUSE, BUTTON7MOUSE, Freestyle::c, CLOG_ERROR, CLOG_INFO, CLOG_WARN, convert_key(), copy_v2_v2_int(), GHOST_TEventTrackpadData::deltaX, GHOST_TEventTrackpadData::deltaY, e, EVENT_NONE, wmWindow::eventstate, EVT_DATA_TIMER, 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_kButtonMaskButton4, GHOST_kButtonMaskButton5, GHOST_kButtonMaskButton6, GHOST_kButtonMaskButton7, GHOST_kButtonMaskLeft, GHOST_kButtonMaskRight, GHOST_kEventButtonDown, GHOST_kEventButtonUp, GHOST_kEventCursorMove, GHOST_kEventImeComposition, GHOST_kEventImeCompositionEnd, GHOST_kEventImeCompositionStart, GHOST_kEventKeyDown, GHOST_kEventKeyUp, GHOST_kEventTimer, GHOST_kEventTrackpad, GHOST_kEventUnknown, GHOST_kEventWheel, GHOST_kEventWindowDeactivate, GHOST_kNumEventTypes, GHOST_kTrackpadEventMagnify, GHOST_kTrackpadEventRotate, GHOST_kTrackpadEventScroll, GHOST_kTrackpadEventSmartMagnify, wmWindow::ime_data, 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, LEFTMOUSE, MIDDLEMOUSE, wmEvent::modifier, MOUSEMOVE, MOUSEPAN, MOUSEROTATE, MOUSESMARTZOOM, MOUSEZOOM, NDOF_BUTTON_NONE, NDOF_MOTION, wmEvent::prev_type, wmEvent::prev_val, RIGHTMOUSE, SET_FLAG_FROM_TEST, GHOST_TEventTrackpadData::subtype, GHOST_TEventCursorData::tablet, GHOST_TEventButtonData::tablet, wmEvent::tablet, TIMER, type, wmEvent::type, UNLIKELY, GHOST_TEventKeyData::utf8_buf, wmEvent::utf8_buf, wmEvent::val, WHEELDOWNMOUSE, WHEELUPMOUSE, WINDEACTIVATE, 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_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, GHOST_TEventTrackpadData::y, and GHOST_TEventWheelData::z.

Referenced by ghost_event_proc().

◆ WM_event_add_keymap_handler()

wmEventHandler_Keymap* WM_event_add_keymap_handler ( ListBase handlers,
wmKeyMap keymap 
)

◆ WM_event_add_keymap_handler_dynamic()

wmEventHandler_Keymap* WM_event_add_keymap_handler_dynamic ( ListBase handlers,
wmEventHandler_KeymapDynamicFn keymap_fn,
void user_data 
)

◆ WM_event_add_keymap_handler_poll()

wmEventHandler_Keymap* WM_event_add_keymap_handler_poll ( ListBase handlers,
wmKeyMap keymap,
EventHandlerPoll  poll 
)

◆ WM_event_add_keymap_handler_priority()

wmEventHandler_Keymap* WM_event_add_keymap_handler_priority ( ListBase handlers,
wmKeyMap keymap,
int   UNUSEDpriority 
)

◆ WM_event_add_keymap_handler_v2d_mask()

wmEventHandler_Keymap* WM_event_add_keymap_handler_v2d_mask ( ListBase handlers,
wmKeyMap keymap 
)

◆ WM_event_add_modal_handler()

wmEventHandler_Op* WM_event_add_modal_handler ( bContext C,
wmOperator op 
)

Definition at line 4181 of file wm_event_system.cc.

References wmEventHandler_Op::area, BLI_addhead(), C, wmEventHandler_Op::context, CTX_wm_area(), CTX_wm_region(), CTX_wm_window(), wmEventHandler_Op::head, wmWindow::modalhandlers, wmOperatorType::modalkeymap, wmEventHandler_Op::op, wmOperator::opm, wmEventHandler_Op::region, wmEventHandler_Op::region_type, ARegion::regiontype, wmOperator::type, wmEventHandler::type, WM_HANDLER_TYPE_OP, and WM_window_status_area_tag_redraw().

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(), bake_invoke(), brush_edit_invoke(), change_frame_invoke(), clip_prefetch_invoke(), console_modal_select_invoke(), curve_draw_invoke(), curve_pen_invoke(), datadropper_invoke(), depthdropper_invoke(), driverdropper_invoke(), dyntopo_detail_size_edit_invoke(), ED_imbuf_sample_invoke(), ed_marker_move_invoke(), edbm_bevel_invoke(), edbm_inset_invoke(), edbm_point_normals_invoke(), eyedropper_colorband_invoke(), eyedropper_gpencil_invoke(), eyedropper_invoke(), face_set_extract_invoke(), fluid_bake_invoke(), fly_invoke(), gizmo_tweak_invoke(), gpencil_draw_invoke(), gpencil_fill_invoke(), gpencil_interpolate_invoke(), gpencil_primitive_invoke(), gpencil_sculpt_brush_invoke(), gpencil_transform_fill_invoke(), gpencil_vertexpaint_brush_invoke(), gpencil_weightpaint_brush_invoke(), grab_clone_invoke(), graph_slider_invoke(), graphview_cursor_invoke(), image_view_pan_init(), image_view_zoom_init(), knifetool_invoke(), light_cache_bake_invoke(), lineart_gpencil_bake_common(), loopcut_init(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_invoke(), minimize_stretch_invoke(), multiresbake_image_exec(), blender::ed::space_node::node_insert_offset_invoke(), blender::ed::space_node::node_link_invoke(), blender::ed::space_node::node_resize_init(), object_transform_axis_target_invoke(), op_generic_value_invoke(), outliner_item_openclose_invoke(), blender::ed::sculpt_paint::image::ops::paint::paint_invoke(), paintcurve_slide_invoke(), pose_slide_invoke_common(), poselib_blend_invoke(), poselib_preview_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(), sculpt_brush_stroke_invoke(), sculpt_cloth_filter_invoke(), sculpt_color_filter_invoke(), blender::ed::sculpt_paint::sculpt_curves_stroke_invoke(), sculpt_expand_invoke(), sculpt_mask_expand_invoke(), sculpt_mesh_filter_invoke(), sculpt_sample_detail_size_invoke(), blender::ed::sculpt_paint::select_grow::select_grow_invoke(), sequencer_slip_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(), 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(), view_edge_pan_invoke(), view_pan_init(), view_pan_invoke(), view_zoom_init(), view_zoomdrag_invoke(), viewdolly_invoke(), viewmove_invoke(), viewroll_invoke(), viewrotate_invoke(), viewzoom_invoke(), 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_straightline_invoke(), wm_xr_navigation_fly_invoke(), wm_xr_navigation_grab_invoke(), wm_xr_navigation_teleport_invoke(), and wpaint_invoke().

◆ WM_event_add_mousemove()

void WM_event_add_mousemove ( wmWindow win)

◆ wm_event_add_mousemove()

static wmEvent* wm_event_add_mousemove ( wmWindow win,
const wmEvent event 
)
static

◆ wm_event_add_mousemove_to_head()

static wmEvent * wm_event_add_mousemove_to_head ( wmWindow win)
static

◆ WM_event_add_notifier()

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

Definition at line 288 of file wm_event_system.cc.

References C, CTX_wm_manager(), CTX_wm_window(), type, 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_slider_shapekey_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_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_sample_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(), add_simple_uvs_exec(), 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(), apply_objects_internal(), area_close_exec(), area_dupli_invoke(), area_join_cancel(), 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_layers_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_layers_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(), asset_catalog_redo_exec(), asset_catalog_undo_exec(), asset_library_refresh_exec(), average_islands_scale_exec(), average_tracks_exec(), background_image_add_invoke(), background_image_remove_exec(), bake_image_exec(), bake_invoke(), blend_to_default_exec(), blend_to_default_modal_update(), blend_to_neighbor_exec(), blend_to_neighbor_modal_update(), bone_select_menu_exec(), bookmark_select_exec(), box_select_exec(), box_select_graph_exec(), breakdown_exec(), breakdown_modal_update(), brush_colors_flip_exec(), brush_edit_apply(), brush_reset_exec(), change_frame_apply(), change_frame_seq_preview_end(), childof_clear_inverse_exec(), childof_set_inverse_exec(), circle_select_exec(), clean_tracks_exec(), clear_anim_v3d_exec(), clear_edited_exec(), clear_key_button_exec(), clear_override_library_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(), clip_delete_marker(), clip_delete_track(), clip_set_2d_cursor_exec(), clip_set_scene_frames_exec(), collection_add_exec(), collection_create_exec(), collection_drop_invoke(), collection_link_exec(), collection_objects_remove_all_exec(), collection_objects_remove_exec(), collection_remove_exec(), collection_unlink_exec(), connect_hair_exec(), constraint_add_exec(), constraint_apply_exec(), constraint_copy_exec(), constraint_copy_to_selected_exec(), constraint_delete_exec(), constraint_fn(), constraint_move_down_exec(), constraint_move_up_exec(), copy_particle_dupliob_exec(), 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::disable_selection::curves_disable_selection_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(), dash_segment_add_exec(), dash_segment_move_exec(), dash_segment_remove_exec(), data_transfer_exec(), datalayout_transfer_exec(), de_select_all_exec(), de_select_first_exec(), de_select_last_exec(), decimate_exec(), decimate_modal_update(), delete_exec(), delete_fmodifier_cb(), delete_key_button_exec(), delete_key_using_keying_set(), delete_key_v3d_without_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(), do_outliner_item_activate_tree_element(), do_outliner_item_editmode_toggle(), 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(), drop_named_material_invoke(), drop_world_exec(), duplicate_exec(), duplicate_metaelems_exec(), dupliob_move_down_exec(), dupliob_move_up_exec(), dupliob_refresh_exec(), ED_area_newspace(), ED_area_prevspace(), ED_armature_edit_select_pick_bone(), ED_armature_join_objects_exec(), ED_autokeyframe_property(), ED_curve_editfont_select_pick(), ED_curve_editnurb_select_pick(), ED_curve_join_objects_exec(), ED_gpencil_join_objects_exec(), ED_lattice_select_pick(), ed_marker_add_exec(), ed_marker_box_select_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_update(), ED_mesh_uv_loop_reset(), ED_object_add_type_with_obdata(), ED_object_jump_to_object(), ED_object_modifier_link(), ED_object_posemode_enter(), ED_object_posemode_exit(), ED_object_select_linked_by_id(), ed_object_select_pick(), ed_object_select_pick_camera_track(), 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_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(), EEVEE_lightprobes_cache_finish(), empty_drop_named_image_invoke(), explode_refresh_exec(), face_map_add_exec(), face_map_assign_exec(), face_map_deselect_exec(), face_map_move_exec(), face_map_remove_exec(), face_map_remove_from_exec(), face_map_select_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(), followpath_path_animate_exec(), font_undosys_step_decode(), forcefield_toggle_exec(), frame_jump_exec(), frame_offset_exec(), geometry_extract_apply(), geometry_node_tree_copy_assign_exec(), geometry_nodes_input_attribute_toggle_exec(), ghost_event_proc(), gpencil_actframe_delete_all_exec(), gpencil_actframe_delete_exec(), gpencil_bake_grease_pencil_animation_exec(), gpencil_blank_frame_add_exec(), gpencil_circle_select_exec(), gpencil_convert_layer_exec(), gpencil_convert_old_files_exec(), gpencil_cutter_lasso_select(), gpencil_data_add_exec(), gpencil_data_unlink_exec(), gpencil_delete_selected_points(), gpencil_delete_selected_strokes(), gpencil_dissolve_selected_points(), gpencil_draw_exec(), gpencil_draw_invoke(), gpencil_draw_modal(), gpencil_duplicate_exec(), gpencil_editcurve_set_handle_type_exec(), gpencil_editmode_toggle_exec(), gpencil_extrude_exec(), gpencil_fill_exit(), gpencil_fill_invoke(), gpencil_fill_modal(), gpencil_frame_clean_duplicate_exec(), gpencil_frame_clean_fill_exec(), gpencil_frame_clean_loose_exec(), gpencil_frame_duplicate_exec(), gpencil_generate_weights_exec(), gpencil_generic_select_exec(), gpencil_guide_event_handling(), gpencil_hide_exec(), gpencil_hideselect_toggle_exec(), gpencil_interpolate_exit(), gpencil_interpolate_invoke(), gpencil_interpolate_reverse_exec(), gpencil_interpolate_seq_exec(), gpencil_interpolate_update_strokes(), gpencil_isolate_layer_exec(), gpencil_layer_active_exec(), gpencil_layer_add_exec(), gpencil_layer_change_exec(), gpencil_layer_copy_exec(), gpencil_layer_duplicate_object_exec(), gpencil_layer_mask_add_exec(), gpencil_layer_mask_move_exec(), gpencil_layer_mask_remove_exec(), gpencil_layer_move_exec(), gpencil_layer_remove_exec(), gpencil_lock_all_exec(), gpencil_lock_layer_exec(), gpencil_material_hide_exec(), gpencil_material_isolate_exec(), gpencil_material_lock_all_exec(), gpencil_material_lock_unsused_exec(), gpencil_material_reveal_exec(), gpencil_material_select_exec(), gpencil_material_set_exec(), gpencil_material_to_vertex_exec(), gpencil_material_unlock_all_exec(), gpencil_materials_copy_to_object_exec(), gpencil_merge_by_distance_exec(), gpencil_merge_layer_exec(), gpencil_modifier_add_exec(), gpencil_modifier_apply_exec(), gpencil_modifier_copy_exec(), gpencil_modifier_copy_to_selected_exec(), gpencil_modifier_move_down_exec(), gpencil_modifier_move_up_exec(), gpencil_modifier_remove_exec(), gpencil_paintmode_toggle_exec(), gpencil_primitive_exit(), gpencil_primitive_invoke(), gpencil_primitive_update_strokes(), gpencil_recalc_geometry_exec(), gpencil_reset_transform_fill_exec(), gpencil_reveal_exec(), gpencil_sculpt_brush_apply(), gpencil_sculpt_brush_init_stroke(), gpencil_sculpt_brush_modal(), gpencil_sculptmode_toggle_exec(), gpencil_select_all_exec(), gpencil_select_alternate_exec(), gpencil_select_exec(), gpencil_select_first_exec(), gpencil_select_grouped_exec(), gpencil_select_last_exec(), gpencil_select_less_exec(), gpencil_select_linked_exec(), gpencil_select_more_exec(), gpencil_select_random_exec(), gpencil_select_vertex_color_exec(), gpencil_selectmode_toggle_exec(), gpencil_session_init_fill(), gpencil_session_initdata(), gpencil_set_active_material_exec(), gpencil_snap_cursor_to_sel(), gpencil_snap_to_cursor(), gpencil_snap_to_grid(), gpencil_stroke_apply_thickness_exec(), gpencil_stroke_arrange_exec(), gpencil_stroke_caps_set_exec(), gpencil_stroke_change_color_exec(), gpencil_stroke_cyclical_set_exec(), gpencil_stroke_enter_editcurve_mode_exec(), gpencil_stroke_flip_exec(), gpencil_stroke_join_exec(), gpencil_stroke_merge_exec(), gpencil_stroke_merge_material_exec(), gpencil_stroke_normalize_exec(), gpencil_stroke_path_animation(), gpencil_stroke_reset_vertex_color_exec(), gpencil_stroke_sample_exec(), gpencil_stroke_separate_exec(), gpencil_stroke_simplify_exec(), gpencil_stroke_simplify_fixed_exec(), gpencil_stroke_smooth_exec(), gpencil_stroke_split_exec(), gpencil_stroke_subdivide_exec(), gpencil_stroke_trim_exec(), gpencil_strokes_copy_exec(), gpencil_strokes_paste_exec(), gpencil_strokes_reproject_exec(), gpencil_unlock_all_exec(), gpencil_update_extend(), gpencil_uv_transform_calc(), gpencil_vertex_group_assign_exec(), gpencil_vertex_group_deselect_exec(), gpencil_vertex_group_invert_exec(), gpencil_vertex_group_normalize_all_exec(), gpencil_vertex_group_normalize_exec(), gpencil_vertex_group_remove_from_exec(), gpencil_vertex_group_select_exec(), gpencil_vertex_group_smooth_exec(), gpencil_vertexmode_toggle_exec(), gpencil_vertexpaint_brightness_contrast_exec(), gpencil_vertexpaint_brush_apply(), gpencil_vertexpaint_brush_modal(), gpencil_vertexpaint_hsv_exec(), gpencil_vertexpaint_invert_exec(), gpencil_vertexpaint_levels_exec(), gpencil_vertexpaint_set_exec(), gpencil_weightmode_toggle_exec(), gpencil_weightpaint_brush_apply(), gpencil_weightpaint_brush_modal(), 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_lassoselect_exec(), graphkeys_mirror_exec(), graphkeys_paste_exec(), graphkeys_previewrange_exec(), graphkeys_sample_exec(), graphkeys_select_leftright_exec(), graphkeys_select_less_exec(), graphkeys_select_linked_exec(), graphkeys_select_more_exec(), graphkeys_smooth_exec(), graphkeys_snap_exec(), graphkeys_unbake_exec(), graphview_cursor_apply(), graphview_cursor_modal(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), group_move_exec(), group_sort_exec(), header_toggle_menus_exec(), hide_exec(), hide_metaelems_exec(), hide_tracks_clear_exec(), hide_tracks_exec(), id_delete_tag(), id_override_library_resync_hierarchy_process(), image_add_render_slot_exec(), image_clear_render_slot_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_sample_apply(), image_scale_exec(), image_unpack_exec(), insert_key_button_exec(), insert_key_exec(), join_tracks_exec(), keyframe_jump_exec(), keyframe_set_flag(), keyingset_active_menu_exec(), 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(), light_cache_bake_exec(), light_cache_free_exec(), limitdistance_reset_exec(), lineart_gpencil_bake_startjob(), lineart_gpencil_clear_strokes_all_exec(), lineart_gpencil_clear_strokes_exec(), localview_exec(), localview_remove_from_exec(), lock_selection_toggle_exec(), lock_tracks_exec(), loop_to_vertex_colors_exec(), make_links_data_exec(), make_links_scene_exec(), make_local_exec(), make_override_library_exec(), make_prim_finish(), make_regular_exec(), make_segment_exec(), 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_texture_space_exec(), material_drop_invoke(), 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_skin_add_exec(), mesh_undosys_step_decode(), mesh_uv_texture_add_exec(), mesh_uv_texture_remove_exec(), meshdeform_bind_exec(), minimize_stretch_exit(), minimize_stretch_iteration(), mirror_exec(), mode_set_exec(), modifier_add_exec(), modifier_apply_exec_ex(), modifier_convert_exec(), modifier_copy_exec(), modifier_copy_to_selected_exec(), modifier_fn(), modifier_move_down_exec(), modifier_move_up_exec(), modifier_remove_exec(), modifier_set_active_exec(), mouse_mesh_loop(), mouse_select(), move_lines_exec(), move_to_collection_exec(), multires_base_apply_exec(), multires_higher_levels_delete_exec(), multires_rebuild_subdiv_exec(), multires_reshape_exec(), multires_subdivide_exec(), multires_unsubdivide_exec(), 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(), nlachannels_mouseclick_invoke(), nlachannels_pushdown_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(), blender::ed::space_node::node_add_file_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_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_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(), blender::ed::space_node::ntree_socket_add_exec(), blender::ed::space_node::ntree_socket_change_type_exec(), blender::ed::space_node::ntree_socket_move_exec(), blender::ed::space_node::ntree_socket_remove_exec(), object_add_hook_newob_exec(), object_add_hook_selob_exec(), object_add_named_exec(), object_calculate_paths_exec(), object_clear_paths_exec(), object_clear_transform_generic_exec(), object_constraint_copy_exec(), object_constraints_clear_exec(), object_convert_exec(), object_delete_exec(), object_duplicates_make_real_exec(), object_gpencil_add_exec(), object_hide_collection_exec(), object_hide_view_clear_exec(), object_hide_view_set_exec(), object_hook_assign_exec(), object_hook_recenter_exec(), object_hook_remove_exec(), object_hook_reset_exec(), object_hook_select_exec(), object_metaball_add_exec(), object_origin_clear_exec(), object_origin_set_exec(), object_parent_inverse_apply_exec(), object_rand_verts_exec(), object_select_all_exec(), object_select_by_type_exec(), object_select_grouped_exec(), object_select_less_exec(), object_select_linked_exec(), object_select_menu_exec(), object_select_mirror_exec(), object_select_more_exec(), object_select_random_exec(), object_select_same_collection_exec(), object_shape_key_mirror(), object_speaker_add_exec(), object_track_clear_exec(), object_transfer_mode_to_base(), object_transform_axis_target_cancel(), object_transform_axis_target_modal(), object_update_all_paths_exec(), object_update_paths_exec(), object_warp_verts_exec(), objects_add_active_exec(), objects_bake_render_invoke(), objects_remove_active_exec(), objectsolver_clear_inverse_exec(), objectsolver_set_inverse_exec(), ocean_bake_exec(), open_exec(), outliner_action_set_exec(), outliner_animdata_operation_exec(), outliner_box_select_exec(), outliner_buttons(), outliner_color_tag_set_exec(), outliner_data_operation_exec(), outliner_delete_exec(), outliner_drivers_addsel_exec(), outliner_drivers_deletesel_exec(), outliner_id_operation_exec(), outliner_id_paste_exec(), outliner_id_remap_exec(), outliner_keyingset_additems_exec(), outliner_keyingset_removeitems_exec(), outliner_lib_operation_exec(), outliner_liboverride_operation_exec(), outliner_object_operation_exec(), outliner_orphans_purge_exec(), 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(), paintvert_tag_select_update(), palette_color_move_exec(), palette_join_exec(), palette_sort_exec(), parent_clear_exec(), parent_clear_invoke(), parent_drop_set_parents(), parent_noinv_set_exec(), 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_armature_layers_showall_exec(), pose_autoside_names_exec(), pose_bone_layers_exec(), pose_bone_rotmode_exec(), pose_calculate_paths_exec(), pose_clear_paths_exec(), pose_clear_transform_generic_exec(), pose_clear_user_transforms_exec(), pose_constraint_copy_exec(), pose_constraints_clear_exec(), pose_de_select_all_exec(), pose_flip_names_exec(), pose_flip_quats_exec(), pose_group_add_exec(), pose_group_assign_exec(), pose_group_deselect_exec(), pose_group_remove_exec(), pose_group_select_exec(), pose_group_unassign_exec(), pose_hide_exec(), 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(), poselib_move_exec(), poselib_new_exec(), poselib_preview_apply(), poselib_preview_cleanup(), poselib_remove_exec(), poselib_rename_exec(), poselib_sanitize_exec(), poselib_unlink_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(), 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_view_add_exec(), render_view_remove_exec(), reset_exec(), reset_override_library_exec(), restrictbutton_bone_select_fn(), restrictbutton_ebone_select_fn(), restrictbutton_ebone_visibility_fn(), restrictbutton_gp_layer_flag_fn(), restrictbutton_r_lay_fn(), 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(), row_filter_add_exec(), row_filter_remove_exec(), sample_color_exec(), sample_color_invoke(), sample_color_modal(), scene_delete_exec(), 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(), sculpt_detail_flood_fill_exec(), sculpt_dirty_mask_exec(), sculpt_expand_reposition_pivot(), sculpt_face_set_edit_modify_geometry(), sculpt_mask_expand_modal(), sculpt_mode_toggle_exec(), sculpt_optimize_exec(), sculpt_sample_color_invoke(), sculpt_set_pivot_position_exec(), sculpt_stroke_done(), sculpt_symmetrize_exec(), SCULPT_tag_update_overlays(), sculpt_undo_restore_coords(), blender::ed::curves::select_all::select_all_exec(), select_all_exec(), blender::ed::sculpt_paint::select_end::select_end_exec(), select_exec(), select_grouped_exec(), blender::ed::sculpt_paint::select_grow::select_grow_modal(), blender::ed::sculpt_paint::select_grow::select_grow_update(), select_less_exec(), select_linked_exec(), select_linked_pick_exec(), select_linked_pick_invoke(), select_marker_camera_switch(), select_more_exec(), select_next_exec(), select_nth_exec(), select_orientation_exec(), select_previous_exec(), select_random_exec(), blender::ed::sculpt_paint::select_random::select_random_exec(), select_random_metaelems_exec(), select_roots_exec(), select_row_exec(), select_similar_children(), select_similar_children_immediate(), select_similar_data_pchan(), select_similar_direction(), select_similar_layer(), select_similar_length(), select_similar_prefix(), select_similar_siblings(), select_similar_suffix(), select_tips_exec(), separate_armature_exec(), separate_exec(), 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_de_select_all_exec(), sequencer_delete_exec(), sequencer_delete_strip_data(), 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_paste_exec(), sequencer_reassign_inputs_exec(), sequencer_refresh_all_exec(), sequencer_reload_exec(), sequencer_rename_channel_invoke(), sequencer_rendersize_exec(), sequencer_select_do_updates(), 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_thumbnail_init_job(), sequencer_thumbnail_start_job_if_necessary(), sequencer_unlock_exec(), sequencer_unmute_exec(), set_active_group_exec(), set_axis_exec(), set_center_principal_exec(), set_goal_weight_exec(), set_handle_type_exec(), set_origin_exec(), set_plane_exec(), set_radius_exec(), set_solver_keyframe_exec(), set_spline_type_exec(), set_style(), shade_smooth_exec(), shaderfx_add_exec(), shaderfx_move_down_exec(), shaderfx_move_up_exec(), shaderfx_remove_exec(), shape_cut_exec(), shape_key_clear_exec(), shape_key_move_exec(), shape_key_remove_exec(), shape_key_retime_exec(), skin_armature_create_exec(), skin_loose_mark_clear_exec(), skin_radii_equalize_exec(), 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(), 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__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(), stitch_exit(), stitch_invoke(), stretchto_reset_exec(), strip_modifier_add_exec(), strip_modifier_copy_exec(), strip_modifier_move_exec(), strip_modifier_remove_exec(), subdivide_exec(), blender::ed::curves::surface_set::surface_set_exec(), surface_slot_remove_exec(), surfacedeform_bind_exec(), switch_direction_exec(), 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_line_break_exec(), text_line_number_invoke(), text_make_internal_exec(), text_move_cursor(), text_new_exec(), text_open_exec(), text_paste_exec(), text_properties_region_draw(), 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(), toggle_cyclic_exec(), toggle_matcap_flip(), toggle_shading_exec(), toggle_xray_exec(), track_copy_color_exec(), track_set_exec(), tracking_object_new_exec(), tracking_object_remove_exec(), transform_exec(), tree_element_active_ebone__sel(), tree_element_bone_activate(), tree_element_camera_activate(), tree_element_constraint_activate(), tree_element_defgroup_activate(), tree_element_gplayer_activate(), tree_element_material_activate(), tree_element_modifier_activate(), tree_element_object_activate(), tree_element_posechannel_activate(), tree_element_posegroup_activate(), tree_element_psys_activate(), tree_element_sequence_activate(), 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_pin_exec(), uv_remove_doubles_to_selected(), 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(), vertex_color_brightness_contrast_exec(), vertex_color_hsv_exec(), vertex_color_invert_exec(), vertex_color_levels_exec(), vertex_color_set_exec(), vertex_color_smooth_exec(), vertex_group_add_exec(), vertex_group_assign_exec(), vertex_group_clean_exec(), vertex_group_copy_exec(), vertex_group_copy_to_selected_exec(), vertex_group_deselect_exec(), vertex_group_fix_exec(), vertex_group_invert_exec(), vertex_group_levels_exec(), vertex_group_limit_total_exec(), vertex_group_lock_exec(), vertex_group_mirror_exec(), vertex_group_normalize_all_exec(), vertex_group_normalize_exec(), vertex_group_quantize_exec(), vertex_group_remove_exec(), vertex_group_remove_from_exec(), vertex_group_select_exec(), vertex_group_smooth_exec(), vertex_group_sort_exec(), vertex_paint_from_weight_exec(), vertex_parent_set_exec(), vertex_to_loop_colors_exec(), vertex_weight_copy_exec(), vertex_weight_delete_exec(), vertex_weight_normalize_active_vertex_exec(), vertex_weight_paste_exec(), vertex_weight_set_active_exec(), 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_smoothview_apply_ex(), 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(), visual_transform_apply_exec(), voxel_remesh_exec(), voxel_size_edit_modal(), vpaint_mode_toggle_exec(), vpaint_stroke_done(), walk_modal(), weight_from_bones_exec(), weight_sample_group_exec(), weight_set_exec(), wm_debug_menu_exec(), wm_event_do_handlers(), wm_event_do_notifiers(), wm_file_read_opwrap(), wm_file_read_post(), 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(), wpaint_mode_toggle_exec(), wpaint_stroke_done(), and wpaint_stroke_update_step().

◆ WM_event_add_notifier_ex()

void WM_event_add_notifier_ex ( wmWindowManager wm,
const wmWindow win,
uint  type,
void reference 
)

◆ WM_event_add_simulate()

wmEvent* WM_event_add_simulate ( wmWindow win,
const wmEvent event_to_add 
)

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

wmEventHandler_UI* WM_event_add_ui_handler ( const bContext C,
ListBase handlers,
wmUIHandlerFunc  handle_fn,
wmUIHandlerRemoveFunc  remove_fn,
void user_data,
const char  flag 
)

◆ wm_event_always_pass()

static int wm_event_always_pass ( const wmEvent event)
static

◆ wm_event_cursor_other_windows()

static wmWindow* wm_event_cursor_other_windows ( wmWindowManager wm,
wmWindow win,
wmEvent event 
)
static

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

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

static void wm_event_custom_free ( wmEvent event)
static

◆ wm_event_do_depsgraph()

void wm_event_do_depsgraph ( bContext C,
bool  is_after_open_file 
)

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

References wmWindow::addmousemove, blender::compositor::area(), area_event_inside(), AREA_FLAG_ACTIONZONES_UPDATE, BKE_scene_get_depsgraph(), BKE_sound_scene_playing(), BKE_sound_sync_scene(), BLI_assert, BLI_remlink(), C, RenderData::cfra, 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, wmTooltipState::event_xy, wmWindow::eventstate, EVT_XR_ACTION, wmTooltipState::exit_on_event, ListBase::first, wmEvent::flag, FPS, G, G_DEBUG_EVENTS, G_DEBUG_HANDLERS, wmWindow::handlers, Scene::id, ID_RECALC_FRAME_CHANGE, CCL_NAMESPACE_BEGIN::isfinite(), 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, Scene::r, ID::recalc, region_event_inside(), scene, bScreen::skip_handling, time, TIMER, wmTooltipState::timer, bScreen::tool_tip, 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_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_REPEAT, wm_event_pie_filter(), WM_event_print(), WM_gizmoconfig_update(), WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, wm_handlers_do(), WM_keyconfig_update(), WM_LOG_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 int 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 3721 of file wm_event_system.cc.

References blender::compositor::area(), C, 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 456 of file wm_event_system.cc.

References blender::compositor::area(), BKE_workspace_layout_screen_get(), BLI_pophead(), C, wmNotifier::category, 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_layout_delete(), ELEM, wmWindowManager::file_saved, G, G_DEBUG_EVENTS, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, 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, wmWindowManager::notifier_queue, wmNotifier::reference, bScreen::regionbase, scene, wmWindow::scene, UI_popup_handlers_remove_all(), wmWindowManager::winactive, wmSpaceTypeListenerParams::window, wmRegionListenerParams::window, wmWindowManager::windows, WM_event_add_notifier(), wm_event_do_refresh_wm_and_depsgraph(), wm_event_execute_timers(), WM_msgbus_handle(), wm_test_autorun_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 420 of file wm_event_system.cc.

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

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

◆ wm_event_do_region_handlers()

static int wm_event_do_region_handlers ( bContext C,
wmEvent event,
ARegion region 
)
static

◆ wm_event_drag_and_drop_test()

static int wm_event_drag_and_drop_test ( wmWindowManager wm,
wmWindow win,
wmEvent event 
)
static

◆ wm_event_execute_timers()

static void wm_event_execute_timers ( bContext C)
static

◆ WM_event_fileselect_event()

void WM_event_fileselect_event ( wmWindowManager wm,
void ophandle,
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/fullscreen state. Users shouldn't be able to put a temporary screen like the modal File Browser into maximized/fullscreen 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 4061 of file wm_event_system.cc.

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

Referenced by WM_event_add_fileselect().

◆ wm_event_free()

void wm_event_free ( wmEvent event)

◆ wm_event_free_all()

void wm_event_free_all ( wmWindow win)

Definition at line 236 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: T76484.

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

void wm_event_free_handler ( wmEventHandler handler)

◆ wm_event_free_last()

static void wm_event_free_last ( wmWindow win)
static

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

void WM_event_free_ui_handler_all ( bContext C,
ListBase handlers,
wmUIHandlerFunc  handle_fn,
wmUIHandlerRemoveFunc  remove_fn 
)

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

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

◆ wm_event_handler_return_value_check()

BLI_INLINE void wm_event_handler_return_value_check ( const bContext C,
const wmEvent event,
const int  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 676 of file wm_event_system.cc.

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

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

◆ wm_event_handler_ui_cancel()

static void wm_event_handler_ui_cancel ( bContext C)
static

Definition at line 791 of file wm_event_system.cc.

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

Referenced by wm_operator_invoke().

◆ wm_event_handler_ui_cancel_ex()

void wm_event_handler_ui_cancel_ex ( bContext C,
wmWindow win,
ARegion region,
bool  reactivate_button 
)

◆ wm_event_init_from_window()

void wm_event_init_from_window ( wmWindow win,
wmEvent event 
)

◆ wm_event_inside_rect()

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

Definition at line 3462 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)
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 5169 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 5148 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_keymap_item()

wmKeyMapItem* WM_event_match_keymap_item ( bContext C,
wmKeyMap keymap,
const wmEvent event 
)

◆ WM_event_match_keymap_item_from_handlers()

wmKeyMapItem* WM_event_match_keymap_item_from_handlers ( bContext C,
wmWindowManager wm,
wmWindow win,
ListBase handlers,
const wmEvent event 
)

◆ WM_event_modal_handler_area_replace()

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

◆ WM_event_modal_handler_region_replace()

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

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

References BLI_assert, C, CTX_wm_manager(), wmEvent_ModalMapStore::dbl_click_disabled, EVT_MODAL_MAP, KM_DBL_CLICK, KM_PRESS, wmOperatorType::modalkeymap, wmOperator::opm, wmEvent_ModalMapStore::prev_type, wmEvent::prev_type, wmEvent_ModalMapStore::prev_val, wmKeyMapItem::propvalue, wmOperator::type, wmEvent::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 2279 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 3590 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 ( wmEvent event_state)
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 5004 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()

void WM_event_remove_handlers ( struct bContext C,
ListBase handlers 
)

◆ WM_event_remove_keymap_handler()

void WM_event_remove_keymap_handler ( ListBase handlers,
wmKeyMap keymap 
)

◆ WM_event_remove_ui_handler()

void WM_event_remove_ui_handler ( ListBase handlers,
wmUIHandlerFunc  handle_fn,
wmUIHandlerRemoveFunc  remove_fn,
void user_data,
bool  postpone 
)

◆ 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,
wmEvent event_state,
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,
wmEvent event_state,
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 5099 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()

constexpr 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 4896 of file wm_event_system.cc.

References wm_event_tablet_data_default().

◆ wm_eventemulation()

static void wm_eventemulation ( wmEvent event,
bool  test_only 
)
static

◆ wm_eventmatch()

static bool wm_eventmatch ( const wmEvent winevent,
const wmKeyMapItem kmi 
)
static

◆ 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 int wm_handler_fileselect_call ( bContext C,
ListBase handlers,
wmEventHandler_Op handler,
const wmEvent event 
)
static

◆ wm_handler_fileselect_do()

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

References ARegion::alignment, blender::compositor::area(), wmEventHandler_Op::area, bScreen::areabase, BKE_area_find_region_type(), BKE_report(), BKE_report_print_level_set(), BLI_assert, BLI_findindex(), BLI_listbase_is_single(), BLI_movelisttolist(), BLI_remlink(), C, wmOperatorType::cancel, wmEventHandler_Op::context, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_reports(), 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_, 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, wmWindowManager::reports, wmOperator::reports, RGN_ALIGN_BOTTOM, RGN_FLAG_HIDDEN, RGN_TYPE_HEADER, RPT_ERROR, RPT_WARNING, SPACE_FILE, ScrArea::spacedata, ScrArea::spacetype, wmOperator::type, UI_DPI_FAC, UI_popup_menu_reports(), wmEventHandler_Op::win, wmWindowManager::winactive, wmWindowManager::windows, wm_cursor_position_get(), wm_event_free_handler(), WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, wm_handler_op_context(), wm_operator_free_for_fileselect(), WM_operator_last_properties_store(), wm_operator_reports(), WM_report_banner_show(), wm_window_close(), WM_window_get_active_screen(), WM_window_is_temp_screen(), wm_window_make_drawable(), WM_window_pixels_x(), WM_window_pixels_y(), and wmEvent::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()

static void wm_handler_op_context_get_if_valid ( bContext C,
wmEventHandler_Op handler,
const wmEvent event,
ScrArea **  r_area,
ARegion **  r_region 
)
static

◆ wm_handler_operator_call()

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

References blender::compositor::area(), BLI_listbase_is_empty(), BLI_remlink(), C, CLOG_ERROR, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_region_set(), CTX_wm_window(), wmGizmo::flag, wmGizmoGroupType::flag, wmOperatorType::flag, bToolRef_Runtime::gizmo_group, wmGizmoGroupType::gzmap_params, wmEventHandler_Op::head, wmOperator::idname, ReportList::list, wmOperatorType::modal, wmOperatorType::modalkeymap, wmEventHandler_Op::op, wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RETVAL_CHECK, OPERATOR_RUNNING_MODAL, OPTYPE_UNDO, ot, wmOperator::reports, bToolRef::runtime, wmOperator::type, wmEventHandler::type, wm_add_reports(), WM_cursor_grab_disable(), wm_event_always_pass(), wm_event_free_handler(), wm_event_modalkeymap_begin(), wm_event_modalkeymap_end(), WM_gizmo_group_type_ensure_ptr_ex(), WM_GIZMO_OPERATOR_TOOL_INIT, WM_gizmogroup_ensure_init(), WM_gizmogrouptype_find(), WM_GIZMOGROUPTYPE_TOOL_INIT, wm_gizmomap_highlight_get(), wm_gizmomaps_handled_modal_update(), WM_gizmomaptype_ensure(), WM_gizmomaptype_group_init_runtime_with_region(), WM_HANDLER_BREAK, WM_HANDLER_CONTINUE, WM_HANDLER_HANDLED, WM_HANDLER_MODAL, wm_handler_op_context(), WM_HANDLER_TYPE_GIZMO, WM_HANDLER_TYPE_KEYMAP, WM_HANDLER_TYPE_OP, WM_LOG_HANDLERS, wm_operator_check_locked_interface(), wm_operator_finished(), WM_operator_free(), wm_operator_invoke(), WM_operator_properties_free(), wm_operator_reports(), WM_operatortype_find(), wm_region_mouse_co(), 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_ui_call()

static int wm_handler_ui_call ( bContext C,
wmEventHandler_UI handler,
const wmEvent event,
int  always_pass 
)
static

◆ wm_handlers_do()

static int wm_handlers_do ( bContext C,
wmEvent event,
ListBase handlers 
)
static

◆ wm_handlers_do_gizmo_handler()

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

◆ wm_handlers_do_intern()

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

◆ wm_handlers_do_keymap_with_gizmo_handler()

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

static int wm_handlers_do_keymap_with_keymap_handler ( bContext C,
wmEvent event,
ListBase handlers,
wmEventHandler_Keymap handler,
wmKeyMap keymap,
const bool  do_debug_handler 
)
static

◆ WM_main_add_notifier()

void WM_main_add_notifier ( unsigned int  type,
void reference 
)

Definition at line 293 of file wm_event_system.cc.

References wmNotifier::action, BLI_addtail(), wmNotifier::category, wmNotifier::data, ListBase::first, G_MAIN, NOTE_ACTION, NOTE_CATEGORY, NOTE_DATA, NOTE_SUBTYPE, wmWindowManager::notifier_queue, wmNotifier::reference, wmNotifier::subtype, type, Main::wm, and wm_test_duplicate_notifier().

Referenced by action_unlink_exec(), blender::ed::asset_browser::AssetCatalogTreeView::activate_catalog_by_id(), ANIM_apply_keyingset(), armature_circle_select(), armature_select_linked_impl(), asset_clear_exec(), asset_mark_exec(), blender::ed::space_node::backimage_fit_exec(), blender::ed::space_node::backimage_zoom_exec(), bpy_app_debug_value_set(), bpy_batch_remove(), bpy_orphans_purge(), bpy_rna_region_from_string(), brush_generic_tool_set(), brush_scale_size_exec(), cachefile_layer_add_exec(), cachefile_layer_move_exec(), cachefile_layer_remove_exec(), blender::ed::asset::AssetList::clear(), collection_duplicate_exec(), collection_flag_exec(), collection_hierarchy_delete_exec(), collection_instance_exec(), collection_isolate_exec(), collection_link_exec(), collection_new_exec(), collection_objects_select_exec(), collection_view_layer_exec(), collection_visibility_exec(), blender::ed::space_node::compo_updatejob(), 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::disable_selection::curves_disable_selection_exec(), blender::ed::curves::set_selection_domain::curves_set_selection_domain_exec(), do_lasso_select_armature(), do_lasso_select_objects(), do_lasso_select_pose(), blender::ed::asset_browser::AssetCatalogDropController::drop_asset_catalog_into_catalog(), blender::ed::asset_browser::AssetCatalogDropController::drop_assets_into_catalog(), ED_asset_catalog_add(), ED_asset_catalog_move(), ED_asset_catalog_remove(), ED_asset_catalog_rename(), 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_gpencil_tag_scene_gpencil(), ED_mesh_color_add(), ED_mesh_color_remove_index(), ED_mesh_sculpt_color_add(), ED_mesh_sculpt_color_remove_index(), ED_mesh_uv_add(), ED_mesh_uv_remove_index(), ED_node_set_active(), ED_node_tag_update_id(), ED_node_tree_pop(), ED_node_tree_push(), ED_node_tree_start(), ED_object_base_active_refresh(), ED_object_constraint_copy_for_object(), ED_object_constraint_copy_for_pose(), ED_object_constraint_link(), ED_object_constraint_move_to_index(), ED_object_editmode_enter_ex(), ED_object_editmode_exit_ex(), ED_object_gpencil_modifier_copy_to_object(), ED_object_gpencil_modifier_move_to_index(), ED_object_modifier_copy_to_object(), ED_object_modifier_move_to_index(), ED_object_particle_edit_mode_enter_ex(), ED_object_particle_edit_mode_exit_ex(), ED_object_shaderfx_copy(), ED_object_shaderfx_link(), ED_object_shaderfx_move_to_index(), 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_uvedit_pack_islands_multi(), ED_view3d_camera_lock_sync(), EDBM_selectmode_disable(), EDBM_selectmode_set_multi(), EDBM_selectmode_toggle_multi(), edbm_shortest_path_pick_ex(), EDBM_update(), edgering_select(), 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(), eyedropper_add_material(), eyedropper_gpencil_modal(), generateStrokes(), 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_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(), gpencil_brush_reset_all_exec(), gpencil_brush_reset_exec(), gpencil_selectmode_toggle_exec(), gpencil_update_geometry(), gpencil_uv_transform_calc(), gpencil_uv_transform_exit(), icon_preview_endjob(), blender::io::usd::import_endjob(), import_endjob(), blender::io::usd::import_startjob(), lib_id_override_editable_toggle_exec(), lineart_gpencil_bake_endjob(), make_paths_absolute_exec(), make_paths_relative_exec(), blender::ed::sculpt_paint::min_distance_edit::min_distance_edit_modal(), nlaedit_disable_tweakmode(), obedit_circle_select(), object_duplicates_make_real_exec(), outliner_hide_exec(), outliner_orphans_purge_exec(), outliner_select_sync_to_edit_bone(), outliner_select_sync_to_pose_bone(), outliner_unhide_all_exec(), override_remove_button_exec(), override_type_set_button_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(), ptcache_job_endjob(), rearrange_gpencil_channels(), render_endjob(), rna_property_update(), save_image_op(), scene_drop_invoke(), sculpt_dynamic_topology_toggle_exec(), sculpt_sample_detail_size_modal(), select_component_domain_invoke(), select_grouped_exec(), blender::ed::space_node::send_notifiers_after_tree_change(), shaderfx_copy_exec(), blender::ed::space_node::snode_bg_viewmove_modal(), solve_camera_freejob(), thumbnail_endjob(), trace_end_job(), track_markers_endjob(), tree_element_layer_collection_activate(), tree_element_master_collection_activate(), ui_rna_update_preferences_dirty(), 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(), viewRedrawPost(), weight_sample_invoke(), WM_file_tag_modified(), WM_operator_stack_clear(), wm_window_timer(), wm_xr_session_gpu_binding_context_create(), wm_xr_session_gpu_binding_context_destroy(), and wm_xr_session_update_screen().

◆ wm_main_remap_assetlist()

static void wm_main_remap_assetlist ( ID old_id,
ID new_id,
void UNUSEDuser_data 
)
static

Definition at line 337 of file wm_event_system.cc.

References ED_assetlist_storage_id_remap().

Referenced by WM_main_remap_editor_id_reference().

◆ WM_main_remap_editor_id_reference()

void WM_main_remap_editor_id_reference ( const IDRemapper *  mappings)

◆ wm_main_remap_msgbus_notify()

static void wm_main_remap_msgbus_notify ( ID old_id,
ID new_id,
void user_data 
)
static

Definition at line 342 of file wm_event_system.cc.

References user_data, WM_msg_id_remove(), and WM_msg_id_update().

Referenced by WM_main_remap_editor_id_reference().

◆ WM_main_remove_notifier_reference()

void WM_main_remove_notifier_reference ( const void reference)

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

Definition at line 314 of file wm_event_system.cc.

References ListBase::first, G_MAIN, LISTBASE_FOREACH_MUTABLE, wmWindowManager::message_bus, wmWindowManager::notifier_queue, Main::wm, WM_msg_id_remove(), and wm_notifier_clear().

Referenced by WM_init().

◆ WM_menu_name_call()

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

◆ wm_notifier_clear()

static void wm_notifier_clear ( wmNotifier note)
static

Definition at line 373 of file wm_event_system.cc.

Referenced by WM_main_remove_notifier_reference().

◆ WM_operator_call()

int WM_operator_call ( bContext C,
wmOperator op 
)

Definition at line 1158 of file wm_event_system.cc.

References C, and WM_operator_call_ex().

◆ WM_operator_call_ex()

int WM_operator_call_ex ( struct bContext C,
struct 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! T29537.

Definition at line 1153 of file wm_event_system.cc.

References C, and wm_operator_exec().

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

◆ wm_operator_call_internal()

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

◆ WM_operator_call_notest()

int WM_operator_call_notest ( struct bContext C,
struct 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 1163 of file wm_event_system.cc.

References C, and wm_operator_exec_notest().

Referenced by op_generic_value_invoke(), and WM_operator_filesel().

◆ WM_operator_call_py()

int WM_operator_call_py ( struct bContext C,
struct wmOperatorType ot,
wmOperatorCallContext  context,
struct PointerRNA properties,
struct 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 1700 of file wm_event_system.cc.

References C, blender::compositor::context, 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 5640 of file wm_event_system.cc.

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

Referenced by wm_handler_operator_call().

◆ WM_operator_check_ui_empty()

bool WM_operator_check_ui_empty ( wmOperatorType ot)

◆ wm_operator_create()

static wmOperator* wm_operator_create ( wmWindowManager wm,
wmOperatorType ot,
PointerRNA properties,
ReportList reports 
)
static

◆ wm_operator_exec()

static int wm_operator_exec ( bContext C,
wmOperator op,
const bool  repeat,
const bool  store 
)
static

◆ wm_operator_exec_notest()

static int wm_operator_exec_notest ( bContext C,
wmOperator op 
)
static

Simply calls exec with basic checks.

Definition at line 1139 of file wm_event_system.cc.

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

Referenced by WM_operator_call_notest().

◆ WM_operator_find_modal_by_type()

wmOperator* WM_operator_find_modal_by_type ( wmWindow win,
const wmOperatorType ot 
)

Return the first modal operator of type ot or NULL.

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

static void wm_operator_finished ( bContext C,
wmOperator op,
const bool  repeat,
const bool  store 
)
static

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

int WM_operator_name_call ( struct bContext C,
const char *  opstring,
wmOperatorCallContext  context,
struct PointerRNA properties,
const wmEvent event 
)

◆ WM_operator_name_call_ptr()

int WM_operator_name_call_ptr ( struct bContext C,
struct wmOperatorType ot,
wmOperatorCallContext  context,
struct 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 it's release. In these cases it's necessary to forward the current event being handled.

Definition at line 1644 of file wm_event_system.cc.

References BLI_assert, C, blender::compositor::context, wmOperatorType::idname, ot, wm_operator_call_internal(), and WM_operatortype_find().

Referenced by add_driver_button_menu_exec(), bone_mouse_select_menu(), constraint_reorder(), doc_view_manual_ui_context_exec(), ED_object_mode_set_ex(), file_browse_invoke(), file_directory_enter_handle(), ghost_event_proc(), gpencil_modifier_reorder(), id_remap_fn(), image_file_browse_invoke(), lib_relocate(), blender::ed::space_node::link_drag_search_exec_fn(), modifier_reorder(), object_mouse_select_menu(), operator_search_exec_fn(), outliner_item_drag_drop_invoke(), sculpt_detail_size_set_radial_control(), shaderfx_reorder(), transform_from_gizmo_invoke(), ui_but_anim_decorate_cb(), ui_handler_wait_for_input(), view3d_interactive_add_modal(), view3d_lightcache_update(), 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()

void WM_operator_name_call_ptr_with_depends_on_cursor ( bContext C,
wmOperatorType ot,
wmOperatorCallContext  opcontext,
PointerRNA properties,
const wmEvent event,
const char *  drawstr 
)

◆ WM_operator_name_call_with_properties()

int WM_operator_name_call_with_properties ( bContext C,
const char *  opstring,
wmOperatorCallContext  context,
IDProperty properties,
const wmEvent event 
)

◆ WM_operator_name_poll()

bool WM_operator_name_poll ( bContext C,
const char *  opstring 
)

Definition at line 1667 of file wm_event_system.cc.

References C, ot, WM_operator_poll(), and WM_operatortype_find().

Referenced by file_panel_asset_catalog_buttons_draw().

◆ WM_operator_poll()

bool WM_operator_poll ( bContext C,
wmOperatorType ot 
)

◆ WM_operator_poll_context()

bool WM_operator_poll_context ( bContext C,
wmOperatorType ot,
short  context 
)

◆ WM_operator_region_active_win_set()

void WM_operator_region_active_win_set ( struct bContext C)

Sets the active region for this space from the context.

See also
BKE_area_find_region_active_win

Definition at line 941 of file wm_event_system.cc.

References blender::compositor::area(), BLI_findindex(), C, CTX_wm_area(), CTX_wm_region(), ARegion::regiontype, and RGN_TYPE_WINDOW.

Referenced by wm_operator_finished().

◆ 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 1005 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 ( struct bContext C,
struct wmOperator op 
)

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

Definition at line 1168 of file wm_event_system.cc.

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

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

◆ WM_operator_repeat_check()

bool WM_operator_repeat_check ( const bContext UNUSEDC,
wmOperator op 
)

◆ WM_operator_repeat_last()

int WM_operator_repeat_last ( bContext C,
wmOperator op 
)

Definition at line 1176 of file wm_event_system.cc.

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

Referenced by repeat_last_exec().

◆ wm_operator_reports()

static void wm_operator_reports ( bContext C,
wmOperator op,
int  retval,
bool  caller_owns_reports 
)
static

◆ wm_paintcursor_tag()

static void wm_paintcursor_tag ( bContext C,
wmPaintCursor pc,
ARegion region 
)
static

◆ wm_paintcursor_test()

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

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

References blender::compositor::area(), 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()

void WM_report ( eReportType  type,
const char *  message 
)

◆ WM_report_banner_show()

void WM_report_banner_show ( void  )

◆ WM_report_banners_cancel()

void WM_report_banners_cancel ( struct Main bmain)

Hide all currently displayed banners and abort their timer.

Definition at line 821 of file wm_event_system.cc.

References BKE_reports_clear(), ListBase::first, wmWindowManager::reports, ReportList::reporttimer, Main::wm, and WM_event_remove_timer().

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

◆ WM_reportf()

void WM_reportf ( eReportType  type,
const char *  format,
  ... 
)

◆ WM_set_locked_interface()

void WM_set_locked_interface ( struct wmWindowManager wm,
bool  lock 
)

◆ wm_tablet_data_from_ghost()

void wm_tablet_data_from_ghost ( const GHOST_TabletData tablet_data,
wmTabletData wmtab 
)

◆ wm_test_duplicate_notifier()

static bool wm_test_duplicate_notifier ( const wmWindowManager wm,
uint  type,
void reference 
)
static

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

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

Referenced by uiTemplateInputStatus().

◆ WM_window_cursor_keymap_status_refresh()

void WM_window_cursor_keymap_status_refresh ( bContext C,
wmWindow win 
)

◆ WM_window_modal_keymap_status_draw()

bool WM_window_modal_keymap_status_draw ( bContext C,
wmWindow win,
uiLayout layout 
)

◆ WM_window_status_area_find()

ScrArea* WM_window_status_area_find ( struct wmWindow win,
struct 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 5796 of file wm_event_system.cc.

References blender::compositor::area(), ScrAreaMap::areabase, wmWindow::global_areas, LISTBASE_FOREACH, SCREENFULL, SPACE_STATUSBAR, and bScreen::state.

Referenced by WM_window_cursor_keymap_status_refresh(), and WM_window_status_area_tag_redraw().

◆ WM_window_status_area_tag_redraw()

void WM_window_status_area_tag_redraw ( wmWindow win)