Skip to content

Commit 2ea00c5

Browse files
committed
CICD
1 parent 499c5d2 commit 2ea00c5

1 file changed

Lines changed: 28 additions & 4 deletions

File tree

plug.app/src/linux/api/intf/main_l.cpp

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -692,10 +692,8 @@ void main_l_cleanup(void) {
692692
if (g_app) {
693693
g_object_unref(g_app);
694694
g_app = NULL;
695-
g_tabs[pd->tab_idx].wrapped_lines.clear();
696695
}
697696
if (g_drawing_area) gtk_widget_queue_draw(g_drawing_area);
698-
delete pd;
699697
}
700698

701699
void main_l_print_info(const char* msg) {
@@ -742,7 +740,31 @@ void main_l_set_tab_cwd(int tab_idx, const char* cwd) {
742740
}
743741
}
744742

745-
static void add_tab_idle(gpointer data) {
743+
static gboolean print_info_idle(gpointer data) {
744+
PrintData* pd = static_cast<PrintData*>(data);
745+
std::lock_guard<std::mutex> lk(g_mutex);
746+
if (pd->tab_idx >= 0 && pd->tab_idx < (int)g_tabs.size()) {
747+
g_tabs[pd->tab_idx].raw_lines.push_back({pd->msg, pd->color, pd->is_continuation});
748+
g_tabs[pd->tab_idx].wrapped_lines.clear();
749+
if (g_drawing_area) gtk_widget_queue_draw(g_drawing_area);
750+
}
751+
delete pd;
752+
return G_SOURCE_REMOVE;
753+
}
754+
755+
static gboolean print_info_idle(gpointer data) {
756+
PrintData* pd = static_cast<PrintData*>(data);
757+
std::lock_guard<std::mutex> lk(g_mutex);
758+
if (pd->tab_idx >= 0 && pd->tab_idx < (int)g_tabs.size()) {
759+
g_tabs[pd->tab_idx].raw_lines.push_back({pd->msg, pd->color, pd->is_continuation});
760+
g_tabs[pd->tab_idx].wrapped_lines.clear();
761+
if (g_drawing_area) gtk_widget_queue_draw(g_drawing_area);
762+
}
763+
delete pd;
764+
return G_SOURCE_REMOVE;
765+
}
766+
767+
static gboolean add_tab_idle(gpointer data) {
746768
const char* owner = static_cast<const char*>(data);
747769
std::lock_guard<std::mutex> lk(g_mutex);
748770
TabState new_tab;
@@ -755,6 +777,7 @@ static void add_tab_idle(gpointer data) {
755777
g_active_tab = g_tabs.size() - 1;
756778
if (g_drawing_area) gtk_widget_queue_draw(g_drawing_area);
757779
free(const_cast<char*>(owner)); // free the strdup'd string
780+
return G_SOURCE_REMOVE;
758781
}
759782

760783
void main_l_add_tab(const char* owner) {
@@ -777,7 +800,7 @@ int main_l_get_tab_owner(int tab_idx, char* buf, int max_len) {
777800
std::string msg;
778801
};
779802

780-
static void replace_last_line_idle(gpointer data) {
803+
static gboolean replace_last_line_idle(gpointer data) {
781804
ReplaceLastLineData* d = static_cast<ReplaceLastLineData*>(data);
782805
std::lock_guard<std::mutex> lk(g_mutex);
783806
if (d->tab_idx >= 0 && d->tab_idx < (int)g_tabs.size() && !g_tabs[d->tab_idx].raw_lines.empty()) {
@@ -786,6 +809,7 @@ static void replace_last_line_idle(gpointer data) {
786809
if (g_drawing_area) gtk_widget_queue_draw(g_drawing_area);
787810
}
788811
delete d;
812+
return G_SOURCE_REMOVE;
789813
}
790814

791815
void main_l_replace_last_line(const char* msg) {

0 commit comments

Comments
 (0)