Hi Ton, Thanks a lot for this commit. There are some remaining issues I wonder if you can take a look at:
(1) when horizontal scroll is on, the bottom buttons are "cropped": http://www.pasteall.org/pic/39748 (2) when I do the pan gesture at once (instead of continuously) with the OSX trackpad it pan and zoom altogether (I would expected it only to zoom). (3) the home is not viewing all, e.g. this is a screen after I press HOME (you can't see the actuators) http://www.pasteall.org/pic/39749 Cheers, Dalai 2012/10/30 Ton Roosendaal <[email protected]>: > Revision: 51768 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51768 > Author: ton > Date: 2012-10-30 15:33:03 +0000 (Tue, 30 Oct 2012) > Log Message: > ----------- > Usability: Logic editor > > - View now restricts to the actual region you work on. Makes zoom and pan > nicer. > - Added HOME for reset view to 1:1 zoom level. > > Also: fixed nasty bug in view2d code that checked validity of 2d views, only > showed (afaik) in the logic eidtor though. > > Effect was that zoom in/out would weirdly jump when going across zoomlevel 1. > > Modified Paths: > -------------- > trunk/blender/source/blender/editors/interface/view2d.c > trunk/blender/source/blender/editors/space_logic/logic_window.c > trunk/blender/source/blender/editors/space_logic/space_logic.c > > Modified: trunk/blender/source/blender/editors/interface/view2d.c > =================================================================== > --- trunk/blender/source/blender/editors/interface/view2d.c 2012-10-30 > 14:22:49 UTC (rev 51767) > +++ trunk/blender/source/blender/editors/interface/view2d.c 2012-10-30 > 15:33:03 UTC (rev 51768) > @@ -599,7 +599,7 @@ > if ((cur->xmin < tot->xmin) && (cur->xmax > > tot->xmax)) { > /* outside boundaries on both sides, so take > middle-point of tot, and place in balanced way */ > temp = BLI_rctf_cent_x(tot); > - diff = curheight * 0.5f; > + diff = curwidth * 0.5f; > > cur->xmin = temp - diff; > cur->xmax = temp + diff; > > Modified: trunk/blender/source/blender/editors/space_logic/logic_window.c > =================================================================== > --- trunk/blender/source/blender/editors/space_logic/logic_window.c > 2012-10-30 14:22:49 UTC (rev 51767) > +++ trunk/blender/source/blender/editors/space_logic/logic_window.c > 2012-10-30 15:33:03 UTC (rev 51768) > @@ -56,6 +56,7 @@ > #include "BKE_library.h" > #include "BKE_main.h" > #include "BKE_sca.h" > +#include "BKE_screen.h" > > #include "ED_util.h" > > @@ -66,6 +67,7 @@ > #include "BLF_translation.h" > > #include "UI_interface.h" > +#include "UI_view2d.h" > > #include "RNA_access.h" > > @@ -2208,15 +2210,13 @@ > SpaceLogic *slogic= CTX_wm_space_logic(C); > Object *ob= CTX_data_active_object(C); > ID **idar; > - > PointerRNA logic_ptr, settings_ptr, object_ptr; > - > uiLayout *layout, *row, *box; > uiBlock *block; > uiBut *but; > char uiblockstr[32]; > short a, count; > - int xco, yco, width; > + int xco, yco, width, height; > > if (ob==NULL) return; > > @@ -2270,7 +2270,7 @@ > > /* ****************** Controllers ****************** */ > > - xco= 420; yco= 170; width= 300; > + xco= 420; yco= -10; width= 300; > layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, > xco, yco, width, 20, UI_GetStyle()); > row = uiLayoutRow(layout, TRUE); > > @@ -2373,11 +2373,11 @@ > } > } > uiBlockLayoutResolve(block, NULL, &yco); /* stores final > height in yco */ > + height = yco; > > - > /* ****************** Sensors ****************** */ > > - xco= 10; yco= 170; width= 340; > + xco= 10; yco= -10; width= 340; > layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, > xco, yco, width, 20, UI_GetStyle()); > row = uiLayoutRow(layout, TRUE); > > @@ -2442,10 +2442,11 @@ > } > } > uiBlockLayoutResolve(block, NULL, &yco); /* stores final > height in yco */ > + height = MIN2(height, yco); > > /* ****************** Actuators ****************** */ > > - xco= 800; yco= 170; width= 340; > + xco= 800; yco= -10; width= 340; > layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, > xco, yco, width, 20, UI_GetStyle()); > row = uiLayoutRow(layout, TRUE); > > @@ -2513,13 +2514,21 @@ > } > } > uiBlockLayoutResolve(block, NULL, &yco); /* stores final > height in yco */ > + height = MIN2(height, yco); > + > + UI_view2d_totRect_set(&ar->v2d, 1150, height); > > - > + /* set the view */ > + UI_view2d_view_ortho(&ar->v2d); > + > uiComposeLinks(block); > > uiEndBlock(C, block); > uiDrawBlock(C, block); > > + /* restore view matrix */ > + UI_view2d_view_restore(C); > + > if (idar) MEM_freeN(idar); > } > > > Modified: trunk/blender/source/blender/editors/space_logic/space_logic.c > =================================================================== > --- trunk/blender/source/blender/editors/space_logic/space_logic.c > 2012-10-30 14:22:49 UTC (rev 51767) > +++ trunk/blender/source/blender/editors/space_logic/space_logic.c > 2012-10-30 15:33:03 UTC (rev 51768) > @@ -84,8 +84,9 @@ > > /* ******************** default callbacks for image space ***************** > */ > > -static SpaceLink *logic_new(const bContext *UNUSED(C)) > +static SpaceLink *logic_new(const bContext *C) > { > + ScrArea *sa= CTX_wm_area(C); > ARegion *ar; > SpaceLogic *slogic; > > @@ -120,14 +121,11 @@ > ar->regiontype= RGN_TYPE_WINDOW; > > ar->v2d.tot.xmin = 0.0f; > - ar->v2d.tot.ymin = 0.0f; > - ar->v2d.tot.xmax = 1280; > - ar->v2d.tot.ymax = 240.0f; > + ar->v2d.tot.ymax = 0.0f; > + ar->v2d.tot.xmax = 1150.0f; > + ar->v2d.tot.ymin = ( 1150.0f/(float)sa->winx ) * (float)-sa->winy; > > - ar->v2d.cur.xmin = 0.0f; > - ar->v2d.cur.ymin = 0.0f; > - ar->v2d.cur.xmax = 1280.0f; > - ar->v2d.cur.ymax = 240.0f; > + ar->v2d.cur = ar->v2d.tot; > > ar->v2d.min[0] = 1.0f; > ar->v2d.min[1] = 1.0f; > @@ -136,13 +134,14 @@ > ar->v2d.max[1] = 32000.0f; > > ar->v2d.minzoom = 0.5f; > - ar->v2d.maxzoom = 1.21f; > + ar->v2d.maxzoom = 1.5f; > > ar->v2d.scroll = (V2D_SCROLL_RIGHT | V2D_SCROLL_BOTTOM); > - ar->v2d.keepzoom = V2D_LIMITZOOM | V2D_KEEPASPECT; > - ar->v2d.keeptot = 0; > + ar->v2d.keepzoom = V2D_KEEPZOOM | V2D_LIMITZOOM | V2D_KEEPASPECT; > + ar->v2d.keeptot = V2D_KEEPTOT_BOUNDS; > + ar->v2d.align = V2D_ALIGN_NO_POS_Y | V2D_ALIGN_NO_NEG_X; > + ar->v2d.keepofs = V2D_KEEPOFS_Y; > > - > return (SpaceLink *)slogic; > } > > @@ -183,6 +182,9 @@ > WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, > 0); > WM_keymap_add_item(keymap, "LOGIC_OT_links_cut", LEFTMOUSE, KM_PRESS, > KM_CTRL, 0); > WM_keymap_add_menu(keymap, "LOGIC_MT_logicbricks_add", AKEY, > KM_PRESS, KM_SHIFT, 0); > + > + WM_keymap_add_item(keymap, "VIEW2D_OT_reset", HOMEKEY, KM_PRESS, 0, > 0); > + > } > > static void logic_refresh(const bContext *UNUSED(C), ScrArea *UNUSED(sa)) > @@ -234,7 +236,7 @@ > wmKeyMap *keymap; > > UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, > ar->winy); > - > + > /* own keymaps */ > keymap = WM_keymap_find(wm->defaultconf, "Logic Editor", SPACE_LOGIC, > 0); > WM_event_add_keymap_handler(&ar->handlers, keymap); > @@ -259,7 +261,7 @@ > UI_view2d_view_restore(C); > > /* scrollers */ > - scrollers= UI_view2d_scrollers_calc(C, v2d, 10, V2D_GRID_CLAMP, > V2D_ARG_DUMMY, V2D_ARG_DUMMY); > + scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, > V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY); > UI_view2d_scrollers_draw(C, v2d, scrollers); > UI_view2d_scrollers_free(scrollers); > > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
