diff --git a/src/ui/left_panel.zig b/src/ui/left_panel.zig index 27881b8..231d767 100644 --- a/src/ui/left_panel.zig +++ b/src/ui/left_panel.zig @@ -74,7 +74,7 @@ fn objectTreeRow(open_doc: *WindowContext.OpenDocument, obj: *Object, depth: u32 .{ .id_extra = row_id, .expand = .horizontal }, ); - if (is_selected or hovered) { + if (hovered) { const delete_opts: dvui.Options = .{ .id_extra = row_id +% 1, .margin = dvui.Rect{ .x = 4 }, @@ -114,7 +114,11 @@ fn objectTree(ctx: *WindowContext) void { if (object_callback) |callback| { switch (callback) { .select => |obj| { - open_doc.selected_object = obj; + if (open_doc.selected_object == obj) { + open_doc.selected_object = null; + } else { + open_doc.selected_object = obj; + } }, .delete => |obj| { _ = doc.removeObject(obj); @@ -136,7 +140,9 @@ pub fn leftPanel(ctx: *WindowContext) void { .{ .dir = .vertical }, .{ .expand = .vertical, + // Фиксированная ширина левой панели .min_size_content = .{ .w = 220 }, + .max_size_content = .{ .h = undefined, .w = 220 }, .background = true, .padding = padding, }, @@ -199,10 +205,14 @@ pub fn leftPanel(ctx: *WindowContext) void { }, ); { - dvui.label(@src(), "Objects", .{}, .{}); + dvui.label(@src(), "Objects", .{}, .{ .font = .{ + .id = dvui.themeGet().font_heading.id, + .line_height_factor = dvui.themeGet().font_heading.line_height_factor, + .size = dvui.themeGet().font_heading.size + 8, + }, .gravity_x = 0.5 }); var scroll = dvui.scrollArea( @src(), - .{ .vertical = .auto }, + .{ .vertical = .auto, .horizontal = .auto }, .{ .expand = .both, .background = false }, ); {