UI: various panels fixes.
* Fix sometimes non-working close/open button. * Fix panels being a bit out of the view on startup. * Fix too large totrct region for view2d. * Fix wrong panel order when changing vertical <-> horizontal. * Fix wrong panel positions after switching contexts. * Fix an access of freed memory when collapsing panels. * Free align mode works again. * Animations work again.
This commit is contained in:
		@@ -191,26 +191,29 @@ static PyObject *Method_drawBlock( PyObject * self, PyObject * args )
 | 
			
		||||
	Py_RETURN_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static PyObject *Method_drawPanels( PyObject * self, PyObject * args )
 | 
			
		||||
static PyObject *Method_beginPanels( PyObject * self, PyObject * args )
 | 
			
		||||
{
 | 
			
		||||
	bContext *C;
 | 
			
		||||
	PyObject *py_context;
 | 
			
		||||
	int align;
 | 
			
		||||
	
 | 
			
		||||
	if( !PyArg_ParseTuple( args, "O!i:drawPanels", &PyCObject_Type, &py_context, &align) )
 | 
			
		||||
	if( !PyArg_ParseTuple( args, "O!i:beginPanels", &PyCObject_Type, &py_context) )
 | 
			
		||||
		return NULL;
 | 
			
		||||
	
 | 
			
		||||
	uiDrawPanels(PyCObject_AsVoidPtr(py_context), align);
 | 
			
		||||
	C= PyCObject_AsVoidPtr(py_context);
 | 
			
		||||
	uiBeginPanels(C, CTX_wm_region(C));
 | 
			
		||||
	Py_RETURN_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static PyObject *Method_matchPanelsView2d( PyObject * self, PyObject * args )
 | 
			
		||||
static PyObject *Method_endPanels( PyObject * self, PyObject * args )
 | 
			
		||||
{
 | 
			
		||||
	PyObject *py_ar;
 | 
			
		||||
	bContext *C;
 | 
			
		||||
	PyObject *py_context;
 | 
			
		||||
	
 | 
			
		||||
	if( !PyArg_ParseTuple( args, "O!:matchPanelsView2d", &PyCObject_Type, &py_ar) )
 | 
			
		||||
	if( !PyArg_ParseTuple( args, "O!:endPanels", &PyCObject_Type, &py_context) )
 | 
			
		||||
		return NULL;
 | 
			
		||||
	
 | 
			
		||||
	uiMatchPanelsView2d(PyCObject_AsVoidPtr(py_ar));
 | 
			
		||||
	C= PyCObject_AsVoidPtr(py_context);
 | 
			
		||||
	uiEndPanels(C, CTX_wm_region(C));
 | 
			
		||||
	Py_RETURN_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -413,8 +416,8 @@ static struct PyMethodDef ui_methods[] = {
 | 
			
		||||
	{"blockEndAlign", (PyCFunction)Method_blockEndAlign, METH_VARARGS, ""},
 | 
			
		||||
	{"blockSetFlag", (PyCFunction)Method_blockSetFlag, METH_VARARGS, ""},
 | 
			
		||||
	{"newPanel", (PyCFunction)Method_newPanel, METH_VARARGS, ""},
 | 
			
		||||
	{"drawPanels", (PyCFunction)Method_drawPanels, METH_VARARGS, ""},
 | 
			
		||||
	{"matchPanelsView2d", (PyCFunction)Method_matchPanelsView2d, METH_VARARGS, ""},
 | 
			
		||||
	{"beginPanels", (PyCFunction)Method_beginPanels, METH_VARARGS, ""},
 | 
			
		||||
	{"endPanels", (PyCFunction)Method_endPanels, METH_VARARGS, ""},
 | 
			
		||||
	
 | 
			
		||||
	{"register", (PyCFunction)Method_register, METH_VARARGS, ""}, // XXX not sure about this - registers current script with the ScriptSpace, like Draw.Register()
 | 
			
		||||
	{"registerKey", (PyCFunction)Method_registerKey, METH_VARARGS, ""}, // XXX could have this in another place too
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user