Overlapping regions: when dragging the region to close them, it started the blending
timer - which of course is not meant to happen.
This commit is contained in:
2012-12-13 12:17:57 +00:00
parent 0f97d53c74
commit a63f0d320b
3 changed files with 15 additions and 7 deletions

View File

@@ -1257,25 +1257,32 @@ void ED_region_init(bContext *C, ARegion *ar)
glLoadIdentity();
}
void ED_region_toggle_hidden(bContext *C, ARegion *ar)
/* for quick toggle, can skip fades */
void region_toggle_hidden(bContext *C, ARegion *ar, int do_fade)
{
ScrArea *sa = CTX_wm_area(C);
ar->flag ^= RGN_FLAG_HIDDEN;
if (ar->overlap) {
if (do_fade && ar->overlap) {
/* starts a timer, and in end calls the stuff below itself (region_sblend_invoke()) */
region_blend_start(C, sa, ar);
}
else {
if (ar->flag & RGN_FLAG_HIDDEN)
WM_event_remove_handlers(C, &ar->handlers);
ED_area_initialize(CTX_wm_manager(C), CTX_wm_window(C), sa);
ED_area_tag_redraw(sa);
}
}
/* exported to all editors, uses fading default */
void ED_region_toggle_hidden(bContext *C, ARegion *ar)
{
region_toggle_hidden(C, ar, 1);
}
/* sa2 to sa1, we swap spaces for fullscreen to keep all allocated data */
/* area vertices were set */
void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space)

View File

@@ -39,6 +39,7 @@ struct Scene;
/* area.c */
void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space);
void region_toggle_hidden(bContext *C, ARegion *ar, int do_fade);
/* screen_edit.c */
ScrEdge *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);

View File

@@ -1786,7 +1786,7 @@ static void region_scale_validate_size(RegionMoveData *rmd)
static void region_scale_toggle_hidden(bContext *C, RegionMoveData *rmd)
{
ED_region_toggle_hidden(C, rmd->ar);
region_toggle_hidden(C, rmd->ar, 0);
region_scale_validate_size(rmd);
}
@@ -3594,7 +3594,7 @@ typedef struct RegionAlphaInfo {
int hidden;
} RegionAlphaInfo;
#define TIMEOUT 0.3f
#define TIMEOUT 0.2f
#define TIMESTEP 0.04f
float ED_region_blend_factor(ARegion *ar)