Как сделать TextView виджет так, чтобы он принимал событие клика и не изменял курсор?

Для того чтобы сделать TextView виджет в C так, чтобы он принимал событие клика и не изменял курсор, вам потребуется использовать библиотеку GTK+ (GIMP Toolkit) и написать обработчик событий.

Вначале вам нужно установить библиотеку GTK+ на вашей системе. Для этого вы можете воспользоваться менеджером пакетов вашего дистрибутива Linux или загрузить ее с официального сайта GTK+.

После того, как вы установили GTK+, вам нужно будет подключить соответствующие заголовочные файлы и библиотеки к вашему проекту. Вы можете использовать компьютерную программу make для автоматической компиляции и связывания вашего кода.

Пример кода на языке C, который создает окно с TextView виджетом, принимающим событие клика и не изменяющим курсор, приведен ниже:

#include <gtk/gtk.h>

// Функция, которая будет вызываться при нажатии на TextView
void on_text_view_clicked(GtkWidget *widget, gpointer data) {
    // Поместите здесь код для выполнения при нажатии на TextView
}

int main(int argc, char *argv[]) {
    GtkWidget *window;
    GtkWidget *text_view;

    // Инициализация GTK+
    gtk_init(&argc, &argv);

    // Создание окна
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    // Создание TextView виджета
    text_view = gtk_text_view_new();
    gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text_view), FALSE);
    g_signal_connect(text_view, "button_press_event", G_CALLBACK(on_text_view_clicked), NULL);

    // Установка TextView виджета в окно
    gtk_container_add(GTK_CONTAINER(window), text_view);
    gtk_widget_show_all(window);

    // Запуск цикла обработки событий GTK+
    gtk_main();

    return 0;
}

Когда вы запускаете этот код, он создает новое окно с TextView виджетом. Когда вы щелкаете левой кнопкой мыши на TextView, вызывается функция on_text_view_clicked, где вы можете поместить ваш собственный код обработки события. Затем вы можете добавить другие функции и обработчики событий по вашему усмотрению.

Этот код также вызывает функцию gtk_text_view_set_cursor_visible, чтобы скрыть курсор в TextView виджете. Это делается для того, чтобы перекрытие курсора не отвлекало пользователя от нажатия на виджет.