aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/compose.go8
-rw-r--r--widgets/msgviewer.go10
-rw-r--r--widgets/terminal.go12
3 files changed, 27 insertions, 3 deletions
diff --git a/widgets/compose.go b/widgets/compose.go
index 4f36b297..3693ad18 100644
--- a/widgets/compose.go
+++ b/widgets/compose.go
@@ -700,6 +700,14 @@ func (c *Composer) Focus(focus bool) {
c.Unlock()
}
+func (c *Composer) Show(visible bool) {
+ c.Lock()
+ if vis, ok := c.focusable[c.focused].(ui.Visible); ok {
+ vis.Show(visible)
+ }
+ c.Unlock()
+}
+
func (c *Composer) Config() *config.AccountConfig {
return c.acctConfig
}
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go
index f38b186a..684c99cb 100644
--- a/widgets/msgviewer.go
+++ b/widgets/msgviewer.go
@@ -406,6 +406,12 @@ func (ps *PartSwitcher) Focus(focus bool) {
}
}
+func (ps *PartSwitcher) Show(visible bool) {
+ if ps.parts[ps.selected].term != nil {
+ ps.parts[ps.selected].term.Show(visible)
+ }
+}
+
func (ps *PartSwitcher) Event(event tcell.Event) bool {
return ps.parts[ps.selected].Event(event)
}
@@ -505,6 +511,10 @@ func (mv *MessageViewer) Focus(focus bool) {
mv.switcher.Focus(focus)
}
+func (mv *MessageViewer) Show(visible bool) {
+ mv.switcher.Show(visible)
+}
+
type PartViewer struct {
acctConfig *config.AccountConfig
err error
diff --git a/widgets/terminal.go b/widgets/terminal.go
index ca5a5ef2..c3c16db6 100644
--- a/widgets/terminal.go
+++ b/widgets/terminal.go
@@ -18,6 +18,7 @@ type Terminal struct {
ctx *ui.Context
destroyed bool
focus bool
+ visible bool
vterm *tcellterm.Terminal
running bool
@@ -29,8 +30,9 @@ type Terminal struct {
func NewTerminal(cmd *exec.Cmd) (*Terminal, error) {
term := &Terminal{
- cmd: cmd,
- vterm: tcellterm.New(),
+ cmd: cmd,
+ vterm: tcellterm.New(),
+ visible: true,
}
return term, nil
}
@@ -97,6 +99,10 @@ func (term *Terminal) Draw(ctx *ui.Context) {
term.draw()
}
+func (term *Terminal) Show(visible bool) {
+ term.visible = visible
+}
+
func (term *Terminal) draw() {
term.vterm.Draw()
if term.focus && !term.closed && term.ctx != nil {
@@ -149,7 +155,7 @@ func (term *Terminal) HandleEvent(ev tcell.Event) bool {
}
switch ev := ev.(type) {
case *views.EventWidgetContent:
- if term.focus {
+ if term.visible {
ui.QueueRedraw()
}
return true