UI: Preferences Redesign Part 2
[blender.git] / source / blender / editors / screen / screen_ops.c
index d41bf8d937bc4b1061e31357f818b691ec2d0ef9..62b4db94937d8cbbd769e94824ec2692dfd48f15 100644 (file)
@@ -798,6 +798,32 @@ static AZone *area_actionzone_refresh_xy(ScrArea *sa, const int xy[2], const boo
                                }
                        }
                }
+               else if (!test_only && !IS_EQF(az->alpha, 0.0f)) {
+                       bool changed = false;
+
+                       if (az->type == AZONE_FULLSCREEN) {
+                               az->alpha = 0.0f;
+                               changed = true;
+                       }
+                       else if (az->type == AZONE_REGION_SCROLL) {
+                               if (az->direction == AZ_SCROLL_VERT) {
+                                       az->alpha = az->ar->v2d.alpha_vert = 0;
+                                       changed = true;
+                               }
+                               else if (az->direction == AZ_SCROLL_HOR) {
+                                       az->alpha = az->ar->v2d.alpha_hor = 0;
+                                       changed = true;
+                               }
+                               else {
+                                       BLI_assert(0);
+                               }
+                       }
+
+                       if (changed) {
+                               sa->flag &= ~AREA_FLAG_ACTIONZONES_UPDATE;
+                               ED_area_tag_redraw_no_rebuild(sa);
+                       }
+               }
        }
 
        return az;
@@ -808,7 +834,7 @@ AZone *ED_area_actionzone_find_xy(ScrArea *sa, const int xy[2])
        return area_actionzone_refresh_xy(sa, xy, true);
 }
 
-AZone *ED_area_actionzone_refresh_xy(ScrArea *sa, const int xy[2])
+AZone *ED_area_azones_update(ScrArea *sa, const int xy[2])
 {
        return area_actionzone_refresh_xy(sa, xy, false);
 }
@@ -2382,8 +2408,12 @@ static int region_scale_modal(bContext *C, wmOperator *op, const wmEvent *event)
                                        if (!(rmd->ar->flag & RGN_FLAG_HIDDEN))
                                                region_scale_toggle_hidden(C, rmd);
                                }
-                               else if (rmd->ar->flag & RGN_FLAG_HIDDEN)
+                               else if (rmd->ar->flag & RGN_FLAG_HIDDEN) {
                                        region_scale_toggle_hidden(C, rmd);
+                               }
+                               else if (rmd->ar->flag & RGN_FLAG_DYNAMIC_SIZE) {
+                                       rmd->ar->sizex = rmd->origval;
+                               }
                        }
                        else {
                                int maxsize = region_scale_get_maxsize(rmd);
@@ -2411,10 +2441,15 @@ static int region_scale_modal(bContext *C, wmOperator *op, const wmEvent *event)
                                        if (!(rmd->ar->flag & RGN_FLAG_HIDDEN))
                                                region_scale_toggle_hidden(C, rmd);
                                }
-                               else if (maxsize > 0 && (rmd->ar->sizey > maxsize))
+                               else if (maxsize > 0 && (rmd->ar->sizey > maxsize)) {
                                        rmd->ar->sizey = maxsize;
-                               else if (rmd->ar->flag & RGN_FLAG_HIDDEN)
+                               }
+                               else if (rmd->ar->flag & RGN_FLAG_HIDDEN) {
                                        region_scale_toggle_hidden(C, rmd);
+                               }
+                               else if (rmd->ar->flag & RGN_FLAG_DYNAMIC_SIZE) {
+                                       rmd->ar->sizey = rmd->origval;
+                               }
                        }
                        ED_area_tag_redraw(rmd->sa);
                        WM_event_add_notifier(C, NC_SCREEN | NA_EDITED, NULL);
@@ -4349,11 +4384,15 @@ static void SCREEN_OT_back_to_previous(struct wmOperatorType *ot)
 
 static int userpref_show_invoke(bContext *C, wmOperator *op, const wmEvent *event)
 {
-       int sizex = (800 + UI_NAVIGATION_REGION_WIDTH) * UI_DPI_FAC;
-       int sizey = 500 * UI_DPI_FAC;
+       int sizex = (500 + UI_NAVIGATION_REGION_WIDTH) * UI_DPI_FAC;
+       int sizey = 520 * UI_DPI_FAC;
 
        /* changes context! */
        if (WM_window_open_temp(C, event->x, event->y, sizex, sizey, WM_WINDOW_USERPREFS) != NULL) {
+               /* The header only contains the editor switcher and looks empty. So hiding in the temp window makes sense. */
+               ScrArea *area = CTX_wm_area(C);
+               ARegion *region = BKE_area_find_region_type(area, RGN_TYPE_HEADER);
+               region->flag |= RGN_FLAG_HIDDEN;
                return OPERATOR_FINISHED;
        }
        else {