From ff572795db6456c54a61fc857bb350d6ea78ee63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Ch=C5=82odnicki?= Date: Sun, 22 Jan 2023 20:57:35 +0100 Subject: [PATCH] workaround for View Listeners not being attached for new transient view (#2174) --- plugin/core/open.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugin/core/open.py b/plugin/core/open.py index 3de49c71a..094b48ee1 100644 --- a/plugin/core/open.py +++ b/plugin/core/open.py @@ -12,6 +12,7 @@ import os import re import sublime +import sublime_plugin import subprocess import webbrowser @@ -86,8 +87,13 @@ def open_file( if view and _return_existing_view(flags, window.get_view_index(view)[0], window.active_group(), group): return Promise.resolve(view) + was_already_open = view is not None view = window.open_file(file, flags, group) if not view.is_loading(): + if was_already_open and (flags & sublime.SEMI_TRANSIENT): + # workaround bug https://github.com/sublimehq/sublime_text/issues/2411 where transient view might not get + # its view listeners initialized. + sublime_plugin.check_view_event_listeners(view) # type: ignore # It's already loaded. Possibly already open in a tab. return Promise.resolve(view)