diff options
Diffstat (limited to 'source/blender/editors/space_console/space_console.c')
-rw-r--r-- | source/blender/editors/space_console/space_console.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c index a592f35f629..182f2bd2e80 100644 --- a/source/blender/editors/space_console/space_console.c +++ b/source/blender/editors/space_console/space_console.c @@ -74,8 +74,8 @@ static SpaceLink *console_new(const bContext *UNUSED(C)) ar->alignment = RGN_ALIGN_BOTTOM; - /* main area */ - ar = MEM_callocN(sizeof(ARegion), "main area for text"); + /* main region */ + ar = MEM_callocN(sizeof(ARegion), "main region for text"); BLI_addtail(&sconsole->regionbase, ar); ar->regiontype = RGN_TYPE_WINDOW; @@ -129,7 +129,7 @@ static SpaceLink *console_duplicate(SpaceLink *sl) /* add handlers, stuff you only do once or on area/region changes */ -static void console_main_area_init(wmWindowManager *wm, ARegion *ar) +static void console_main_region_init(wmWindowManager *wm, ARegion *ar) { wmKeyMap *keymap; ListBase *lb; @@ -219,7 +219,7 @@ static void console_dropboxes(void) /* ************* end drop *********** */ -static void console_main_area_draw(const bContext *C, ARegion *ar) +static void console_main_region_draw(const bContext *C, ARegion *ar) { /* draw entirely, view changes should be handled here */ SpaceConsole *sc = CTX_wm_space_console(C); @@ -362,27 +362,39 @@ static void console_keymap(struct wmKeyConfig *keyconf) /****************** header region ******************/ /* add handlers, stuff you only do once or on area/region changes */ -static void console_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar) +static void console_header_region_init(wmWindowManager *UNUSED(wm), ARegion *ar) { ED_region_header_init(ar); } -static void console_header_area_draw(const bContext *C, ARegion *ar) +static void console_header_region_draw(const bContext *C, ARegion *ar) { ED_region_header(C, ar); } -static void console_main_area_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn) +static void console_main_region_listener(bScreen *UNUSED(sc), ScrArea *sa, ARegion *ar, wmNotifier *wmn) { // SpaceInfo *sinfo = sa->spacedata.first; /* context changes */ switch (wmn->category) { case NC_SPACE: - if (wmn->data == ND_SPACE_CONSOLE) { /* generic redraw request */ - ED_region_tag_redraw(ar); + { + if (wmn->data == ND_SPACE_CONSOLE) { + if (wmn->action == NA_EDITED) { + if ((wmn->reference && sa) && (wmn->reference == sa->spacedata.first)) { + /* we've modified the geometry (font size), re-calculate rect */ + console_textview_update_rect(wmn->reference, ar); + ED_region_tag_redraw(ar); + } + } + else { + /* generic redraw request */ + ED_region_tag_redraw(ar); + } } break; + } } } @@ -408,10 +420,10 @@ void ED_spacetype_console(void) art->regionid = RGN_TYPE_WINDOW; art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D; - art->init = console_main_area_init; - art->draw = console_main_area_draw; + art->init = console_main_region_init; + art->draw = console_main_region_draw; art->cursor = console_cursor; - art->listener = console_main_area_listener; + art->listener = console_main_region_listener; @@ -423,8 +435,8 @@ void ED_spacetype_console(void) art->prefsizey = HEADERY; art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_HEADER; - art->init = console_header_area_init; - art->draw = console_header_area_draw; + art->init = console_header_region_init; + art->draw = console_header_region_draw; BLI_addhead(&st->regiontypes, art); |