fix for own commit r49991, this exposed bad logic in rect copy function.
authorCampbell Barton <ideasman42@gmail.com>
Sat, 18 Aug 2012 20:54:43 +0000 (20:54 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 18 Aug 2012 20:54:43 +0000 (20:54 +0000)
source/blender/blenlib/BLI_rect.h
source/blender/blenlib/intern/rct.c
source/blender/editors/interface/interface.c
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_panel.c
source/blender/editors/space_view3d/view3d_view.c

index 55ab961cc534e19b9cc4679ca882e2ce040b4cd5..d6579afcd0d11ebfcf8219384342d97ccff21c58 100644 (file)
@@ -69,7 +69,8 @@ int  BLI_rctf_isect(const struct rctf *src1, const struct rctf *src2, struct rct
 int  BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest);
 void BLI_rctf_union(struct rctf *rctf1, const struct rctf *rctf2);
 void BLI_rcti_union(struct rcti *rcti1, const struct rcti *rcti2);
-void BLI_rcti_rctf_copy(struct rcti *tar, const struct rctf *src);
+void BLI_rcti_rctf_copy(struct rcti *dst, const struct rctf *src);
+void BLI_rctf_rcti_copy(struct rctf *dst, const struct rcti *src);
 
 void print_rctf(const char *str, const struct rctf *rect);
 void print_rcti(const char *str, const struct rcti *rect);
index e22becddfd6683395bbf6054c7b6430a55477e3b..9c65c26c72bfa2ff80b0aba09e1d6cdefeedbd74 100644 (file)
@@ -363,12 +363,20 @@ int BLI_rcti_isect(const rcti *src1, const rcti *src2, rcti *dest)
        }
 }
 
-void BLI_rcti_rctf_copy(rcti *tar, const rctf *src)
+void BLI_rcti_rctf_copy(rcti *dst, const rctf *src)
 {
-       tar->xmin = floorf(src->xmin + 0.5f);
-       tar->xmax = floorf((src->xmax - src->xmin) + 0.5f);
-       tar->ymin = floorf(src->ymin + 0.5f);
-       tar->ymax = floorf((src->ymax - src->ymin) + 0.5f);
+       dst->xmin = floorf(src->xmin + 0.5f);
+       dst->xmax = dst->xmin + floorf((src->xmax - src->xmin) + 0.5f);
+       dst->ymin = floorf(src->ymin + 0.5f);
+       dst->ymax = dst->ymin + floorf((src->ymax - src->ymin) + 0.5f);
+}
+
+void BLI_rctf_rcti_copy(rctf *dst, const rcti *src)
+{
+       dst->xmin = src->xmin;
+       dst->xmax = src->xmax;
+       dst->ymin = src->ymin;
+       dst->ymax = src->ymax;
 }
 
 void print_rctf(const char *str, const rctf *rect)
index 7185946f4fedbefd510d599e4c1ab40685ee0044..e7eb1e3a6980431155bb32fede6f9677bf9de65c 100644 (file)
@@ -137,10 +137,7 @@ void ui_block_to_window_rct(const ARegion *ar, uiBlock *block, rctf *graph, rcti
        ui_block_to_window_fl(ar, block, &tmpr.xmin, &tmpr.ymin);
        ui_block_to_window_fl(ar, block, &tmpr.xmax, &tmpr.ymax);
 
-       winr->xmin = tmpr.xmin;
-       winr->ymin = tmpr.ymin;
-       winr->xmax = tmpr.xmax;
-       winr->ymax = tmpr.ymax;
+       BLI_rcti_rctf_copy(winr, &tmpr);
 }
 
 void ui_window_to_block_fl(const ARegion *ar, uiBlock *block, float *x, float *y)   /* for mouse cursor */
index 55249e665210aefd1a601f530fc38e71ba119e95..5226b2ae9e3b302be47ed6887c7da340ad83461a 100644 (file)
@@ -3347,9 +3347,8 @@ static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, float
        
        ui_mouse_scale_warp(data, mx, my, &mx_fl, &my_fl, shift);
 
-       rect.xmin = but->rect.xmin; rect.xmax = but->rect.xmax;
-       rect.ymin = but->rect.ymin; rect.ymax = but->rect.ymax;
-       
+       BLI_rcti_rctf_copy(&rect, &but->rect);
+
        ui_get_but_vectorf(but, rgb);
        copy_v3_v3(hsv, ui_block_hsv_get(but->block));
        rgb_to_hsv_compat_v(rgb, hsv);
@@ -3856,8 +3855,7 @@ static int ui_numedit_but_HISTOGRAM(uiBut *but, uiHandleButtonData *data, int mx
        int changed = 1;
        float /* dx, */ dy; /* UNUSED */
        
-       /* rect.xmin = but->rect.xmin; rect.xmax = but->rect.xmax; */
-       /* rect.ymin = but->rect.ymin; rect.ymax = but->rect.ymax; */
+       /* BLI_rcti_rctf_copy(&rect, &but->rect); */
        
        /* dx = mx - data->draglastx; */ /* UNUSED */
        dy = my - data->draglasty;
@@ -3940,8 +3938,7 @@ static int ui_numedit_but_WAVEFORM(uiBut *but, uiHandleButtonData *data, int mx,
        int changed = 1;
        float /* dx, */ dy /* , yfac=1.f */; /* UNUSED */
 
-       /* rect.xmin = but->rect.xmin; rect.xmax = but->rect.xmax; */
-       /* rect.ymin = but->rect.ymin; rect.ymax = but->rect.ymax; */
+       /* BLI_rcti_rctf_copy(&rect, &but->rect); */
 
        /* dx = mx - data->draglastx; */ /* UNUSED */
        dy = my - data->draglasty;
@@ -4024,8 +4021,7 @@ static int ui_numedit_but_VECTORSCOPE(uiBut *but, uiHandleButtonData *data, int
        int changed = 1;
        /* float dx, dy; */
 
-       /* rect.xmin = but->rect.xmin; rect.xmax = but->rect.xmax; */
-       /* rect.ymin = but->rect.ymin; rect.ymax = but->rect.ymax; */
+       /* BLI_rcti_rctf_copy(&rect, &but->rect); */
 
        /* dx = mx - data->draglastx; */
        /* dy = my - data->draglasty; */
@@ -5019,10 +5015,7 @@ static int ui_mouse_inside_region(ARegion *ar, int x, int y)
                ui_window_to_region(ar, &mx, &my);
                
                /* make a copy of the mask rect, and tweak accordingly for hidden scrollbars */
-               mask_rct.xmin = v2d->mask.xmin;
-               mask_rct.xmax = v2d->mask.xmax;
-               mask_rct.ymin = v2d->mask.ymin;
-               mask_rct.ymax = v2d->mask.ymax;
+               mask_rct = v2d->mask;
                
                if (v2d->scroll & (V2D_SCROLL_VERTICAL_HIDE | V2D_SCROLL_VERTICAL_FULLR)) {
                        if (v2d->scroll & V2D_SCROLL_LEFT)
index 79aff82fe6f98a75b929d42c3c623bfc17fe88bc..501a5cf91b02005c8593f6310a9d9045e3d01a0f 100644 (file)
@@ -422,7 +422,7 @@ static void ui_draw_panel_scalewidget(rcti *rect)
        glDisable(GL_BLEND);
 }
 
-static void ui_draw_panel_dragwidget(rctf *rect)
+static void ui_draw_panel_dragwidget(const rctf *rect)
 {
        float xmin, xmax, dx;
        float ymin, ymax, dy;
index 93d70004b183b7bd7f1ac916c1fde46a41b9db7a..fbbf23beca4221890979c536dcb0f308781965e8 100644 (file)
@@ -1212,10 +1212,7 @@ short view3d_opengl_select(ViewContext *vc, unsigned int *buffer, unsigned int b
                rect.ymax = input->ymin + 12;
        }
        else {
-               rect.xmin = input->xmin;
-               rect.xmax = input->xmax;
-               rect.ymin = input->ymin;
-               rect.ymax = input->ymax;
+               BLI_rctf_rcti_copy(&rect, input);
        }
        
        setwinmatrixview3d(ar, v3d, &rect);