textview: Use gtk_widget_set_cursor()

This currently breaks because we still use GdkWindows. Soon...
This commit is contained in:
Benjamin Otte
2017-11-04 03:58:02 +01:00
parent f7646cf541
commit 197eeade74

View File

@@ -1666,6 +1666,8 @@ gtk_text_view_init (GtkTextView *text_view)
context = gtk_widget_get_style_context (GTK_WIDGET (text_view));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW);
gtk_widget_set_cursor_from_name (widget, "text");
/* Set up default style */
priv->wrap_mode = GTK_WRAP_NONE;
priv->pixels_above_lines = 0;
@@ -4691,7 +4693,6 @@ gtk_text_view_map (GtkWidget *widget)
{
GtkTextView *text_view;
GtkTextViewPrivate *priv;
GdkCursor *cursor;
text_view = GTK_TEXT_VIEW (widget);
priv = text_view->priv;
@@ -4710,9 +4711,7 @@ gtk_text_view_map (GtkWidget *widget)
if (priv->bottom_window)
text_window_map (priv->bottom_window);
cursor = gdk_cursor_new_from_name ("text", NULL);
gtk_widget_set_cursor (widget, cursor);
g_object_unref (cursor);
gtk_widget_set_cursor_from_name (widget, "text");
GTK_WIDGET_CLASS (gtk_text_view_parent_class)->map (widget);
}
@@ -4837,24 +4836,8 @@ gtk_text_view_state_flags_changed (GtkWidget *widget,
{
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
GtkTextViewPrivate *priv = text_view->priv;
GdkCursor *cursor;
GtkStateFlags state;
if (gtk_widget_get_realized (widget))
{
if (gtk_widget_is_sensitive (widget))
cursor = gdk_cursor_new_from_name ("text", NULL);
else
cursor = NULL;
gdk_window_set_cursor (priv->text_window->bin_window, cursor);
if (cursor)
g_object_unref (cursor);
priv->mouse_cursor_obscured = FALSE;
}
if (!gtk_widget_is_sensitive (widget))
{
/* Clear any selection */
@@ -4879,25 +4862,13 @@ gtk_text_view_state_flags_changed (GtkWidget *widget,
gtk_widget_queue_draw (widget);
}
static void
set_invisible_cursor (GdkWindow *window)
{
GdkCursor *cursor;
cursor = gdk_cursor_new_from_name ("none", NULL);
gdk_window_set_cursor (window, cursor);
g_clear_object (&cursor);
}
static void
gtk_text_view_obscure_mouse_cursor (GtkTextView *text_view)
{
if (text_view->priv->mouse_cursor_obscured)
return;
set_invisible_cursor (text_view->priv->text_window->bin_window);
gtk_widget_set_cursor_from_name (GTK_WIDGET (text_view), "none");
text_view->priv->mouse_cursor_obscured = TRUE;
}
@@ -4907,11 +4878,7 @@ gtk_text_view_unobscure_mouse_cursor (GtkTextView *text_view)
{
if (text_view->priv->mouse_cursor_obscured)
{
GdkCursor *cursor;
cursor = gdk_cursor_new_from_name ("text", NULL);
gdk_window_set_cursor (text_view->priv->text_window->bin_window, cursor);
g_object_unref (cursor);
gtk_widget_set_cursor_from_name (GTK_WIDGET (text_view), "text");
text_view->priv->mouse_cursor_obscured = FALSE;
}
}
@@ -9735,7 +9702,6 @@ text_window_realize (GtkTextWindow *win,
GtkWidget *widget)
{
GdkWindow *window;
GdkCursor *cursor;
window = gtk_widget_get_window (widget);
@@ -9759,9 +9725,6 @@ text_window_realize (GtkTextWindow *win,
if (win->type == GTK_TEXT_WINDOW_TEXT &&
gtk_widget_is_sensitive (widget))
{
cursor = gdk_cursor_new_from_name ("text", NULL);
gdk_window_set_cursor (win->bin_window, cursor);
g_clear_object (&cursor);
gtk_im_context_set_client_widget (GTK_TEXT_VIEW (widget)->priv->im_context,
widget);