From 56b4f14560572f758c340466fbc28ca813c7a266 Mon Sep 17 00:00:00 2001
From: gholk <gholk@disroot.org>
Date: Mon, 27 Oct 2025 20:22:49 +0800
Subject: gcin im toggle

---
 Makefile           | 4 ++++
 gcin-conf.h        | 1 +
 gcin-im-toggle.cpp | 9 +++++++++
 gcin.cpp           | 3 +++
 4 files changed, 17 insertions(+)
 create mode 100644 gcin-im-toggle.cpp

diff --git a/Makefile b/Makefile
index 1e42bd1..d0739d9 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ OBJS_gcin_tools=gcin-tools.o gcin-conf.o util.o gcin-send.o gcin-settings.o html
 
 OBJS_gcin_gb_toggle = gcin-gb-toggle.o gcin-conf.o util.o gcin-send.o
 OBJS_gcin_kbm_toggle = gcin-kbm-toggle.o gcin-conf.o util.o gcin-send.o
+OBJS_gcin_im_toggle = gcin-im-toggle.o gcin-conf.o util.o gcin-send.o
 OBJS_gcin_exit = gcin-exit.o gcin-conf.o util.o gcin-send.o
 OBJS_gcin_message = gcin-message.o gcin-conf.o util.o gcin-send.o
 OBJS_pin_juyin = pin-juyin.o util.o pho-lookup.o locale.o pho-sym.o
@@ -177,6 +178,9 @@ gcin-gb-toggle:	$(OBJS_gcin_gb_toggle)
 gcin-kbm-toggle:	$(OBJS_gcin_kbm_toggle)
 	$(CCLD) $(gcc_ld_run_path) -o $@ $(OBJS_gcin_kbm_toggle) -L./im-client -lgcin-im-client $(LDFLAGS)
 
+gcin-im-toggle:	$(OBJS_gcin_im_toggle)
+	$(CCLD) $(gcc_ld_run_path) -o $@ $(OBJS_gcin_im_toggle) -L./im-client -lgcin-im-client $(LDFLAGS)
+
 gcin-exit:	$(OBJS_gcin_exit)
 	$(CCLD) $(gcc_ld_run_path) -o $@ $(OBJS_gcin_exit) -L./im-client -lgcin-im-client $(LDFLAGS)
 
diff --git a/gcin-conf.h b/gcin-conf.h
index 0b64a42..c4e4b36 100755
--- a/gcin-conf.h
+++ b/gcin-conf.h
@@ -3,6 +3,7 @@
 #define KBM_TOGGLE "kbm toggle"
 #define RELOAD_TSIN_DB "reload tsin db"
 #define GCIN_EXIT_MESSAGE "gcin exit"
+#define GCIN_IM_TOGGLE "gcin im toggle"
 
 
 #define GCIN_FONT_SIZE "gcin-font-size"
diff --git a/gcin-im-toggle.cpp b/gcin-im-toggle.cpp
new file mode 100644
index 0000000..d7b31b2
--- /dev/null
+++ b/gcin-im-toggle.cpp
@@ -0,0 +1,9 @@
+#include "gcin.h"
+
+int main()
+{
+  gdk_init(NULL, NULL);
+  send_gcin_message(GDK_DISPLAY(), GCIN_IM_TOGGLE);
+
+  return 0;
+}
diff --git a/gcin.cpp b/gcin.cpp
index 9a22f60..2179e88 100755
--- a/gcin.cpp
+++ b/gcin.cpp
@@ -382,6 +382,9 @@ void message_cb(char *message)
      reload_tsin_db();
      reload_en_db();
    } else
+   if (!strcmp(message, GCIN_IM_TOGGLE)) {
+     toggle_im_enabled();
+   } else
    if (!strcmp(message, GCIN_EXIT_MESSAGE)) {
      do_exit();
    } else
-- 
2.39.5

