This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch tymux
in repository terminology.

View the commit online.

commit c50717d5b6aa7540420f64b62251090f279d096f
Author: [email protected] <[email protected]>
AuthorDate: Mon Mar 23 22:23:43 2026 -0600

    feat: wire tymux pause/resume callbacks in termio.c
    
    Add _smart_tymux_pause/_smart_tymux_resume static callbacks inside the
    HAVE_TYMUX block in termio.c.  Both are wired into sd->tymux->cb_pause
    and sd->tymux->cb_resume at the two attach sites: _termio_tymux_switch_job
    and termio_add.
    
    Because Term is an opaque type in termio.c, signal emission is routed
    through a new term_pause_set(Term*, Eina_Bool) helper added to win.c/win.h,
    following the same pattern as term_tymux_indicator_set.  The resume callback
    additionally triggers a full repaint via cb_change.
    
    Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
---
 src/bin/termio.c | 30 ++++++++++++++++++++++++++++++
 src/bin/win.c    | 10 ++++++++++
 src/bin/win.h    |  1 +
 3 files changed, 41 insertions(+)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index 075b8e04..4e8f466a 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -3814,6 +3814,28 @@ _tymux_name_valid(const char *name)
    return EINA_TRUE;
 }
 
+static void
+_smart_tymux_pause(void *data)
+{
+   Evas_Object *obj = data;
+   Termio *sd = evas_object_smart_data_get(obj);
+   if (!sd || !sd->term) return;
+   term_pause_set(sd->term, EINA_TRUE);
+}
+
+static void
+_smart_tymux_resume(void *data)
+{
+   Evas_Object *obj = data;
+   Termio *sd = evas_object_smart_data_get(obj);
+   if (!sd || !sd->term) return;
+   term_pause_set(sd->term, EINA_FALSE);
+
+   /* Force a full repaint by triggering the change callback */
+   if (sd->tymux && sd->tymux->cb_change.func)
+     sd->tymux->cb_change.func(sd->tymux->cb_change.data);
+}
+
 /* Deferred tymux switch — runs on the next Ecore main loop iteration
  * so we don't free the PTY while we're still inside its read handler. */
 static void
@@ -3875,6 +3897,10 @@ _termio_tymux_switch_job(void *data)
    sd->tymux->cb_bell.data   = ""
    sd->tymux->cb_exit.func   = _smart_pty_exited;
    sd->tymux->cb_exit.data   = ""
+   sd->tymux->cb_pause.func  = _smart_tymux_pause;
+   sd->tymux->cb_pause.data  = ""
+   sd->tymux->cb_resume.func = _smart_tymux_resume;
+   sd->tymux->cb_resume.data = ""
 
    if (sd->term)
      term_tymux_indicator_set(sd->term, EINA_TRUE);
@@ -4467,6 +4493,10 @@ termio_add(Evas_Object *win, Config *config,
         sd->tymux->cb_bell.data   = ""
         sd->tymux->cb_exit.func   = _smart_pty_exited;
         sd->tymux->cb_exit.data   = ""
+        sd->tymux->cb_pause.func  = _smart_tymux_pause;
+        sd->tymux->cb_pause.data  = ""
+        sd->tymux->cb_resume.func = _smart_tymux_resume;
+        sd->tymux->cb_resume.data = ""
      }
    else
 #endif
diff --git a/src/bin/win.c b/src/bin/win.c
index 9870ac0c..a1df4c9d 100644
--- a/src/bin/win.c
+++ b/src/bin/win.c
@@ -469,6 +469,16 @@ term_tymux_indicator_set(Term *term, Eina_Bool on)
    term->is_tymux = on ? 1 : 0;
    _tymux_indicator_update(term);
 }
+
+void
+term_pause_set(Term *term, Eina_Bool paused)
+{
+   EINA_SAFETY_ON_NULL_RETURN(term);
+   if (paused)
+     elm_layout_signal_emit(term->bg, "pause,on", "terminology");
+   else
+     elm_layout_signal_emit(term->bg, "pause,off", "terminology");
+}
 #endif
 
 /* }}} */
diff --git a/src/bin/win.h b/src/bin/win.h
index f9636b5c..3caed84b 100644
--- a/src/bin/win.h
+++ b/src/bin/win.h
@@ -93,6 +93,7 @@ void main_trans_update(void);
 
 #ifdef HAVE_TYMUX
 void term_tymux_indicator_set(Term *term, Eina_Bool on);
+void term_pause_set(Term *term, Eina_Bool paused);
 #endif
 
 #endif

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to