Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/windowmanager/intern/wm.c')
-rw-r--r--source/blender/windowmanager/intern/wm.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index 4405b52888d..a068f84ae29 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -132,12 +132,18 @@ void WM_keymap_init(bContext *C)
{
wmWindowManager *wm= CTX_wm_manager(C);
+ if(!wm->defaultconf)
+ wm->defaultconf= WM_keyconfig_add(wm, "Blender");
+
if(wm && CTX_py_init_get(C) && (wm->initialized & WM_INIT_KEYMAP) == 0) {
- wm_window_keymap(wm);
- ED_spacetypes_keymap(wm);
+ /* create default key config */
+ wm_window_keymap(wm->defaultconf);
+ ED_spacetypes_keymap(wm->defaultconf);
wm->initialized |= WM_INIT_KEYMAP;
}
+
+ WM_keyconfig_userdef(wm);
}
void wm_check(bContext *C)
@@ -151,15 +157,16 @@ void wm_check(bContext *C)
}
if(wm==NULL) return;
if(wm->windows.first==NULL) return;
+
+ /* case: fileread */
+ if((wm->initialized & WM_INIT_WINDOW) == 0)
+ WM_keymap_init(C);
/* case: no open windows at all, for old file reads */
wm_window_add_ghostwindows(wm);
/* case: fileread */
if((wm->initialized & WM_INIT_WINDOW) == 0) {
-
- WM_keymap_init(C);
-
ED_screens_initialize(wm);
wm->initialized |= WM_INIT_WINDOW;
}
@@ -211,8 +218,7 @@ void wm_close_and_free(bContext *C, wmWindowManager *wm)
{
wmWindow *win;
wmOperator *op;
- wmKeyMap *km;
- wmKeymapItem *kmi;
+ wmKeyConfig *keyconf;
while((win= wm->windows.first)) {
BLI_remlink(&wm->windows, win);
@@ -226,19 +232,11 @@ void wm_close_and_free(bContext *C, wmWindowManager *wm)
WM_operator_free(op);
}
- while((km= wm->keymaps.first)) {
- for(kmi=km->keymap.first; kmi; kmi=kmi->next) {
- if(kmi->ptr) {
- WM_operator_properties_free(kmi->ptr);
- MEM_freeN(kmi->ptr);
- }
- }
-
- BLI_freelistN(&km->keymap);
- BLI_remlink(&wm->keymaps, km);
- MEM_freeN(km);
+ while((keyconf=wm->keyconfigs.first)) {
+ BLI_remlink(&wm->keyconfigs, keyconf);
+ WM_keyconfig_free(keyconf);
}
-
+
BLI_freelistN(&wm->queue);
BLI_freelistN(&wm->paintcursors);