This commit is contained in:
Kovid Goyal 2020-07-24 08:41:55 +05:30
parent 8d08036a9d
commit ace152d8a3
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 18 additions and 16 deletions

View File

@ -15,18 +15,18 @@ from typing import (
from .borders import Borders from .borders import Borders
from .child import Child from .child import Child
from .cli_stub import CLIOptions from .cli_stub import CLIOptions
from .constants import appname, is_macos, is_wayland from .constants import appname
from .fast_data_types import ( from .fast_data_types import (
add_tab, attach_window, cocoa_window_id, detach_window, get_boss, mark_tab_bar_dirty, add_tab, attach_window, detach_window, get_boss, mark_tab_bar_dirty,
next_window_id, remove_tab, remove_window, ring_bell, set_active_tab, next_window_id, remove_tab, remove_window, ring_bell, set_active_tab,
set_active_window, swap_tabs, sync_os_window_title, x11_window_id set_active_window, swap_tabs, sync_os_window_title
) )
from .layout.base import Layout, Rect from .layout.base import Layout, Rect
from .layout.interface import create_layout_object_for, evict_cached_layouts from .layout.interface import create_layout_object_for, evict_cached_layouts
from .options_stub import Options from .options_stub import Options
from .tab_bar import TabBar, TabBarData from .tab_bar import TabBar, TabBarData
from .typing import EdgeLiteral, SessionTab, SessionType, TypedDict from .typing import EdgeLiteral, SessionTab, SessionType, TypedDict
from .utils import log_error, resolved_shell from .utils import log_error, platform_window_id, resolved_shell
from .window import Watchers, Window, WindowDict from .window import Watchers, Window, WindowDict
from .window_list import WindowList from .window_list import WindowList
@ -283,18 +283,9 @@ class Tab: # {{{
if env: if env:
fenv.update(env) fenv.update(env)
fenv['KITTY_WINDOW_ID'] = str(next_window_id()) fenv['KITTY_WINDOW_ID'] = str(next_window_id())
if is_macos: pwid = platform_window_id(self.os_window_id)
try: if pwid is not None:
fenv['WINDOWID'] = str(cocoa_window_id(self.os_window_id)) fenv['WINDOWID'] = str(pwid)
except Exception:
import traceback
traceback.print_exc()
elif not is_wayland():
try:
fenv['WINDOWID'] = str(x11_window_id(self.os_window_id))
except Exception:
import traceback
traceback.print_exc()
ans = Child(cmd, cwd or self.cwd, self.opts, stdin, fenv, cwd_from, allow_remote_control=allow_remote_control) ans = Child(cmd, cwd or self.cwd, self.opts, stdin, fenv, cwd_from, allow_remote_control=allow_remote_control)
ans.fork() ans.fork()
return ans return ans

View File

@ -42,6 +42,17 @@ def expandvars(val: str, env: Dict[str, str] = {}) -> str:
return re.sub(r'\$\{(\S+?)\}', sub, val) return re.sub(r'\$\{(\S+?)\}', sub, val)
def platform_window_id(os_window_id: int) -> Optional[int]:
if is_macos:
from .fast_data_types import cocoa_window_id
with suppress(Exception):
return cocoa_window_id(os_window_id)
if not is_wayland():
from .fast_data_types import x11_window_id
with suppress(Exception):
return x11_window_id(os_window_id)
def load_shaders(name: str) -> Tuple[str, str]: def load_shaders(name: str) -> Tuple[str, str]:
from .fast_data_types import GLSL_VERSION from .fast_data_types import GLSL_VERSION
with open(os.path.join(BASE, '{}_vertex.glsl'.format(name))) as f: with open(os.path.join(BASE, '{}_vertex.glsl'.format(name))) as f: