I know this is a pretty old post but there's not enough information out there about GTK+3 anyway. Setting gtk_editable_set_editable doesn't hide the cursor. At least not in GtkEntry. If you want to hide it you can just change it to the background color. Using CSS with Gtk-3.2.0 you use
-GtkWidget-cursor-color like this:
Code:
/* Compile With: gcc -Wall -o cursor `pkg-config --cflags --libs gtk+-3.0` cursor.c */
#include <gtk/gtk.h>
int main (int argc, char* argv[])
{
GtkWidget *window;
GtkWidget *tview;
GtkTextBuffer *tbuf;
GtkCssProvider *provider; // for css
GdkDisplay *display; // for css
GdkScreen *screen; // for css
gtk_init(&argc, &argv);
/*------------- CSS --------------------------------------------------------------------------------------*/
provider = gtk_css_provider_new ();
gtk_css_provider_load_from_data (provider,
"GtkTextView {color: blue; font: Serif 38; background-color: yellow; -GtkWidget-cursor-color: red}",-1,NULL);
display = gdk_display_get_default ();
screen = gdk_display_get_default_screen (display);
gtk_style_context_add_provider_for_screen (screen,
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
/*------------- CSS --------------------------------------------------------------------------------------*/
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 500, 250);
g_signal_connect_swapped(G_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
tbuf = gtk_text_buffer_new(NULL);
tview = gtk_text_view_new_with_buffer (tbuf);
gtk_container_add(GTK_CONTAINER(window), tview);
gtk_widget_show_all(window);
gtk_main();
return 0;
}