14#define DNA_DEPRECATED_ALLOW
79 if (win->workspace_hook !=
nullptr) {
133 win->screen =
nullptr;
156 if (win->workspace_hook !=
nullptr) {
162 win->workspace_hook->act_layout =
nullptr;
163 win->workspace_hook->temp_workspace_store =
nullptr;
164 win->workspace_hook->temp_layout_store =
nullptr;
169 win->ghostwin =
nullptr;
170 win->gpuctx =
nullptr;
171 win->eventstate =
nullptr;
172 win->eventstate_prev_press_time_ms = 0;
173 win->event_last_handled =
nullptr;
174 win->cursor_keymap_status =
nullptr;
175#if defined(WIN32) || defined(__APPLE__)
176 win->ime_data =
nullptr;
177 win->ime_data_is_composing =
false;
189 win->modalcursor = 0;
191 win->addmousemove =
true;
192 win->event_queue_check_click = 0;
193 win->event_queue_check_drag = 0;
194 win->event_queue_check_drag_handled = 0;
195 win->event_queue_consecutive_gesture_type = 0;
196 win->event_queue_consecutive_gesture_data =
nullptr;
201 if (win->stereo3d_format) {
236 wm->
runtime = MEM_new<blender::bke::WindowManagerRuntime>(__func__);
257 N_(
"window_managers"),
281#define MAX_OP_REGISTERED 32
321 while (op !=
nullptr) {
396 switch (area->spacetype) {
410 ListBase *lb[2] = {&win->handlers, &win->modalhandlers};
420 handler->
op =
nullptr;
434 const char *imports[] = {
"bpy",
nullptr};
557 screen->winid = win->
winid;
561 wm->
runtime = MEM_new<blender::bke::WindowManagerRuntime>(__func__);
bScreen * CTX_wm_screen(const bContext *C)
bool CTX_py_init_get(bContext *C)
void CTX_wm_manager_set(bContext *C, wmWindowManager *wm)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
ViewLayer * CTX_data_view_layer(const bContext *C)
void IDP_FreeProperty(IDProperty *prop)
void IDP_SyncGroupTypes(IDProperty *dest, const IDProperty *src, bool do_arraylen) ATTR_NONNULL()
@ IDTYPE_FLAGS_NO_ANIMDATA
@ IDTYPE_FLAGS_NO_LIBLINKING
@ IDTYPE_FLAGS_NO_MEMFILE_UNDO
@ IDTYPE_FLAGS_NEVER_UNUSED
void * BKE_libblock_alloc(Main *bmain, short type, const char *name, int flag) ATTR_WARN_UNUSED_RESULT
void id_us_ensure_real(ID *id)
void BKE_id_blend_write(BlendWriter *writer, ID *id)
void BKE_lib_query_foreachid_process(LibraryForeachIDData *data, ID **id_pp, int cb_flag)
#define BKE_LIB_FOREACHID_PROCESS_FUNCTION_CALL(data_, func_call_)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(data_, id_super_, cb_flag_)
int BKE_lib_query_foreachid_process_flags_get(const LibraryForeachIDData *data)
@ IDWALK_DO_DEPRECATED_POINTERS
bool BKE_lib_query_foreachid_iter_stop(const LibraryForeachIDData *data)
void BKE_reports_free(ReportList *reports)
void BKE_reports_init(ReportList *reports, int flag)
void BKE_screen_view3d_shading_blend_read_data(BlendDataReader *reader, View3DShading *shading)
void BKE_screen_area_map_blend_write(BlendWriter *writer, ScrAreaMap *area_map)
void BKE_screen_area_blend_read_after_liblink(BlendLibReader *reader, ID *parent_id, ScrArea *area)
void BKE_screen_view3d_shading_blend_write(BlendWriter *writer, View3DShading *shading)
bool BKE_screen_area_map_blend_read_data(BlendDataReader *reader, ScrAreaMap *area_map)
void BKE_screen_foreach_id_screen_area(LibraryForeachIDData *data, ScrArea *area)
void BKE_undosys_stack_destroy(UndoStack *ustack)
void BKE_workspace_active_layout_set(WorkSpaceInstanceHook *hook, int winid, WorkSpace *workspace, WorkSpaceLayout *layout) SETTER_ATTRS
Activate a layout.
bScreen * BKE_workspace_active_screen_get(const WorkSpaceInstanceHook *hook) GETTER_ATTRS
WorkSpace * BKE_workspace_active_get(WorkSpaceInstanceHook *hook) GETTER_ATTRS
void BKE_workspace_active_set(WorkSpaceInstanceHook *hook, WorkSpace *workspace) SETTER_ATTRS
WorkSpaceLayout * BKE_workspace_layout_find_global(const Main *bmain, const bScreen *screen, WorkSpace **r_workspace) ATTR_NONNULL(1
void BLI_gset_free(GSet *gs, GSetKeyFreeFP keyfreefp)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void * BLI_pophead(ListBase *listbase) ATTR_NONNULL(1)
#define STRNCPY(dst, src)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_data_globmap_add(BlendDataReader *reader, void *oldaddr, void *newaddr)
#define BLO_read_struct_list(reader, struct_name, list)
#define BLO_read_struct(reader, struct_name, ptr_p)
#define BLT_I18NCONTEXT_ID_WINDOWMANAGER
void BPY_DECREF_RNA_INVALIDATE(void *pyob_ptr)
void BPY_callback_wm_free(wmWindowManager *wm)
bool BPY_run_string_eval(bContext *C, const char *imports[], const char *expr)
struct wmWindowManager wmWindowManager
#define WM_KEYCONFIG_STR_DEFAULT
@ WM_EXTENSIONS_UPDATE_UNSET
void ED_spacetypes_keymap(wmKeyConfig *keyconf)
void ED_screens_init(bContext *C, Main *bmain, wmWindowManager *wm)
Read Guarded memory(de)allocation.
#define ND_SPACE_INFO_REPORT
void MEM_freeN(void *vmemh)
Object * base_pose_object
struct View3DShading shading
eWM_EventHandlerFlag flag
struct ReportList * reports
struct wmOperatorType * type
struct wmMsgBus * message_bus
struct wmKeyConfig * defaultconf
WindowManagerRuntimeHandle * runtime
struct UndoStack * undo_stack
struct wmWindow * winactive
struct wmKeyConfig * userconf
struct wmTimer * autosavetimer
struct wmWindow * windrawable
struct GSet * notifier_queue_set
struct wmKeyConfig * addonconf
const struct wmNotifier * notifier_current
struct WorkSpaceInstanceHook * workspace_hook
XrSessionSettings session_settings
struct wmXrRuntimeData * runtime
void WM_main(bContext *C)
void wm_close_and_free(bContext *C, wmWindowManager *wm)
void wm_clear_default_size(bContext *C)
void WM_operator_stack_clear(wmWindowManager *wm)
static void window_manager_blend_read_data(BlendDataReader *reader, ID *id)
static void window_manager_free_data(ID *id)
void WM_operator_type_set(wmOperator *op, wmOperatorType *ot)
static void window_manager_blend_read_after_liblink(BlendLibReader *reader, ID *id)
static void direct_link_wm_xr_data(BlendDataReader *reader, wmXrData *xr_data)
void WM_keyconfig_init(bContext *C)
void wm_operator_register(bContext *C, wmOperator *op)
static void wm_reports_free(wmWindowManager *wm)
void WM_operator_handlers_clear(wmWindowManager *wm, wmOperatorType *ot)
void WM_check(bContext *C)
void WM_keyconfig_reload(bContext *C)
static void window_manager_blend_write(BlendWriter *writer, ID *id, const void *id_address)
#define MAX_OP_REGISTERED
void wm_add_default(Main *bmain, bContext *C)
static void write_wm_xr_data(BlendWriter *writer, wmXrData *xr_data)
void WM_operator_free_all_after(wmWindowManager *wm, wmOperator *op)
void WM_operator_free(wmOperator *op)
static void window_manager_foreach_id(ID *id, LibraryForeachIDData *data)
void WM_drag_free_list(ListBase *lb)
void wm_draw_update(bContext *C)
void wm_event_do_handlers(bContext *C)
void wm_event_do_refresh_wm_and_depsgraph(bContext *C)
void WM_main_add_notifier(uint type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void wm_event_do_notifiers(bContext *C)
void WM_file_autosave_init(wmWindowManager *wm)
void wm_autosave_timer_end(wmWindowManager *wm)
wmKeyConfig * WM_keyconfig_new(wmWindowManager *wm, const char *idname, bool user_defined)
void WM_keyconfig_free(wmKeyConfig *keyconf)
void WM_keyconfig_update_tag(wmKeyMap *keymap, wmKeyMapItem *kmi)
void WM_msgbus_destroy(wmMsgBus *mbus)
wmMsgBus * WM_msgbus_create()
void wm_window_keymap(wmKeyConfig *keyconf)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
bool WM_operator_properties_default(PointerRNA *ptr, const bool do_update)
void WM_operator_properties_free(PointerRNA *ptr)
wmWindow * wm_window_new(const Main *bmain, wmWindowManager *wm, wmWindow *parent, bool dialog)
void WM_event_timers_free_all(wmWindowManager *wm)
void wm_window_events_process(const bContext *C)
void wm_window_make_drawable(wmWindowManager *wm, wmWindow *win)
void wm_window_free(bContext *C, wmWindowManager *wm, wmWindow *win)
void WM_event_timer_remove(wmWindowManager *wm, wmWindow *, wmTimer *timer)
void wm_window_ghostwindows_ensure(wmWindowManager *wm)
bScreen * WM_window_get_active_screen(const wmWindow *win)
void wm_xr_exit(wmWindowManager *wm)