Blender  V2.93
Classes | Macros
wm_event_system.c File Reference
#include <math.h>
#include <stdlib.h>
#include <string.h>
#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_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_fileselect.h"
#include "ED_info.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_window.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"

Go to the source code of this file.

Classes

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)
 
void WM_main_remap_editor_id_reference (ID *old_id, ID *new_id)
 
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)
 
Operator Logic
static int wm_operator_call_internal (bContext *C, wmOperatorType *ot, PointerRNA *properties, ReportList *reports, const short context, const bool poll_only, 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_mouse_co (bContext *C, wmEvent *event)
 
static int wm_operator_invoke (bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports, const bool poll_only, bool use_last_properties)
 
int WM_operator_name_call_ptr (bContext *C, wmOperatorType *ot, short context, PointerRNA *properties)
 
int WM_operator_name_call (bContext *C, const char *opstring, short context, PointerRNA *properties)
 
int WM_operator_name_call_with_properties (struct bContext *C, const char *opstring, short context, struct IDProperty *properties)
 
void WM_menu_name_call (bContext *C, const char *menu_name, short context)
 
int WM_operator_call_py (bContext *C, wmOperatorType *ot, short 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)
 
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)
 
void wm_event_free (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 (ReportType type, const char *message)
 
void WM_reportf (ReportType type, const char *format,...)
 
Handle Single Event (All Handler Types)
static int wm_handlers_do_intern (bContext *C, 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 bool wm_event_inside_region (const wmEvent *event, const ARegion *region)
 
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 void 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.

void wm_event_do_handlers (bContext *C)
 
File Selector Handling
void WM_event_fileselect_event (wmWindowManager *wm, void *ophandle, int eventval)
 
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)
 
wmKeyMapWM_event_get_keymap_from_toolsystem_fallback (wmWindowManager *wm, wmEventHandler_Keymap *handler)
 
wmKeyMapWM_event_get_keymap_from_toolsystem (wmWindowManager *wm, wmEventHandler_Keymap *handler)
 
struct 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)
 
void WM_event_add_mousemove (wmWindow *win)
 
Event / Keymap Matching API
wmKeyMapWM_event_get_keymap_from_handler (wmWindowManager *wm, wmEventHandler_Keymap *handler)
 
wmKeyMapItemWM_event_match_keymap_item (bContext *C, wmKeyMap *keymap, const wmEvent *event)
 
wmKeyMapItemWM_event_match_keymap_item_from_handlers (bContext *C, wmWindowManager *wm, 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 keymap lookups are expensive so only perform this on changing tools, space types, pressing different modifier keys... etc.

static void wm_event_cursor_store (struct 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
 
void wm_event_free_handler (wmEventHandler *handler)
 
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, struct wmEvent_ModalMapStore *event_backup)
 
static void wm_event_modalkeymap_end (wmEvent *event, const struct 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 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)
 

Ghost Event Conversion

static const wmTabletData wm_event_tablet_data_default
 
static int convert_key (GHOST_TKey key)
 
static void wm_eventemulation (wmEvent *event, bool test_only)
 
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, 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)
 
void wm_event_add_ghostevent (wmWindowManager *wm, wmWindow *win, int type, void *customdata)
 

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.c.

Macro Definition Documentation

◆ PRINT

#define PRINT
Value:
if (do_debug_handler) \
printf

Definition at line 2470 of file wm_event_system.c.

◆ 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 since it's possible the gizmo operators would pass through these events when called, see: T65479.

Definition at line 102 of file wm_event_system.c.

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

Definition at line 4048 of file wm_event_system.c.

References 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_kKeyUpArrow, GHOST_kKeyUpPage, and GHOST_kKeyZ.

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

◆ region_event_inside()

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

◆ wm_action_not_handled()

static int wm_action_not_handled ( int  action)
static

Definition at line 2465 of file wm_event_system.c.

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 
)

◆ WM_event_add_fileselect()

void WM_event_add_fileselect ( bContext C,
wmOperator op 
)

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

Definition at line 3568 of file wm_event_system.c.

References wmEventHandler_Op::area, BLI_addhead(), C, wmOperatorType::check, wmEventHandler_Op::context, CTX_wm_area(), CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_region(), CTX_wm_window(), ED_fileselect_handler_area_find(), EVT_FILESELECT_CANCEL, EVT_FILESELECT_EXTERNAL_CANCEL, EVT_FILESELECT_FULL_OPEN, wmEventHandler_Op::head, wmEventHandler_Op::is_fileselect, LISTBASE_FOREACH_MUTABLE, MEM_callocN, wmWindow::modalhandlers, wmEventHandler_Op::op, wmEventHandler_Op::region, wmOperator::type, wmEventHandler::type, UI_popup_handlers_remove_all(), wmEventHandler_Op::win, WM_event_fileselect_event(), wm_handler_fileselect_do(), WM_HANDLER_TYPE_OP, and WM_window_is_temp_screen().

Referenced by cachefile_open_invoke(), clip_filesel(), file_browse_invoke(), find_missing_files_invoke(), image_filesel(), multires_external_save_invoke(), open_invoke(), paste_from_file_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_gpencil_import_svg_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 4446 of file wm_event_system.c.

References wmEvent::alt, GHOST_TEventKeyData::ascii, wmEvent::ascii, BLI_str_utf8_size(), GHOST_TEventButtonData::button, BUTTON4MOUSE, BUTTON5MOUSE, BUTTON6MOUSE, BUTTON7MOUSE, CLOG_ERROR, CLOG_INFO, CLOG_WARN, convert_key(), copy_v2_v2_int(), wmEvent::ctrl, GHOST_TEventTrackpadData::deltaX, GHOST_TEventTrackpadData::deltaY, e, wmWindow::eventstate, EVT_DATA_TIMER, EVT_ESCKEY, EVT_LEFTALTKEY, EVT_LEFTCTRLKEY, EVT_LEFTSHIFTKEY, EVT_OSKEY, EVT_RIGHTALTKEY, EVT_RIGHTCTRLKEY, EVT_RIGHTSHIFTKEY, EVT_UNKNOWNKEY, 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, wmEvent::is_repeat, GHOST_TEventTrackpadData::isDirectionInverted, ISKEYBOARD, ISMOUSE_BUTTON, GHOST_TEventKeyData::key, wmEvent::keymodifier, KM_DBL_CLICK, KM_MOD_FIRST, KM_MOD_SECOND, KM_NOTHING, KM_PRESS, KM_RELEASE, LEFTMOUSE, MIDDLEMOUSE, MOUSEMOVE, MOUSEPAN, MOUSEROTATE, MOUSESMARTZOOM, MOUSEZOOM, NDOF_BUTTON_NONE, NDOF_MOTION, NULL, wmEvent::oskey, wmEvent::prevtype, wmEvent::prevval, RIGHTMOUSE, wmEvent::shift, 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_double_click(), wm_event_prev_click_set(), wm_event_prev_values_set(), WM_event_print(), 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::x, GHOST_TEventTrackpadData::y, wmEvent::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()

struct 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 3635 of file wm_event_system.c.

References wmEventHandler_Op::area, BLI_addhead(), C, wmEventHandler_Op::context, CTX_wm_area(), CTX_wm_region(), CTX_wm_window(), wmEventHandler_Op::head, MEM_callocN, 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(), 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(), 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(), graphkeys_decimate_invoke(), graphview_cursor_invoke(), image_view_pan_init(), image_view_zoom_init(), knifetool_invoke(), light_cache_bake_invoke(), lineart_gpencil_bake_common(), loopcut_init(), minimize_stretch_invoke(), multiresbake_image_exec(), node_insert_offset_invoke(), node_link_invoke(), node_resize_init(), object_transfer_mode_invoke(), object_transform_axis_target_invoke(), op_generic_value_invoke(), outliner_item_openclose_invoke(), paint_invoke(), paintcurve_slide_invoke(), pose_slide_invoke_common(), poselib_preview_invoke(), ptcache_bake_invoke(), radial_control_invoke(), region_scale_invoke(), sample_color_invoke(), sample_invoke(), screen_opengl_render_invoke(), screen_render_invoke(), scroller_activate_invoke(), sculpt_brush_stroke_invoke(), sculpt_cloth_filter_invoke(), sculpt_color_filter_invoke(), sculpt_expand_invoke(), sculpt_mask_expand_invoke(), sculpt_mesh_filter_invoke(), sculpt_sample_detail_size_invoke(), sequencer_slip_invoke(), slide_marker_invoke(), slide_plane_marker_invoke(), slide_point_invoke(), slide_spline_curvature_invoke(), 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(), 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_notifier()

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

Definition at line 266 of file wm_event_system.c.

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_find_exec(), animchannels_group_exec(), animchannels_mouseclick_invoke(), animchannels_rearrange_exec(), animchannels_rename_invoke(), 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_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(), average_islands_scale_exec(), average_tracks_exec(), background_image_add_invoke(), background_image_remove_exec(), bake_image_exec(), bake_invoke(), bone_select_menu_exec(), bookmark_select_exec(), box_select_exec(), box_select_graph_exec(), 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_render_border_exec(), clear_solution_exec(), clear_tilt_exec(), clear_track_path_exec(), 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_instance_add_exec(), 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_delete_exec(), constraint_fn(), constraint_move_down_exec(), constraint_move_up_exec(), convert_proxy_to_override_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_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(), curvesurf_prim_add(), cyclic_toggle_exec(), cylinder_project_exec(), data_transfer_exec(), datalayout_transfer_exec(), de_select_all_exec(), de_select_first_exec(), de_select_last_exec(), delete_exec(), delete_fmodifier_cb(), delete_key_button_exec(), delete_key_exec(), delete_key_v3d_exec(), 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(), 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(), driverdropper_sample(), drop_named_material_invoke(), 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_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_shape_key_add(), ED_outliner_select_sync_from_outliner(), ED_scene_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_invoke(), 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(), ghost_event_proc(), gpencil_actframe_delete_all_exec(), gpencil_actframe_delete_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_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_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_move_to_layer_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_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_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(), graphkeys_bake_exec(), graphkeys_box_select_exec(), graphkeys_clean_exec(), graphkeys_click_insert_exec(), graphkeys_clickselect_exec(), graphkeys_columnselect_exec(), graphkeys_decimate_exec(), graphkeys_decimate_modal(), graphkeys_decimate_modal_update(), graphkeys_delete_exec(), graphkeys_deselectall_exec(), graphkeys_duplicate_exec(), graphkeys_easing_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(), id_override_library_delete_fn(), id_override_library_reset_fn(), id_override_library_resync_fn(), 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_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_proxy_exec(), 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_material_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(), node_add_file_exec(), node_attach_invoke(), node_box_select_exec(), node_circleselect_exec(), node_copy_color_exec(), node_detach_exec(), node_group_edit_exec(), node_hide_toggle_exec(), node_join_exec(), node_mouse_select(), node_options_toggle_exec(), node_parent_set_exec(), node_select_all_exec(), node_select_grouped_exec(), node_select_linked_from_exec(), node_select_linked_to_exec(), node_select_single(), node_socket_toggle_exec(), ntree_socket_add_exec(), ntree_socket_move_exec(), ntree_socket_remove_exec(), object_add_hook_newob_exec(), object_add_hook_selob_exec(), object_add_named_exec(), object_add_text_exec(), object_armature_add_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_data_instance_add_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_proxy_to_override_convert_fn(), 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_paths_exec(), object_update_paths_range_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_object_operation_exec(), outliner_orphans_purge_exec(), outliner_select_all_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_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(), 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(), 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(), 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(), select_all_exec(), select_exec(), select_grouped_exec(), select_invoke(), 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(), 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_sound_strip_exec(), sequencer_box_select_exec(), sequencer_change_effect_input_exec(), sequencer_change_effect_type_exec(), sequencer_change_path_exec(), sequencer_de_select_all_exec(), sequencer_delete_exec(), sequencer_enable_proxies_exec(), sequencer_gap_insert_exec(), sequencer_gap_remove_exec(), sequencer_lock_exec(), sequencer_meta_make_exec(), sequencer_meta_separate_exec(), sequencer_meta_toggle_exec(), sequencer_mute_exec(), sequencer_offset_clear_exec(), sequencer_paste_exec(), sequencer_reassign_inputs_exec(), sequencer_refresh_all_exec(), sequencer_reload_exec(), sequencer_rendersize_exec(), sequencer_select_exec(), sequencer_select_grouped_exec(), sequencer_select_handles_exec(), sequencer_select_inverse_exec(), sequencer_select_less_exec(), sequencer_select_linked_exec(), sequencer_select_linked_pick_invoke(), sequencer_select_more_exec(), sequencer_select_side_exec(), sequencer_select_side_of_frame_exec(), sequencer_separate_images_exec(), sequencer_set_range_to_strips_exec(), sequencer_slip_exec(), sequencer_slip_invoke(), sequencer_slip_modal(), sequencer_snap_exec(), sequencer_split_exec(), sequencer_strip_jump_exec(), sequencer_strip_transform_clear_exec(), sequencer_strip_transform_fit_exec(), sequencer_swap_data_exec(), sequencer_swap_exec(), sequencer_swap_inputs_exec(), sequencer_unlock_exec(), sequencer_unmute_exec(), 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(), snap_sel_to_grid_exec(), snap_selected_to_location(), snode_notify(), 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(), 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(), 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(), 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_imageuser_layer_menu_step(), ui_imageuser_pass_menu_step(), ui_imageuser_slot_menu_step(), ui_numedit_but_TRACKPREVIEW(), undo_history_exec(), unify_length_exec(), update_autoflags_fcurve(), 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_linked_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_lasso_select(), view3d_pastebuffer_exec(), view3d_select_exec(), view3d_setobjectascamera_exec(), view3d_smoothview_apply(), 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_remove_aov_exec(), view_layer_remove_exec(), view_lock_clear_exec(), view_lock_to_active_exec(), view_zoomdrag_apply(), view_zoomstep_apply_ex(), viewer_border_exec(), viewRedrawForce(), viewRedrawPost(), visual_transform_apply_exec(), voxel_remesh_exec(), 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(), workspace_append_activate_exec(), workspace_delete_exec(), workspace_new_exec(), workspace_reorder_to_back_exec(), workspace_reorder_to_front_exec(), 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 ( struct CursorKeymapInfo_State state,
const wmEvent event,
short  space_type,
short  region_type,
const bToolRef tref 
)
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)

Definition at line 3263 of file wm_event_system.c.

References 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_listbase_is_empty(), BLI_remlink(), C, RenderData::cfra, CLOG_INFO, 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, wmWindowManager::drags, 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(), ELEM, wmTooltipState::event_xy, EVT_DROP, wmTooltipState::exit_on_event, FPS, G, G_DEBUG_EVENTS, G_DEBUG_HANDLERS, Scene::id, ID_RECALC_AUDIO_SEEK, INBETWEEN_MOUSEMOVE, wmEvent::is_repeat, CCL_NAMESPACE_BEGIN::isfinite(), ISKEYMODIFIER, ISMOUSE_BUTTON, KM_PRESS, len_manhattan_v2v2_int(), LISTBASE_FOREACH, MOUSEMOVE, NC_WINDOW, NDOF_MOTION, NULL, wmEvent::prevx, wmEvent::prevy, 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_drags_check_ops(), wm_event_add(), WM_event_add_notifier(), wm_event_drag_and_drop_test(), wm_event_free(), wm_event_free_all(), wm_event_free_and_remove_from_queue_if_valid(), wm_event_inside_rect(), wm_event_inside_region(), 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_tooltip_clear(), WM_tooltip_init(), wm_tweakevent_test(), 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(), wmEvent::x, and wmEvent::y.

Referenced by ghost_event_proc(), and WM_main().

◆ wm_event_do_notifiers()

void wm_event_do_notifiers ( bContext C)

◆ 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 396 of file wm_event_system.c.

References blender::compositor::area(), bScreen::areabase, C, CTX_wm_area_set(), CTX_wm_manager(), CTX_wm_window_set(), ED_area_do_refresh(), LISTBASE_FOREACH, NULL, 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_drag_and_drop_test()

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

void wm_event_free ( wmEvent event)

◆ wm_event_free_all()

void wm_event_free_all ( wmWindow win)

Definition at line 214 of file wm_event_system.c.

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 3241 of file wm_event_system.c.

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 206 of file wm_event_system.c.

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

Referenced by wm_event_add_trackpad().

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

wmKeyMap* WM_event_get_keymap_from_handler ( wmWindowManager wm,
wmEventHandler_Keymap handler 
)

◆ WM_event_get_keymap_from_toolsystem()

wmKeyMap* WM_event_get_keymap_from_toolsystem ( wmWindowManager wm,
wmEventHandler_Keymap handler 
)

◆ WM_event_get_keymap_from_toolsystem_fallback()

wmKeyMap* WM_event_get_keymap_from_toolsystem_fallback ( wmWindowManager wm,
wmEventHandler_Keymap handler 
)

◆ wm_event_handler_ui_cancel()

static void wm_event_handler_ui_cancel ( bContext C)
static

Definition at line 743 of file wm_event_system.c.

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 3094 of file wm_event_system.c.

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

Referenced by wm_event_do_handlers().

◆ wm_event_inside_region()

static bool wm_event_inside_region ( const wmEvent event,
const ARegion region 
)
static

Definition at line 3105 of file wm_event_system.c.

References ED_region_contains_xy(), wm_event_always_pass(), and wmEvent::x.

Referenced by wm_event_do_handlers().

◆ wm_event_is_double_click()

static bool wm_event_is_double_click ( const wmEvent event)
static

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

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

Definition at line 3670 of file wm_event_system.c.

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

Referenced by ED_area_exit().

◆ WM_event_modal_handler_region_replace()

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

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

Definition at line 3688 of file wm_event_system.c.

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

Referenced by ED_region_exit().

◆ wm_event_modalkeymap_begin()

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

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

  • Matching keymap items with the operators modal keymap.
  • 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 1958 of file wm_event_system.c.

References BLI_assert, C, CTX_wm_manager(), wmEvent_ModalMapStore::dbl_click_disabled, EVT_MODAL_MAP, KM_DBL_CLICK, KM_PRESS, wmOperatorType::modalkeymap, NULL, wmOperator::opm, wmEvent_ModalMapStore::prevtype, wmEvent::prevtype, wmEvent_ModalMapStore::prevval, 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 struct 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 2025 of file wm_event_system.c.

References wmEvent_ModalMapStore::dbl_click_disabled, EVT_MODAL_MAP, KM_DBL_CLICK, wmEvent_ModalMapStore::prevtype, wmEvent_ModalMapStore::prevval, 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

◆ wm_event_prev_click_set()

static void wm_event_prev_click_set ( wmEvent event,
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 4390 of file wm_event_system.c.

References wmEvent::prevtype, wmEvent::prevval, wmEvent::type, and wmEvent::val.

Referenced by wm_event_add_ghostevent().

◆ WM_event_remove_area_handler()

void WM_event_remove_area_handler ( ListBase handlers,
void *  area 
)

◆ WM_event_remove_handlers()

void WM_event_remove_handlers ( 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,
const 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_tablet_data_default_set()

void WM_event_tablet_data_default_set ( wmTabletData tablet_data)

Definition at line 4286 of file wm_event_system.c.

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

Definition at line 2232 of file wm_event_system.c.

References ARegion::alignment, blender::compositor::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, NULL, SpaceFile::op, wmEventHandler_Op::op, wmWindowManager::op_undo_depth, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPTYPE_UNDO, OPTYPE_UNDO_GROUPED, 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(), 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(), wmEvent::x, and wmEvent::y.

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

static int wm_handler_operator_call ( bContext C,
ListBase handlers,
wmEventHandler handler_base,
wmEvent event,
PointerRNA properties,
const char *  kmi_idname 
)
static

Definition at line 2042 of file wm_event_system.c.

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, NULL, 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,
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 271 of file wm_event_system.c.

References wmNotifier::action, BLI_addtail(), wmNotifier::category, wmNotifier::data, ListBase::first, G_MAIN, MEM_callocN, 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 ANIM_apply_keyingset(), armature_circle_select(), armature_select_linked_impl(), asset_clear_exec(), asset_mark_exec(), backimage_fit_exec(), backimage_zoom_exec(), bpy_app_debug_value_set(), bpy_batch_remove(), bpy_orphans_purge(), brush_generic_tool_set(), brush_scale_size_exec(), 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(), compo_updatejob(), copy_particle_systems_to_object(), do_lasso_select_armature(), do_lasso_select_objects(), do_lasso_select_pose(), ED_fileselect_activate_by_id(), ED_fileselect_clear(), 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_texture_add(), ED_mesh_uv_texture_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_generic(), edgering_select(), eyedropper_add_material(), eyedropper_gpencil_modal(), generateStrokes(), geometry_attribute_add_exec(), geometry_attribute_remove_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(), import_endjob(), lineart_gpencil_bake_endjob(), make_paths_absolute_exec(), make_paths_relative_exec(), mouse_action_keys(), 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(), posttrans_gpd_clean(), posttrans_mask_clean(), preferences_asset_library_remove_exec(), preview_endjob(), 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_grouped_exec(), shaderfx_copy_exec(), snode_bg_viewmove_modal(), snode_notify(), solve_camera_freejob(), trace_end_job(), track_markers_endjob(), tree_element_layer_collection_activate(), tree_element_master_collection_activate(), ui_rna_update_preferences_dirty(), uv_select_tag_update_for_object(), uv_shortest_path_pick_ex(), uvedit_pack_islands_multi(), uvedit_unwrap_multi(), viewRedrawPost(), weight_sample_invoke(), WM_file_tag_modified(), WM_operator_stack_clear(), wm_window_timer(), wm_xr_session_gpu_binding_context_create(), and wm_xr_session_gpu_binding_context_destroy().

◆ WM_main_remap_editor_id_reference()

void WM_main_remap_editor_id_reference ( ID old_id,
ID new_id 
)

◆ 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 295 of file wm_event_system.c.

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 ( bContext C,
const char *  menu_name,
short  context 
)

Call an existent menu. The menu can be created in C or Python.

Definition at line 1631 of file wm_event_system.c.

References C, context, ot, ptr, RNA_string_set(), WM_operator_name_call_ptr(), WM_operator_properties_create_ptr(), WM_operator_properties_free(), and WM_operatortype_find().

Referenced by do_outliner_operation_event().

◆ wm_notifier_clear()

static void wm_notifier_clear ( wmNotifier note)
static

Definition at line 342 of file wm_event_system.c.

Referenced by WM_main_remove_notifier_reference().

◆ WM_operator_call()

int WM_operator_call ( bContext C,
wmOperator op 
)

Definition at line 1121 of file wm_event_system.c.

References C, and WM_operator_call_ex().

◆ WM_operator_call_ex()

int WM_operator_call_ex ( bContext C,
wmOperator op,
const bool  store 
)

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

Parameters
storeStore settings for re-use.
Warning
do not use this within an operator to call its self! T29537.

Definition at line 1116 of file wm_event_system.c.

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 short  context,
const bool  poll_only,
wmEvent event 
)
static

◆ WM_operator_call_notest()

int WM_operator_call_notest ( bContext C,
wmOperator op 
)

This is intended to be used when an invoke operator wants to call exec on its self 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 1131 of file wm_event_system.c.

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 ( bContext C,
wmOperatorType ot,
short  context,
PointerRNA properties,
ReportList reports,
const 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 1648 of file wm_event_system.c.

References C, context, CTX_wm_manager(), NULL, 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 4900 of file wm_event_system.c.

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

◆ wm_operator_finished()

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

◆ wm_operator_invoke()

static int wm_operator_invoke ( bContext C,
wmOperatorType ot,
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 ( bContext C,
const char *  opstring,
short  context,
PointerRNA properties 
)

◆ WM_operator_name_call_ptr()

int WM_operator_name_call_ptr ( bContext C,
wmOperatorType ot,
short  context,
PointerRNA properties 
)

◆ WM_operator_name_call_with_properties()

int WM_operator_name_call_with_properties ( struct bContext C,
const char *  opstring,
short  context,
struct IDProperty properties 
)

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

Sets the active region for this space from the context.

See also
BKE_area_find_region_active_win

Definition at line 903 of file wm_event_system.c.

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 965 of file wm_event_system.c.

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

Referenced by wm_operator_finished().

◆ WM_operator_repeat()

int WM_operator_repeat ( bContext C,
wmOperator op 
)

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

Definition at line 1139 of file wm_event_system.c.

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 
)
Returns
true if WM_operator_repeat can run. Simple check for now but may become more involved. To be sure the operator can run call WM_operator_poll(C, op->type) also, since this call checks if WM_operator_repeat() can run at all, not that it WILL run at any time.

Definition at line 1161 of file wm_event_system.c.

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

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

◆ WM_operator_repeat_last()

int WM_operator_repeat_last ( bContext C,
wmOperator op 
)

Definition at line 1147 of file wm_event_system.c.

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

void WM_report ( ReportType  type,
const char *  message 
)

◆ WM_report_banner_show()

void WM_report_banner_show ( void  )

◆ WM_report_banners_cancel()

void WM_report_banners_cancel ( Main bmain)

Hide all currently displayed banners and abort their timer.

Definition at line 779 of file wm_event_system.c.

References BKE_reports_clear(), ListBase::first, NULL, 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 ( ReportType  type,
const char *  format,
  ... 
)

◆ WM_set_locked_interface()

void WM_set_locked_interface ( 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 5039 of file wm_event_system.c.

References wmWindow::cursor_keymap_status, NULL, 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 ( wmWindow win,
bScreen screen 
)

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

Definition at line 5057 of file wm_event_system.c.

References blender::compositor::area(), ScrAreaMap::areabase, wmWindow::global_areas, LISTBASE_FOREACH, NULL, 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)

Variable Documentation

◆ wm_event_tablet_data_default

const wmTabletData wm_event_tablet_data_default
static
Initial value:
= {
.active = EVT_TABLET_NONE,
.pressure = 1.0f,
.x_tilt = 0.0f,
.y_tilt = 0.0f,
.is_motion_absolute = false,
}
@ EVT_TABLET_NONE

Definition at line 4278 of file wm_event_system.c.

Referenced by WM_event_tablet_data_default_set(), and wm_tablet_data_from_ghost().