Fix remotinator get_tab_title for tabs with more than a single terminal (Nix)
This commit is contained in:
parent
1c0f934529
commit
8213b828c9
|
@ -11,7 +11,7 @@ from borg import Borg
|
||||||
from terminator import Terminator
|
from terminator import Terminator
|
||||||
from config import Config
|
from config import Config
|
||||||
from factory import Factory
|
from factory import Factory
|
||||||
from util import dbg
|
from util import dbg, enumerate_descendants
|
||||||
|
|
||||||
CONFIG = Config()
|
CONFIG = Config()
|
||||||
if not CONFIG['dbus']:
|
if not CONFIG['dbus']:
|
||||||
|
@ -158,7 +158,15 @@ class DBusService(Borg, dbus.service.Object):
|
||||||
window = terminal.get_toplevel()
|
window = terminal.get_toplevel()
|
||||||
root_widget = window.get_children()[0]
|
root_widget = window.get_children()[0]
|
||||||
if maker.isinstance(root_widget, 'Notebook'):
|
if maker.isinstance(root_widget, 'Notebook'):
|
||||||
return root_widget.uuid.urn
|
#return root_widget.uuid.urn
|
||||||
|
for tab_child in root_widget.get_children():
|
||||||
|
terms = [tab_child]
|
||||||
|
if not maker.isinstance(terms[0], "Terminal"):
|
||||||
|
terms = enumerate_descendants(tab_child)[1]
|
||||||
|
if terminal in terms:
|
||||||
|
# FIXME: There are no uuid's assigned to the the notebook, or the actual tabs!
|
||||||
|
# This would fail: return root_widget.uuid.urn
|
||||||
|
return ""
|
||||||
|
|
||||||
@dbus.service.method(BUS_NAME)
|
@dbus.service.method(BUS_NAME)
|
||||||
def get_tab_title(self, uuid=None):
|
def get_tab_title(self, uuid=None):
|
||||||
|
@ -168,7 +176,12 @@ class DBusService(Borg, dbus.service.Object):
|
||||||
window = terminal.get_toplevel()
|
window = terminal.get_toplevel()
|
||||||
root_widget = window.get_children()[0]
|
root_widget = window.get_children()[0]
|
||||||
if maker.isinstance(root_widget, "Notebook"):
|
if maker.isinstance(root_widget, "Notebook"):
|
||||||
return root_widget.get_tab_label(terminal).get_label()
|
for tab_child in root_widget.get_children():
|
||||||
|
terms = [tab_child]
|
||||||
|
if not maker.isinstance(terms[0], "Terminal"):
|
||||||
|
terms = enumerate_descendants(tab_child)[1]
|
||||||
|
if terminal in terms:
|
||||||
|
return root_widget.get_tab_label(tab_child).get_label()
|
||||||
|
|
||||||
def with_proxy(func):
|
def with_proxy(func):
|
||||||
"""Decorator function to connect to the session dbus bus"""
|
"""Decorator function to connect to the session dbus bus"""
|
||||||
|
|
|
@ -17,13 +17,20 @@
|
||||||
"""Terminator.util - misc utility functions"""
|
"""Terminator.util - misc utility functions"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
from gi.repository import Gtk, Gdk
|
|
||||||
import cairo
|
import cairo
|
||||||
import os
|
import os
|
||||||
import pwd
|
import pwd
|
||||||
import inspect
|
import inspect
|
||||||
import uuid
|
import uuid
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import gi
|
||||||
|
|
||||||
|
try:
|
||||||
|
gi.require_version('Gtk','3.0')
|
||||||
|
from gi.repository import Gtk, Gdk
|
||||||
|
except ImportError:
|
||||||
|
print('You need Gtk 3.0+ to run Remotinator.')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
# set this to true to enable debugging output
|
# set this to true to enable debugging output
|
||||||
DEBUG = False
|
DEBUG = False
|
||||||
|
|
Loading…
Reference in New Issue