Commit: 05c8590896aeb9b7cfc63b91cfd3425bf5845624 Author: Dalai Felinto Date: Fri Jul 25 15:55:13 2014 -0300 Branches: multiview https://developer.blender.org/rB05c8590896aeb9b7cfc63b91cfd3425bf5845624
multiview: remove old clean ui operator This functionality is still necessary, but it was refactored and sent for review independently in D678 (https://developer.blender.org/D678) =================================================================== M source/blender/editors/include/ED_screen.h M source/blender/editors/screen/area.c M source/blender/editors/screen/screen_edit.c M source/blender/editors/screen/screen_ops.c M source/blender/makesdna/DNA_screen_types.h =================================================================== diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h index dcca3db..d31be3e 100644 --- a/source/blender/editors/include/ED_screen.h +++ b/source/blender/editors/include/ED_screen.h @@ -111,7 +111,6 @@ ScrArea *ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type); void ED_screen_full_prevspace(struct bContext *C, ScrArea *sa); void ED_screen_full_restore(struct bContext *C, ScrArea *sa); struct ScrArea *ED_screen_full_toggle(struct bContext *C, struct wmWindow *win, struct ScrArea *sa); -struct ScrArea *ED_screen_clean_toggle(struct bContext *C, struct wmWindow *win, struct ScrArea *sa); void ED_screens_header_tools_menu_create(struct bContext *C, struct uiLayout *layout, void *arg); /* anim */ diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 495ab97..c671214 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -830,12 +830,9 @@ static void region_azone_tria(ScrArea *sa, AZone *az, ARegion *ar) } -static void region_azone_initialize(bScreen *screen, ScrArea *sa, ARegion *ar, AZEdge edge) +static void region_azone_initialize(ScrArea *sa, ARegion *ar, AZEdge edge) { AZone *az; - - if (screen->full == SCREENFULLCLEAN) - return; az = (AZone *)MEM_callocN(sizeof(AZone), "actionzone"); BLI_addtail(&(sa->actionzones), az); @@ -862,18 +859,18 @@ static void region_azone_initialize(bScreen *screen, ScrArea *sa, ARegion *ar, A /* *************************************************************** */ -static void region_azone_add(bScreen *sc, ScrArea *sa, ARegion *ar, int alignment) +static void region_azone_add(ScrArea *sa, ARegion *ar, int alignment) { /* edge code (t b l r) is along which area edge azone will be drawn */ if (alignment == RGN_ALIGN_TOP) - region_azone_initialize(sc, sa, ar, AE_BOTTOM_TO_TOPLEFT); + region_azone_initialize(sa, ar, AE_BOTTOM_TO_TOPLEFT); else if (alignment == RGN_ALIGN_BOTTOM) - region_azone_initialize(sc, sa, ar, AE_TOP_TO_BOTTOMRIGHT); + region_azone_initialize(sa, ar, AE_TOP_TO_BOTTOMRIGHT); else if (alignment == RGN_ALIGN_RIGHT) - region_azone_initialize(sc, sa, ar, AE_LEFT_TO_TOPRIGHT); + region_azone_initialize(sa, ar, AE_LEFT_TO_TOPRIGHT); else if (alignment == RGN_ALIGN_LEFT) - region_azone_initialize(sc, sa, ar, AE_RIGHT_TO_TOPLEFT); + region_azone_initialize(sa, ar, AE_RIGHT_TO_TOPLEFT); } /* dir is direction to check, not the splitting edge direction! */ @@ -1170,7 +1167,7 @@ static void region_rect_recursive(wmWindow *win, ScrArea *sa, ARegion *ar, rcti * must be minimum '4' */ } else { - region_azone_add(win->screen, sa, ar, alignment); + region_azone_add(sa, ar, alignment); } region_rect_recursive(win, sa, ar->next, remainder, quad); diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 031afc0..5beab9f 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1182,6 +1182,8 @@ void ED_screen_draw(wmWindow *win) glDisable(GL_BLEND); } + + win->screen->do_draw = false; } /* helper call for below, dpi changes headers */ @@ -1584,7 +1586,7 @@ void ED_screen_delete(bContext *C, bScreen *sc) int delete = 1; /* don't allow deleting temp fullscreens for now */ - if (sc->full == SCREENFULL || sc->full == SCREENFULLCLEAN) { + if (sc->full == SCREENFULL) { return; } @@ -1899,102 +1901,6 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa) return sc->areabase.first; } -/* this function toggles: if area is full then the parent will be restored */ -ScrArea *ED_screen_clean_toggle(bContext *C, wmWindow *win, ScrArea *sa) -{ - bScreen *sc, *oldscreen; - ARegion *ar; - - if (sa) { - /* ensure we don't have a button active anymore, can crash when - * switching screens with tooltip open because region and tooltip - * are no longer in the same screen */ - for (ar = sa->regionbase.first; ar; ar = ar->next) - uiFreeBlocks(C, &ar->uiblocks); - - /* prevent hanging header prints */ - ED_area_headerprint(sa, NULL); - } - - if (sa && sa->fullclean) { - ScrArea *old; - - sc = sa->fullclean; /* the old screen to restore */ - oldscreen = win->screen; /* the one disappearing */ - - sc->full = SCREENNORMAL; - - /* find old area */ - for (old = sc->areabase.first; old; old = old->next) - if (old->fullclean) break; - if (old == NULL) { - if (G.debug & G_DEBUG) - printf("%s: something wrong in areafullscreen\n", __func__); - return NULL; - } - - /* restore the old side panels/header visibility */ - for (ar = sa->regionbase.first; ar; ar = ar->next) - ar->flag = ar->flagclean; - - ED_area_data_swap(old, sa); - old->fullclean = NULL; - - /* animtimer back */ - sc->animtimer = oldscreen->animtimer; - oldscreen->animtimer = NULL; - - ED_screen_set(C, sc); - - BKE_screen_free(oldscreen); - BKE_libblock_free(CTX_data_main(C), oldscreen); - - } - else { - ScrArea *newa; - char newname[MAX_ID_NAME - 2]; - - oldscreen = win->screen; - - oldscreen->full = SCREENFULLCLEAN; - BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name + 2, "stereo"); - sc = ED_screen_add(win, oldscreen->scene, newname); - sc->full = SCREENFULLCLEAN; - - /* timer */ - sc->animtimer = oldscreen->animtimer; - oldscreen->animtimer = NULL; - - newa = (ScrArea *)sc->areabase.first; - ED_area_newspace(C, newa, sa->spacetype); - - /* copy area */ - ED_area_data_swap(newa, sa); - - /* temporarily hide the side panels/header */ - for (ar = newa->regionbase.first; ar; ar = ar->next) { - ar->flagclean = ar->flag; - - if (ELEM(ar->regiontype, - RGN_TYPE_UI, - RGN_TYPE_PREVIEW, - RGN_TYPE_HEADER, - RGN_TYPE_TOOLS)) - ar->flag |= RGN_FLAG_HIDDEN; - } - - sa->fullclean = oldscreen; - newa->fullclean = oldscreen; - - ED_screen_set(C, sc); - } - - /* XXX bad code: setscreen() ends with first area active. fullscreen render assumes this too */ - CTX_wm_area_set(C, sc->areabase.first); - - return sc->areabase.first; -} - /* update frame rate info for viewport drawing */ void ED_refresh_viewport_fps(bContext *C) { diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index faec7bc..7d22990 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -2332,43 +2332,6 @@ static void SCREEN_OT_screen_full_area(wmOperatorType *ot) } -/* special fullscreen mode. Initially intended for stereo-enabled editors - but useful for other editors as well */ -/* XXX no shortcut available for this - XXX we need a shortcut to toggle HEADER visiblity as well */ -static int screen_clean_full_area_exec(bContext *C, wmOperator *UNUSED(op)) -{ - bScreen *screen = CTX_wm_screen(C); - ScrArea *sa = NULL; - - /* search current screen for 'fullscreen' areas */ - /* prevents restoring info header, when mouse is over it */ - for (sa = screen->areabase.first; sa; sa = sa->next) { - if (sa->fullclean) break; - } - - /* go fullscreen */ - if (sa == NULL) { - sa = CTX_wm_area(C); - if (sa == NULL) - return OPERATOR_CANCELLED; - } - - ED_screen_clean_toggle(C, CTX_wm_window(C), sa); - return OPERATOR_FINISHED; -} - -static void SCREEN_OT_clean_full_area(wmOperatorType *ot) -{ - ot->name = "Toggle Clean Full Screen"; - ot->description = "Toggle editor as clean fullscreen"; - ot->idname = "SCREEN_OT_clean_full_area"; - - ot->exec = screen_clean_full_area_exec; - ot->poll = ED_operator_areaactive; - ot->flag = 0; -} - /* ************** join area operator ********************************************** */ @@ -3976,7 +3939,6 @@ void ED_operatortypes_screen(void) WM_operatortype_append(SCREEN_OT_header_toolbox); WM_operatortype_append(SCREEN_OT_screen_set); WM_operatortype_append(SCREEN_OT_screen_full_area); - WM_operatortype_append(SCREEN_OT_clean_full_area); WM_operatortype_append(SCREEN_OT_back_to_previous); WM_operatortype_append(SCREEN_OT_spacedata_cleanup); WM_operatortype_append(SCREEN_OT_screenshot); @@ -4096,7 +4058,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf) WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "SCREEN_OT_screenshot", F3KEY, KM_PRESS, KM_CTRL, 0); WM_keymap_add_item(keymap, "SCREEN_OT_screencast", F3KEY, KM_PRESS, KM_ALT, 0); - + /* tests */ WM_keymap_add_item(keymap, "SCREEN_OT_region_quadview", QKEY, KM_PRESS, KM_CTRL | KM_ALT, 0); WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", F3KEY, KM_PRESS, 0, 0); diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h index 04f3ba6..38d3c27 100644 --- a/source/blender/makesdna/DNA_screen_types.h +++ b/source/blender/makesdna/DNA_screen_types.h @@ -225,9 +225,6 @@ typedef struct ScrArea { ListBase handlers; /* wmEventHandler */ ListBase actionzones; /* AZone */ - - bScreen *fullclean; /* if area==fullclean, this is the parent */ - void *pad2; } ScrArea; typedef struct ARegion { @@ -250,8 +247,7 @@ typedef struct ARegion { short do_draw_overlay; /* private, cached notifier events */ short swap; /* private, indicator to survive swap-exchange */ short overlap; /* private, set for indicate drawing overlapped */ - short flagclean; /* temporary copy of flag settings for clean fullscreen */ - short pad; + short pad[2]; struct ARegionType *type; /* callbacks for this region type */ @@ -294,7 +290,6 @@ typedef struct ARegion { /* screen->full */ #define SCREENNORMAL 0 #define SCREENFULL 1 -#define SCREENFULLCLEAN 2 /* Panel->flag */ enum { _______________________________________________ Bf-blender-cvs mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-blender-cvs
