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.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c
index d62b24ed806..19bf8e67db7 100644
--- a/source/blender/windowmanager/intern/wm.c
+++ b/source/blender/windowmanager/intern/wm.c
@@ -43,12 +43,14 @@
#include "wm_event_system.h"
#include "wm_event_types.h"
+#include "ED_screen.h"
+
/* ****************************************************** */
#define MAX_OP_REGISTERED 32
/* all operations get registered in the windowmanager here */
/* called on event handling by event_system.c */
-void WM_operator_register(wmWindowManager *wm, wmOperator *op)
+void wm_operator_register(wmWindowManager *wm, wmOperator *op)
{
wmOperator *opc= MEM_mallocN(sizeof(wmOperator), "operator registry");
int tot;
@@ -90,10 +92,17 @@ void wm_check(bContext *C)
/* case: no open windows at all, for old file reads */
wm_window_add_ghostwindows(C->wm);
- if(C->window==NULL) C->window= C->wm->windrawable;
+ if(C->window==NULL) {
+ wm_window_make_drawable(C, C->wm->windrawable);
+ }
+ /* case: fileread */
if(C->wm->initialized==0) {
+
wm_window_keymap(C->wm);
+ ed_screen_keymap(C->wm);
+
+ ED_screens_initialize(C->wm);
C->wm->initialized= 1;
}
}
@@ -108,7 +117,7 @@ void wm_add_default(bContext *C)
win= wm_window_new(C, C->screen);
wm->windrawable= win;
- C->window= win;
+ wm_window_make_drawable(C, win);
}
@@ -123,9 +132,12 @@ void wm_close_and_free(bContext *C, wmWindowManager *wm)
}
BLI_freelistN(&wm->operators);
+
BLI_freelistN(&wm->windowkeymap);
BLI_freelistN(&wm->screenkeymap);
+ BLI_freelistN(&wm->queue);
+
if(C && C->wm==wm) C->wm= NULL;
}
@@ -151,15 +163,12 @@ void WM_main(bContext *C)
/* per window, all events to the window, screen, area and region handlers */
wm_event_do_handlers(C);
+ /* events have left notes about changes, we handle and cache it */
+ wm_event_do_notifiers(C);
+
+ /* execute cached changes draw */
+ wm_draw_update(C);
}
}
-/* While (local_event) {
-Update controller stack if active changed ()
-Match event to an action()
-Process_event()
-Do_notifications()
-Do_draw_updates()
-}
-*/