If a profile is configured to not show the titlebar, actually only show 2px of it until it's clicked on. Poor man's autohide, but it achieves all of my objectives - the colour is hinted to people with no visible titlebar and they can still summon the grouping menu
This commit is contained in:
parent
1a6f659a40
commit
f4b1c2cce0
@ -78,7 +78,6 @@ class Terminal(gtk.VBox):
|
|||||||
scrollbar_position = None
|
scrollbar_position = None
|
||||||
titlebar = None
|
titlebar = None
|
||||||
searchbar = None
|
searchbar = None
|
||||||
border_boxes = None
|
|
||||||
|
|
||||||
group = None
|
group = None
|
||||||
cwd = None
|
cwd = None
|
||||||
@ -142,6 +141,7 @@ class Terminal(gtk.VBox):
|
|||||||
self.titlebar.connect('edit-done', self.on_edit_done)
|
self.titlebar.connect('edit-done', self.on_edit_done)
|
||||||
self.connect('title-change', self.titlebar.set_terminal_title)
|
self.connect('title-change', self.titlebar.set_terminal_title)
|
||||||
self.titlebar.connect('create-group', self.really_create_group)
|
self.titlebar.connect('create-group', self.really_create_group)
|
||||||
|
self.titlebar.show_all()
|
||||||
|
|
||||||
self.searchbar = Searchbar()
|
self.searchbar = Searchbar()
|
||||||
self.searchbar.connect('end-search', self.on_search_done)
|
self.searchbar.connect('end-search', self.on_search_done)
|
||||||
@ -184,9 +184,6 @@ class Terminal(gtk.VBox):
|
|||||||
def create_terminalbox(self):
|
def create_terminalbox(self):
|
||||||
"""Create a GtkHBox containing the terminal and a scrollbar"""
|
"""Create a GtkHBox containing the terminal and a scrollbar"""
|
||||||
|
|
||||||
ebox1 = gtk.EventBox()
|
|
||||||
ebox2 = gtk.EventBox()
|
|
||||||
ebox1.add(ebox2)
|
|
||||||
terminalbox = gtk.HBox()
|
terminalbox = gtk.HBox()
|
||||||
self.scrollbar = gtk.VScrollbar(self.vte.get_adjustment())
|
self.scrollbar = gtk.VScrollbar(self.vte.get_adjustment())
|
||||||
self.scrollbar.set_no_show_all(True)
|
self.scrollbar.set_no_show_all(True)
|
||||||
@ -202,19 +199,9 @@ class Terminal(gtk.VBox):
|
|||||||
|
|
||||||
func(self.vte)
|
func(self.vte)
|
||||||
func(self.scrollbar, False)
|
func(self.scrollbar, False)
|
||||||
ebox2.add(terminalbox)
|
terminalbox.show_all()
|
||||||
ebox1.show_all()
|
|
||||||
|
|
||||||
self.border_boxes = (ebox1, ebox2)
|
return(terminalbox)
|
||||||
return(ebox1)
|
|
||||||
|
|
||||||
def terminal_border(self, width, colour=None):
|
|
||||||
"""Show a border around the terminal and optionally colour it in"""
|
|
||||||
ebox1, ebox2 = self.border_boxes
|
|
||||||
|
|
||||||
ebox2.set_border_width(width)
|
|
||||||
if colour:
|
|
||||||
ebox1.modify_bg(gtk.STATE_NORMAL, colour)
|
|
||||||
|
|
||||||
def update_url_matches(self, posix = True):
|
def update_url_matches(self, posix = True):
|
||||||
"""Update the regexps used to match URLs"""
|
"""Update the regexps used to match URLs"""
|
||||||
@ -664,10 +651,6 @@ for %s (%s)' % (name, urlplugin.__class__.__name__))
|
|||||||
self.config['alternate_screen_scroll'])
|
self.config['alternate_screen_scroll'])
|
||||||
|
|
||||||
self.titlebar.update()
|
self.titlebar.update()
|
||||||
if self.config['show_titlebar'] == True:
|
|
||||||
self.titlebar.show()
|
|
||||||
else:
|
|
||||||
self.titlebar.hide()
|
|
||||||
self.vte.queue_draw()
|
self.vte.queue_draw()
|
||||||
|
|
||||||
def get_window_title(self):
|
def get_window_title(self):
|
||||||
|
@ -87,8 +87,7 @@ class Titlebar(gtk.EventBox):
|
|||||||
self.add(hbox)
|
self.add(hbox)
|
||||||
hbox.show_all()
|
hbox.show_all()
|
||||||
self.set_no_show_all(True)
|
self.set_no_show_all(True)
|
||||||
if self.config['show_titlebar'] == True:
|
self.show()
|
||||||
self.show()
|
|
||||||
|
|
||||||
self.connect('button-press-event', self.on_clicked)
|
self.connect('button-press-event', self.on_clicked)
|
||||||
|
|
||||||
@ -146,18 +145,28 @@ class Titlebar(gtk.EventBox):
|
|||||||
gtk.gdk.color_parse(group_fg))
|
gtk.gdk.color_parse(group_fg))
|
||||||
self.modify_bg(gtk.STATE_NORMAL,
|
self.modify_bg(gtk.STATE_NORMAL,
|
||||||
gtk.gdk.color_parse(title_bg))
|
gtk.gdk.color_parse(title_bg))
|
||||||
if not self.get_property('visible'):
|
if not self.get_desired_visibility():
|
||||||
if default_bg == True:
|
if default_bg == True:
|
||||||
color = term.get_style().bg[gtk.STATE_NORMAL]
|
color = term.get_style().bg[gtk.STATE_NORMAL]
|
||||||
else:
|
else:
|
||||||
color = gtk.gdk.color_parse(title_bg)
|
color = gtk.gdk.color_parse(title_bg)
|
||||||
term.terminal_border(2, color)
|
self.set_size_request(-1, 2)
|
||||||
|
self.label.hide()
|
||||||
else:
|
else:
|
||||||
term.terminal_border(0)
|
self.set_size_request(-1, -1)
|
||||||
|
self.label.show()
|
||||||
self.ebox.modify_bg(gtk.STATE_NORMAL,
|
self.ebox.modify_bg(gtk.STATE_NORMAL,
|
||||||
gtk.gdk.color_parse(group_bg))
|
gtk.gdk.color_parse(group_bg))
|
||||||
self.set_from_icon_name(icon, gtk.ICON_SIZE_MENU)
|
self.set_from_icon_name(icon, gtk.ICON_SIZE_MENU)
|
||||||
|
|
||||||
|
def get_desired_visibility(self):
|
||||||
|
"""Returns True if the titlebar is supposed to be visible. False if
|
||||||
|
not"""
|
||||||
|
if self.editing() == True:
|
||||||
|
return(True)
|
||||||
|
else:
|
||||||
|
return(self.config['show_titlebar'])
|
||||||
|
|
||||||
def set_from_icon_name(self, name, size = gtk.ICON_SIZE_MENU):
|
def set_from_icon_name(self, name, size = gtk.ICON_SIZE_MENU):
|
||||||
"""Set an icon for the group label"""
|
"""Set an icon for the group label"""
|
||||||
if not name:
|
if not name:
|
||||||
@ -189,6 +198,8 @@ class Titlebar(gtk.EventBox):
|
|||||||
|
|
||||||
def on_clicked(self, widget, event):
|
def on_clicked(self, widget, event):
|
||||||
"""Handle a click on the label"""
|
"""Handle a click on the label"""
|
||||||
|
self.set_size_request(-1, -1)
|
||||||
|
self.label.show()
|
||||||
self.emit('clicked')
|
self.emit('clicked')
|
||||||
|
|
||||||
def on_edit_done(self, widget):
|
def on_edit_done(self, widget):
|
||||||
|
Loading…
Reference in New Issue
Block a user