|
25 | 25 | GLFW_LAYER_SHELL_OVERLAY, |
26 | 26 | GLFW_LAYER_SHELL_PANEL, |
27 | 27 | GLFW_LAYER_SHELL_TOP, |
| 28 | + layer_shell_config_for_os_window, |
28 | 29 | set_layer_shell_config, |
29 | 30 | toggle_os_window_visibility, |
30 | 31 | ) |
@@ -110,25 +111,24 @@ def have_config_files_been_updated(config_files: Iterable[str]) -> bool: |
110 | 111 | def handle_single_instance_command(boss: BossType, sys_args: Sequence[str], environ: Mapping[str, str], notify_on_os_window_death: str | None = '') -> None: |
111 | 112 | global args |
112 | 113 | from kitty.cli import parse_override |
113 | | - from kitty.main import run_app |
114 | 114 | from kitty.tabs import SpecialWindow |
115 | 115 | try: |
116 | 116 | new_args, items = parse_panel_args(list(sys_args[1:])) |
117 | 117 | except BaseException as e: |
118 | 118 | log_error(f'Invalid arguments received over single instance socket: {sys_args} with error: {e}') |
119 | 119 | return |
120 | 120 | lsc = layer_shell_config(new_args) |
121 | | - layer_shell_config_changed = lsc != run_app.layer_shell_config |
122 | 121 | config_changed = have_config_files_been_updated(new_args.config) or args.config != new_args.config or args.override != new_args.override |
123 | 122 | args = new_args |
124 | 123 | if config_changed: |
125 | 124 | boss.load_config_file(*args.config, overrides=tuple(map(parse_override, new_args.override))) |
126 | 125 | if args.toggle_visibility and boss.os_window_map: |
127 | 126 | for os_window_id in boss.os_window_map: |
| 127 | + existing = layer_shell_config_for_os_window(os_window_id) |
| 128 | + layer_shell_config_changed = not existing or any(f for f in lsc._fields if getattr(lsc, f) != existing.get(f)) |
128 | 129 | toggle_os_window_visibility(os_window_id) |
129 | 130 | if layer_shell_config_changed: |
130 | 131 | set_layer_shell_config(os_window_id, lsc) |
131 | | - run_app.layer_shell_config = lsc |
132 | 132 | return |
133 | 133 | items = items or [kitten_exe(), 'run-shell'] |
134 | 134 | os_window_id = boss.add_os_panel(lsc, args.cls, args.name) |
|
0 commit comments