|  | @@ -447,7 +447,7 @@ void laDefault3DViewOverlay(laUiItem *ui){
 | 
	
		
			
				|  |  |      laShowItem(uil,cl,&ui->ExtraPP,"select_through");
 | 
	
		
			
				|  |  |      laEndRow(uil,b);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    g = laMakeFoldableGroup(uil, cll, "Tools", 0, 1);{
 | 
	
		
			
				|  |  | +    g = laMakeFoldableGroup(uil, cll, "Tools", 0, 1, 0);{
 | 
	
		
			
				|  |  |          gu = g->Page; gc = laFirstColumn(gu);
 | 
	
		
			
				|  |  |          laSplitColumn(gu, gc, 0.35); gcl = laLeftColumn(gc, 0); gcr = laRightColumn(gc, 0);
 | 
	
		
			
				|  |  |          laShowItem(gu,gc,&ui->ExtraPP,"_this_M_delete");
 | 
	
	
		
			
				|  | @@ -468,7 +468,7 @@ void laDefault3DViewOverlay(laUiItem *ui){
 | 
	
		
			
				|  |  |          laShowItem(gu,gc,&ui->ExtraPP,"_this_M_recalculate_normals");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    g = laMakeFoldableGroup(uil, cr, "Scene Info", 0, 1);{
 | 
	
		
			
				|  |  | +    g = laMakeFoldableGroup(uil, cr, "Scene Info", 0, 1, 0);{
 | 
	
		
			
				|  |  |          gu = g->Page;
 | 
	
		
			
				|  |  |          gc = laFirstColumn(gu);
 | 
	
		
			
				|  |  |          laSplitColumn(gu, gc, 0.35);
 | 
	
	
		
			
				|  | @@ -478,7 +478,7 @@ void laDefault3DViewOverlay(laUiItem *ui){
 | 
	
		
			
				|  |  |          laShowLabel(gu, gcl, "Rename:", 0, 0);
 | 
	
		
			
				|  |  |          laShowItem(gu, gcr, &ui->PP, "name");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    g = laMakeFoldableGroup(uil, cr, "Object Info", 0, 0);{
 | 
	
		
			
				|  |  | +    g = laMakeFoldableGroup(uil, cr, "Object Info", 0, 0, 0);{
 | 
	
		
			
				|  |  |          gu = g->Page;
 | 
	
		
			
				|  |  |          gc = laFirstColumn(gu);
 | 
	
		
			
				|  |  |          laSplitColumn(gu, gc, 0.35);
 | 
	
	
		
			
				|  | @@ -490,7 +490,7 @@ void laDefault3DViewOverlay(laUiItem *ui){
 | 
	
		
			
				|  |  |          laShowLabel(gu, gcl, "Rotation:", 0, 0);laShowItem(gu, gcr, &ui->PP, "active.rotation")->Flags|=LA_UI_FLAGS_TRANSPOSE;
 | 
	
		
			
				|  |  |          laShowItem(gu, gc, &ui->PP, "active.scale");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    g = laMakeFoldableGroup(uil, cr, "Display", 0, 1);{
 | 
	
		
			
				|  |  | +    g = laMakeFoldableGroup(uil, cr, "Display", 0, 1, 0);{
 | 
	
		
			
				|  |  |          gu = g->Page;
 | 
	
		
			
				|  |  |          gc = laFirstColumn(gu);
 | 
	
		
			
				|  |  |          laSplitColumn(gu, gc, 0.35);
 | 
	
	
		
			
				|  | @@ -577,7 +577,7 @@ void laDefault2DViewOverlayRight(laUiItem *ui){
 | 
	
		
			
				|  |  |      laEndRow(uil,b);
 | 
	
		
			
				|  |  |      laShowItem(uil, cl, &ui->PP, "internal_type")->Flags|=LA_UI_FLAGS_PLAIN;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    g = laMakeFoldableGroup(uil, cr, "Display", 0, 1);{
 | 
	
		
			
				|  |  | +    g = laMakeFoldableGroup(uil, cr, "Display", 0, 1, 0);{
 | 
	
		
			
				|  |  |          gu = g->Page;
 | 
	
		
			
				|  |  |          gc = laFirstColumn(gu);
 | 
	
		
			
				|  |  |          laSplitColumn(gu, gc, 0.35);
 | 
	
	
		
			
				|  | @@ -712,6 +712,8 @@ int OPMOD_Canvas(laOperator *a, laEvent *e){
 | 
	
		
			
				|  |  |          laRedrawCurrentPanel();
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    if(ui->CanvasTemplate->ExtraModal){ if(ui->CanvasTemplate->ExtraModal(a,e)&LA_BLOCK) return LA_RUNNING; }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      if (laKeyMapExecuteEventEx(a, &ui->ExtraPP, &ui->CanvasTemplate->KeyMapper, e)) return LA_RUNNING;
 | 
	
		
			
				|  |  |      if (laKeyMapExecuteEventEx(a, &ui->ExtraPP, &ui->Type->KeyMapper, e)) return LA_RUNNING;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -920,7 +922,7 @@ void la_RegisterUiTypesViewerWidgets(){
 | 
	
		
			
				|  |  |      _LA_UI_CANVAS = la_RegisterUiType("LA_canvas_default", 0, "LA_canvas_operator", &_LA_THEME_2D_VIEW, la_CanvasDraw, la_CanvasGetHeight, la_CanvasUiInit, la_CanvasUiDestroy);
 | 
	
		
			
				|  |  |      _LA_UI_CANVAS->Tag = LA_UI_TAG_NEED_REBUILD;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    laCanvasTemplate* ct=laRegisterCanvasTemplate("la_CanvasDrawTexture", "tns_texture", la_CanvasDrawTexture, la_CanvasDrawOverlay, la_CanvasInit, la_CanvasDestroy);
 | 
	
		
			
				|  |  | +    laCanvasTemplate* ct=laRegisterCanvasTemplate("la_CanvasDrawTexture", "tns_texture", 0, la_CanvasDrawTexture, la_CanvasDrawOverlay, la_CanvasInit, la_CanvasDestroy);
 | 
	
		
			
				|  |  |      pc = laCanvasHasExtraProps(ct,sizeof(laCanvasExtra),2);{
 | 
	
		
			
				|  |  |          _LA_PROP_2D_EXTRA = pc;
 | 
	
		
			
				|  |  |          laAddIntProperty(pc, "height_coeff", "Ui Height", "Ui Height Coefficiency Entry", 0, 0, "Rows", 100, -100, 1, 0, 0, offsetof(laCanvasExtra, HeightCoeff), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
 | 
	
	
		
			
				|  | @@ -969,7 +971,7 @@ void la_RegisterUiTypesViewerWidgets(){
 | 
	
		
			
				|  |  |      laAssignNewKey(km, 0, "LA_2d_view_click", LA_KM_SEL_UI_EXTRA, 0, LA_L_MOUSE_DOWN, 0, 0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    ct=laRegisterCanvasTemplate("la_3DView", "tns_object", la_RootObjectDraw, la_RootObjectDrawOverlay, la_3DViewInit, la_3DViewDestroy);
 | 
	
		
			
				|  |  | +    ct=laRegisterCanvasTemplate("la_3DView", "tns_object", 0, la_RootObjectDraw, la_RootObjectDrawOverlay, la_3DViewInit, la_3DViewDestroy);
 | 
	
		
			
				|  |  |      pc = laCanvasHasExtraProps(ct, sizeof(laCanvasExtra), 2);{
 | 
	
		
			
				|  |  |          _LA_PROP_3D_EXTRA = pc;
 | 
	
		
			
				|  |  |          laAddIntProperty(pc, "grid_size", "Grid Size", "Floor Grid Size Per Cell", 0, 0, "Unit", 100, 1, 1, 10, 0, offsetof(laCanvasExtra, GridSize), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
 |