Cleanup in area/region management

- more intelligence in area management for adding handlers and setting
  data correct. Space/Region type callbacks only have to do own things.

- added option for adding default handlers to areas/regions. (flag in
  type definition)

- ensured that region-types store the minsizes for regions.

- added boundbox check for handlers; note that it accepts pointer to
  boundbox, because handlers don't get reset on area-resizing or
  view changes. Example: view2d handlers use mask rect.

- handlers get now added on correct context levels (example frame change
  also worked in header)

- removed ->refresh() callback. Context refreshing is Listener.
  
- the ->init() is being called on all WM level actions, also after a
  file read, moving areas, re-opening areas etc. 

- fixed bug: crash on exit was caused by cleaning up Screen too late.

- UI_view2d_size_update() removed from draw callback, is init()

- regions now store (winx, winy) subwindow size.
This commit is contained in:
2008-12-10 13:56:54 +00:00
parent 1fdb9da2a7
commit 54c4ed469a
16 changed files with 222 additions and 227 deletions

View File

@@ -82,11 +82,10 @@ static void wm_ghostwindow_destroy(wmWindow *win)
}
}
/* including window itself */
/* including window itself, C can be NULL.
ED_screen_exit should have been called */
void wm_window_free(bContext *C, wmWindow *win)
{
ED_screen_exit(C, win, win->screen);
/* update context */
if(C) {
if(C->wm->windrawable==win)
@@ -98,8 +97,6 @@ void wm_window_free(bContext *C, wmWindow *win)
if(C->screen==win->screen)
C->screen= NULL;
}
/* XXX free screens */
if(win->eventstate) MEM_freeN(win->eventstate);