Cleanup: ARegion.sizex/y should not be used to access region size
authorJulian Eisel <eiseljulian@gmail.com>
Fri, 10 Jan 2020 13:23:47 +0000 (14:23 +0100)
committerJulian Eisel <eiseljulian@gmail.com>
Fri, 10 Jan 2020 13:28:11 +0000 (14:28 +0100)
This should only be used to change and recalculate region sizes in a DPI
independent way. To get the size with DPI applied, ARegion.winx/y should
be used instead.
Added note on this in comment.

source/blender/editors/animation/time_scrub_ui.c
source/blender/editors/space_clip/space_clip.c
source/blender/editors/space_graph/graph_edit.c
source/blender/editors/space_graph/space_graph.c
source/blender/editors/space_sequencer/sequencer_draw.c
source/blender/makesdna/DNA_screen_types.h

index 70a9b7ba1faf24241a6931c84399c2b7e0e1b982..ae489fb5233db48caba047822d96e201a301aaf6 100644 (file)
@@ -179,9 +179,9 @@ void ED_time_scrub_channel_search_draw(const bContext *C, ARegion *ar, bDopeShee
 
   rcti rect;
   rect.xmin = 0;
-  rect.xmax = ceilf(ar->sizex * UI_DPI_FAC);
-  rect.ymin = ar->sizey * UI_DPI_FAC - UI_TIME_SCRUB_MARGIN_Y;
-  rect.ymax = ceilf(ar->sizey * UI_DPI_FAC);
+  rect.xmax = ar->winx;
+  rect.ymin = ar->winy - UI_TIME_SCRUB_MARGIN_Y;
+  rect.ymax = ar->winy;
 
   uint pos = GPU_vertformat_attr_add(immVertexFormat(), "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
   immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
index 16305a9b17bfbf1be3f92c23052ba3d432324efc..04c939ec41ba323517bd926f4416559e784550d3 100644 (file)
@@ -1083,11 +1083,7 @@ static void graph_region_draw(const bContext *C, ARegion *ar)
   /* scale indicators */
   {
     rcti rect;
-    BLI_rcti_init(&rect,
-                  0,
-                  15 * UI_DPI_FAC,
-                  15 * UI_DPI_FAC,
-                  UI_DPI_FAC * ar->sizey - UI_TIME_SCRUB_MARGIN_Y);
+    BLI_rcti_init(&rect, 0, 15 * UI_DPI_FAC, 15 * UI_DPI_FAC, ar->winy - UI_TIME_SCRUB_MARGIN_Y);
     UI_view2d_draw_scale_y__values(ar, v2d, &rect, TH_TEXT);
   }
 }
index 03df93e4c8a19b3c6072e9964756db373bbfe9c2..98fe8c714547e43ef7783a12fecb8def781eabf7 100644 (file)
@@ -298,7 +298,7 @@ static int graphkeys_viewall(bContext *C,
   if (!BLI_listbase_is_empty(ED_context_get_markers(C))) {
     pad_bottom = UI_MARKER_MARGIN_Y;
   }
-  BLI_rctf_pad_y(&cur_new, ac.ar->sizey * UI_DPI_FAC, pad_bottom, pad_top);
+  BLI_rctf_pad_y(&cur_new, ac.ar->winy, pad_bottom, pad_top);
 
   UI_view2d_smooth_view(C, ac.ar, &cur_new, smooth_viewtx);
   return OPERATOR_FINISHED;
index 7bc907bb3db6d2ef839a00cdcaee4353c49cf7ac..d01e4112fd0ad2b7e1af946319f03df9104709e6 100644 (file)
@@ -326,11 +326,7 @@ static void graph_main_region_draw(const bContext *C, ARegion *ar)
   /* scale numbers */
   {
     rcti rect;
-    BLI_rcti_init(&rect,
-                  0,
-                  15 * UI_DPI_FAC,
-                  15 * UI_DPI_FAC,
-                  UI_DPI_FAC * ar->sizey - UI_TIME_SCRUB_MARGIN_Y);
+    BLI_rcti_init(&rect, 0, 15 * UI_DPI_FAC, 15 * UI_DPI_FAC, ar->winy - UI_TIME_SCRUB_MARGIN_Y);
     UI_view2d_draw_scale_y__values(ar, v2d, &rect, TH_SCROLL_TEXT);
   }
 }
index 70cb28fa9374448f3f3128e4ef90119c882c9d05..333a51e2eacabb28fecd1d8c54fffe205a8dd661 100644 (file)
@@ -2119,11 +2119,7 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
   /* channel numbers */
   {
     rcti rect;
-    BLI_rcti_init(&rect,
-                  0,
-                  15 * UI_DPI_FAC,
-                  15 * UI_DPI_FAC,
-                  UI_DPI_FAC * ar->sizey - UI_TIME_SCRUB_MARGIN_Y);
+    BLI_rcti_init(&rect, 0, 15 * UI_DPI_FAC, 15 * UI_DPI_FAC, ar->winy - UI_TIME_SCRUB_MARGIN_Y);
     UI_view2d_draw_scale_y__block(ar, v2d, &rect, TH_SCROLL_TEXT);
   }
 }
index d3c5a707b44007b3394e9e0a8593ef883b52e01d..60fb7b62dff2ae405c800981a7fe48324ef89aa5 100644 (file)
@@ -409,7 +409,9 @@ typedef struct ARegion {
   short flag;
 
   /** Current split size in unscaled pixels (if zero it uses regiontype).
-   * To convert to pixels use: `UI_DPI_FAC * ar->sizex + 0.5f`. */
+   * To convert to pixels use: `UI_DPI_FAC * ar->sizex + 0.5f`.
+   * However to get the current region size, you should usually use winx/winy from above, not this!
+   */
   short sizex, sizey;
 
   /** Private, cached notifier events. */