@@ -13,7 +13,7 @@ pub const PRESET_SLOTS_MAX: usize = 5;
1313///
1414/// Controls the default appearance of drawing tools when the overlay first opens.
1515/// Users can change these values at runtime using keybindings.
16- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
16+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
1717pub struct DrawingConfig {
1818 /// Default pen color - either a named color (red, green, blue, yellow, orange, pink, white, black)
1919 /// or an RGB array like `[255, 0, 0]` for red
@@ -222,7 +222,7 @@ impl Default for PresetSlotsConfig {
222222/// Arrow drawing settings.
223223///
224224/// Controls the appearance of arrowheads when using the arrow tool (Ctrl+Shift+Drag).
225- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
225+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
226226pub struct ArrowConfig {
227227 /// Arrowhead length in pixels (valid range: 5.0 - 50.0)
228228 #[ serde( default = "default_arrow_length" ) ]
@@ -249,7 +249,7 @@ impl Default for ArrowConfig {
249249}
250250
251251/// Undo/redo playback configuration.
252- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
252+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
253253pub struct HistoryConfig {
254254 /// Delay in milliseconds between steps when running "undo all by delay"
255255 #[ serde( default = "default_undo_all_delay_ms" ) ]
@@ -298,7 +298,7 @@ impl Default for HistoryConfig {
298298///
299299/// These settings control rendering performance and smoothness. Most users
300300/// won't need to change these from their defaults.
301- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
301+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
302302pub struct PerformanceConfig {
303303 /// Number of buffers for buffering (valid range: 2 - 4)
304304 /// - 2 = double buffering (lower memory, potential tearing)
@@ -331,7 +331,7 @@ impl Default for PerformanceConfig {
331331/// UI display preferences.
332332///
333333/// Controls the visibility and positioning of on-screen UI elements.
334- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
334+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
335335pub struct UiConfig {
336336 /// Show the status bar displaying current color, thickness, and tool
337337 #[ serde( default = "default_show_status" ) ]
@@ -394,7 +394,7 @@ impl Default for UiConfig {
394394}
395395
396396/// Status bar styling configuration.
397- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
397+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
398398pub struct StatusBarStyle {
399399 /// Font size for status bar text
400400 #[ serde( default = "default_status_font_size" ) ]
@@ -430,7 +430,7 @@ impl Default for StatusBarStyle {
430430}
431431
432432/// Click highlight configuration for mouse press indicator.
433- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
433+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
434434pub struct ClickHighlightConfig {
435435 /// Whether the highlight effect starts enabled
436436 #[ serde( default = "default_click_highlight_enabled" ) ]
@@ -462,7 +462,7 @@ pub struct ClickHighlightConfig {
462462}
463463
464464/// Context menu visibility configuration.
465- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
465+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
466466pub struct ContextMenuUiConfig {
467467 #[ serde( default = "default_context_menu_enabled" ) ]
468468 pub enabled : bool ,
@@ -491,7 +491,7 @@ impl Default for ClickHighlightConfig {
491491}
492492
493493/// Help overlay styling configuration.
494- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
494+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
495495pub struct HelpOverlayStyle {
496496 /// Font size for help overlay text
497497 #[ serde( default = "default_help_font_size" ) ]
@@ -541,7 +541,7 @@ impl Default for HelpOverlayStyle {
541541// ─────────────────────────────────────────────────────────────────────────────
542542
543543#[ cfg( tablet) ]
544- #[ derive( Debug , Serialize , Deserialize , JsonSchema ) ]
544+ #[ derive( Debug , Clone , Serialize , Deserialize , JsonSchema ) ]
545545pub struct TabletInputConfig {
546546 /// Enable tablet/stylus events at runtime (feature must be compiled in).
547547 #[ serde( default = "default_tablet_enabled" ) ]
@@ -1015,9 +1015,9 @@ pub struct SessionConfig {
10151015impl Default for SessionConfig {
10161016 fn default ( ) -> Self {
10171017 Self {
1018- persist_transparent : false ,
1019- persist_whiteboard : false ,
1020- persist_blackboard : false ,
1018+ persist_transparent : true ,
1019+ persist_whiteboard : true ,
1020+ persist_blackboard : true ,
10211021 persist_history : default_persist_history ( ) ,
10221022 restore_tool_state : default_restore_tool_state ( ) ,
10231023 storage : default_session_storage_mode ( ) ,
0 commit comments