diff --git a/desktop/api.cpp b/desktop/api.cpp
index 53091ae..8edf26b 100644
--- a/desktop/api.cpp
+++ b/desktop/api.cpp
@@ -587,17 +587,10 @@ int EsMessageSend(EsElement *element, EsMessage *message) {
 		response = element->messageUser(element, message);
 	}
 
-	bool handledByUser = response;
-
 	if (response == 0 && element->messageClass) {
 		response = element->messageClass(element, message);
 	}
 
-	if ((element->state & UI_STATE_INSPECTING) && message->type != ES_MSG_GET_INSPECTOR_INFORMATION) {
-		InspectorNotifyElementEvent(element, "message", "Element processed message '%z' with response %i%z.\n", 
-				EnumLookupNameFromValue(enumStrings_EsMessageType, message->type), response, handledByUser ? " (from user callback)" : "");
-	}
-
 	if (message->type >= ES_MSG_STATE_CHANGE_MESSAGE_START && message->type <= ES_MSG_STATE_CHANGE_MESSAGE_END) {
 		((EsElement *) element)->MaybeRefreshStyle();
 	}
diff --git a/desktop/gui.cpp b/desktop/gui.cpp
index 8c0470d..b28254f 100644
--- a/desktop/gui.cpp
+++ b/desktop/gui.cpp
@@ -8034,10 +8034,12 @@ void InspectorSetup(EsWindow *window) {
 
 	inspector->selectedElement = -1;
 
-	EsPanel *panel = EsPanelCreate(window, ES_CELL_FILL, ES_STYLE_PANEL_FILLED);
+	EsSplitter *splitter = EsSplitterCreate(window, ES_CELL_FILL | ES_SPLITTER_VERTICAL);
+	EsPanel *panel1 = EsPanelCreate(splitter, ES_CELL_FILL, ES_STYLE_PANEL_FILLED);
+	EsPanel *panel2 = EsPanelCreate(splitter, ES_CELL_FILL, ES_STYLE_PANEL_FILLED);
 
 	{
-		EsPanel *toolbar = EsPanelCreate(panel, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
+		EsPanel *toolbar = EsPanelCreate(panel1, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
 		inspector->visualizeRepaints = EsButtonCreate(toolbar, ES_BUTTON_TOOLBAR, 0, "Visualize repaints");
 		EsButtonOnCommand(inspector->visualizeRepaints, InspectorVisualizeRepaints);
 		inspector->visualizeLayoutBounds = EsButtonCreate(toolbar, ES_BUTTON_TOOLBAR, 0, "Visualize layout bounds");
@@ -8046,13 +8048,13 @@ void InspectorSetup(EsWindow *window) {
 		EsButtonOnCommand(inspector->visualizePaintSteps, InspectorVisualizePaintSteps);
 	}
 
-	inspector->elementList = EsListViewCreate(panel, ES_CELL_FILL | ES_LIST_VIEW_COLUMNS | ES_LIST_VIEW_SINGLE_SELECT);
+	inspector->elementList = EsListViewCreate(panel1, ES_CELL_FILL | ES_LIST_VIEW_COLUMNS | ES_LIST_VIEW_SINGLE_SELECT);
 	inspector->elementList->messageUser = InspectorElementListCallback;
 	EsListViewSetColumns(inspector->elementList, inspectorElementListColumns, sizeof(inspectorElementListColumns) / sizeof(EsListViewColumn));
 	EsListViewInsertGroup(inspector->elementList, 0);
 
 	{
-		EsPanel *toolbar = EsPanelCreate(panel, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
+		EsPanel *toolbar = EsPanelCreate(panel1, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
 		EsSpacerCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, 5, 0);
 		EsTextDisplayCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, "Horizontal:");
 		EsSpacerCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, 5, 0);
@@ -8092,7 +8094,7 @@ void InspectorSetup(EsWindow *window) {
 	}
 
 	{
-		EsPanel *toolbar = EsPanelCreate(panel, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
+		EsPanel *toolbar = EsPanelCreate(panel1, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
 		EsSpacerCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, 5, 0);
 		EsTextDisplayCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, "Stack:");
 		EsSpacerCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, 5, 0);
@@ -8117,7 +8119,7 @@ void InspectorSetup(EsWindow *window) {
 	}
 
 	{
-		EsPanel *toolbar = EsPanelCreate(panel, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
+		EsPanel *toolbar = EsPanelCreate(panel1, ES_CELL_H_FILL | ES_PANEL_HORIZONTAL, ES_STYLE_PANEL_TOOLBAR);
 		EsSpacerCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, 5, 0);
 		EsTextDisplayCreate(toolbar, ES_FLAGS_DEFAULT, nullptr, "Content:");
 		inspector->contentTextbox = EsTextboxCreate(toolbar, ES_ELEMENT_DISABLED | ES_TEXTBOX_EDIT_BASED);
@@ -8129,7 +8131,7 @@ void InspectorSetup(EsWindow *window) {
 	}
 
 	{
-		inspector->listEvents = EsListViewCreate(panel, ES_CELL_FILL | ES_LIST_VIEW_CHOICE_SELECT | ES_LIST_VIEW_FIXED_ITEMS, ES_STYLE_LIST_CHOICE_BORDERED);
+		inspector->listEvents = EsListViewCreate(panel2, ES_CELL_FILL | ES_LIST_VIEW_CHOICE_SELECT | ES_LIST_VIEW_FIXED_ITEMS, ES_STYLE_LIST_CHOICE_BORDERED);
 	}
 
 	InspectorRefreshElementList(inspector);
diff --git a/desktop/os.header b/desktop/os.header
index 34b0d8a..29eddb7 100644
--- a/desktop/os.header
+++ b/desktop/os.header
@@ -2015,7 +2015,7 @@ function EsError EsDeviceControl(EsHandle handle, EsDeviceControlType type, void
 
 // Processes and threads.
 
-function EsError EsProcessCreate(EsProcessCreationArguments *arguments, EsProcessInformation *information); 
+function EsError EsProcessCreate(const EsProcessCreationArguments *arguments, EsProcessInformation *information); 
 function int EsProcessGetExitStatus(EsHandle process); 
 function EsObjectID EsProcessGetID(EsHandle process);
 function void EsProcessGetState(EsHandle process, EsProcessState *state); 
diff --git a/desktop/syscall.cpp b/desktop/syscall.cpp
index 667795c..6bade1b 100644
--- a/desktop/syscall.cpp
+++ b/desktop/syscall.cpp
@@ -38,7 +38,7 @@ bool EsMemoryDecommit(void *pointer, size_t bytes) {
 	return ES_SUCCESS == (intptr_t) EsSyscall(ES_SYSCALL_MEMORY_COMMIT, (uintptr_t) pointer >> ES_PAGE_BITS, bytes >> ES_PAGE_BITS, 1, 0);
 }
 
-EsError EsProcessCreate(EsProcessCreationArguments *arguments, EsProcessInformation *information) {
+EsError EsProcessCreate(const EsProcessCreationArguments *arguments, EsProcessInformation *information) {
 	EsProcessInformation _information;
 	if (!information) information = &_information;
 
diff --git a/res/Theme Source.dat b/res/Theme Source.dat
index 13391e1..97d7923 100644
Binary files a/res/Theme Source.dat and b/res/Theme Source.dat differ
diff --git a/util/designer2.cpp b/util/designer2.cpp
index bd8a343..288b456 100644
--- a/util/designer2.cpp
+++ b/util/designer2.cpp
@@ -2375,6 +2375,9 @@ UIRectangle CanvasGetObjectBounds(Object *object) {
 	int32_t w = PropertyReadInt32(object, "_graphW") * canvas->zoom;
 	int32_t h = PropertyReadInt32(object, "_graphH") * canvas->zoom;
 
+	if (w < 1) w = 1;
+	if (h < 1) h = 1;
+
 	UIRectangle bounds = UI_RECT_4(x, x + w, y, y + h);
 
 	if (object->flags & OBJECT_IS_SELECTED) {
@@ -2656,14 +2659,16 @@ int CanvasMessage(UIElement *element, UIMessage message, int di, void *dp) {
 					UIDrawBorder(painter, UIRectangleAdd(bounds, UI_RECT_1I(-3)), 0xFF4092FF, UI_RECT_1(3));
 				} 
 
-				UIDrawString(painter, UI_RECT_4(bounds.l, element->bounds.r, bounds.t - ui.glyphHeight, bounds.t), 
-						object->cName, -1, 0xFF000000, UI_ALIGN_LEFT, nullptr);
+				if (object->type == OBJ_COMMENT || canvas->zoom > 0.1f) {
+					UIDrawString(painter, UI_RECT_4(bounds.l, element->bounds.r, bounds.t - ui.glyphHeight, bounds.t), 
+							object->cName, -1, 0xFF000000, UI_ALIGN_LEFT, nullptr);
+				}
 
 				UIDrawRectangle(painter, bounds, 0xFFE0E0E0, 0xFF404040, UI_RECT_1(1));
 				UIDrawBlock(painter, UI_RECT_4(bounds.l + 1, bounds.r + 1, bounds.b, bounds.b + 1), 0xFF404040);
 				UIDrawBlock(painter, UI_RECT_4(bounds.r, bounds.r + 1, bounds.t + 1, bounds.b + 1), 0xFF404040);
 
-				if (isConditional) {
+				if (isConditional && canvas->zoom > 0.1f) {
 					UIRectangle indicator = UI_RECT_4(bounds.l - ui.glyphWidth, bounds.l, bounds.t, bounds.t + ui.glyphHeight);
 					UIDrawBlock(painter, indicator, 0xFFFFFF00);
 					UIDrawString(painter, indicator, "?", -1, 0xFF000000, UI_ALIGN_CENTER, nullptr);
@@ -2911,7 +2916,7 @@ int CanvasMessage(UIElement *element, UIMessage message, int di, void *dp) {
 		while (divisions > 0) factor *= perDivision, divisions--;
 		while (divisions < 0) factor /= perDivision, divisions++;
 		if (canvas->zoom * factor > 4) factor = 4 / canvas->zoom;
-		if (canvas->zoom * factor < 0.1) factor = 0.1 / canvas->zoom;
+		if (canvas->zoom * factor < 0.05) factor = 0.05 / canvas->zoom;
 		int mx = element->window->cursorX - element->bounds.l;
 		int my = element->window->cursorY - element->bounds.t;
 		canvas->zoom *= factor;
@@ -3594,8 +3599,8 @@ int main(int argc, char **argv) {
 
 	graphControls = UIPanelCreate(canvas, UI_PANEL_HORIZONTAL | UI_ELEMENT_PARENT_PUSH);
 	graphControls->gap = -1;
-		UIButtonCreate(0, UI_BUTTON_SMALL, "Arrow mode \x18", -1)->invoke = CanvasArrowMode;
 		UIButtonCreate(0, UI_BUTTON_SMALL, "Add object \x18", -1)->invoke = ObjectAddCommand;
+		UIButtonCreate(0, UI_BUTTON_SMALL, "Arrow mode \x18", -1)->invoke = CanvasArrowMode;
 	UIParentPop();
 
 	prototypeControls = UIPanelCreate(canvas, UI_PANEL_HORIZONTAL | UI_ELEMENT_PARENT_PUSH);