summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2017-11-04 03:16:26 +0100
committerBenjamin Otte <otte@redhat.com>2017-11-04 15:22:25 +0100
commitf7646cf541224a5efecb6fef5dd5987bd123507c (patch)
tree77fd3a8284ba6e72a77f85f06a3f793dcf63301f
parent7b0ed475258863774f6e786463470a87b5556a75 (diff)
downloadgtk+-f7646cf541224a5efecb6fef5dd5987bd123507c.tar.gz
textview: Remove GdkWindow usage from the public API
A sideeffect is that we don't set the correct parent window on child widgets anymore, but that is hopefully going to be fixed once we get rid of child windows completely.
-rw-r--r--demos/gtk-demo/hypertext.c9
-rw-r--r--gtk/a11y/gtktextviewaccessible.c4
-rw-r--r--gtk/gtktextview.c112
-rw-r--r--gtk/gtktextview.h7
4 files changed, 8 insertions, 124 deletions
diff --git a/demos/gtk-demo/hypertext.c b/demos/gtk-demo/hypertext.c
index ecb9fd351e..804a161c89 100644
--- a/demos/gtk-demo/hypertext.c
+++ b/demos/gtk-demo/hypertext.c
@@ -179,8 +179,6 @@ event_after (GtkWidget *text_view,
}
static gboolean hovering_over_link = FALSE;
-static GdkCursor *hand_cursor = NULL;
-static GdkCursor *regular_cursor = NULL;
/* Looks at all tags covering the position (x, y) in the text view,
* and if one of them is a link, change the cursor to the "hands" cursor
@@ -216,9 +214,9 @@ set_cursor_if_appropriate (GtkTextView *text_view,
hovering_over_link = hovering;
if (hovering_over_link)
- gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), hand_cursor);
+ gtk_widget_set_cursor_from_name (GTK_WIDGET (text_view), "pointer");
else
- gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor);
+ gtk_widget_set_cursor_from_name (GTK_WIDGET (text_view), "text");
}
if (tags)
@@ -255,9 +253,6 @@ do_hypertext (GtkWidget *do_widget)
GtkWidget *sw;
GtkTextBuffer *buffer;
- hand_cursor = gdk_cursor_new_from_name ("pointer", NULL);
- regular_cursor = gdk_cursor_new_from_name ("text", NULL);
-
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hypertext");
gtk_window_set_display (GTK_WINDOW (window),
diff --git a/gtk/a11y/gtktextviewaccessible.c b/gtk/a11y/gtktextviewaccessible.c
index f4e592849d..085f6284ce 100644
--- a/gtk/a11y/gtktextviewaccessible.c
+++ b/gtk/a11y/gtktextviewaccessible.c
@@ -456,7 +456,7 @@ gtk_text_view_accessible_get_offset_at_point (AtkText *text,
return -1;
view = GTK_TEXT_VIEW (widget);
- window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
+ window = gtk_widget_get_window (widget);
gdk_window_get_origin (window, &x_widget, &y_widget);
if (coords == ATK_XY_SCREEN)
@@ -525,7 +525,7 @@ gtk_text_view_accessible_get_character_extents (AtkText *text,
gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
gtk_text_view_get_iter_location (view, &iter, &rectangle);
- window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
+ window = gtk_widget_get_window (widget);
if (window == NULL)
return;
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index 247f553187..e1db105ac2 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -5856,7 +5856,7 @@ paint_border_window (GtkTextView *text_view,
if (text_window == NULL)
return;
- window = gtk_text_view_get_window (text_view, text_window->type);
+ window = text_window->bin_window;
w = gdk_window_get_width (window);
h = gdk_window_get_height (window);
@@ -9721,7 +9721,7 @@ gtk_text_view_get_rendered_rect (GtkTextView *text_view,
GtkTextViewPrivate *priv = text_view->priv;
GdkWindow *window;
- window = gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT);
+ window = priv->text_window->bin_window;
rect->x = gtk_adjustment_get_value (priv->hadjustment);
rect->y = gtk_adjustment_get_value (priv->vadjustment) - priv->top_margin;
@@ -9994,77 +9994,6 @@ text_window_get_height (GtkTextWindow *win)
/* Windows */
-/**
- * gtk_text_view_get_window:
- * @text_view: a #GtkTextView
- * @win: window to get
- *
- * Retrieves the #GdkWindow corresponding to an area of the text view;
- * possible windows include the overall widget window, child windows
- * on the left, right, top, bottom, and the window that displays the
- * text buffer. Windows are %NULL and nonexistent if their width or
- * height is 0, and are nonexistent before the widget has been
- * realized.
- *
- * Returns: (nullable) (transfer none): a #GdkWindow, or %NULL
- **/
-GdkWindow*
-gtk_text_view_get_window (GtkTextView *text_view,
- GtkTextWindowType win)
-{
- GtkTextViewPrivate *priv = text_view->priv;
-
- g_return_val_if_fail (GTK_IS_TEXT_VIEW (text_view), NULL);
-
- switch (win)
- {
- case GTK_TEXT_WINDOW_WIDGET:
- return gtk_widget_get_window (GTK_WIDGET (text_view));
- break;
-
- case GTK_TEXT_WINDOW_TEXT:
- return priv->text_window->bin_window;
- break;
-
- case GTK_TEXT_WINDOW_LEFT:
- if (priv->left_window)
- return priv->left_window->bin_window;
- else
- return NULL;
- break;
-
- case GTK_TEXT_WINDOW_RIGHT:
- if (priv->right_window)
- return priv->right_window->bin_window;
- else
- return NULL;
- break;
-
- case GTK_TEXT_WINDOW_TOP:
- if (priv->top_window)
- return priv->top_window->bin_window;
- else
- return NULL;
- break;
-
- case GTK_TEXT_WINDOW_BOTTOM:
- if (priv->bottom_window)
- return priv->bottom_window->bin_window;
- else
- return NULL;
- break;
-
- case GTK_TEXT_WINDOW_PRIVATE:
- default:
- g_warning ("%s: You can't get GTK_TEXT_WINDOW_PRIVATE, it has \"PRIVATE\" in the name because it is private.", G_STRFUNC);
- return NULL;
- break;
- }
-
- g_warning ("%s: Unknown GtkTextWindowType", G_STRFUNC);
- return NULL;
-}
-
static GtkCssNode *
gtk_text_view_get_css_node (GtkTextView *text_view,
GtkTextWindowType win)
@@ -10107,41 +10036,6 @@ gtk_text_view_get_css_node (GtkTextView *text_view,
return NULL;
}
-/**
- * gtk_text_view_get_window_type:
- * @text_view: a #GtkTextView
- * @window: a window type
- *
- * Usually used to find out which window an event corresponds to.
- * If you connect to an event signal on @text_view, this function
- * should be called on `event->window` to
- * see which window it was.
- *
- * Returns: the window type.
- **/
-GtkTextWindowType
-gtk_text_view_get_window_type (GtkTextView *text_view,
- GdkWindow *window)
-{
- GtkTextWindow *win;
-
- g_return_val_if_fail (GTK_IS_TEXT_VIEW (text_view), 0);
- g_return_val_if_fail (GDK_IS_WINDOW (window), 0);
-
- if (window == gtk_widget_get_window (GTK_WIDGET (text_view)))
- return GTK_TEXT_WINDOW_WIDGET;
-
- win = g_object_get_qdata (G_OBJECT (window),
- g_quark_try_string ("gtk-text-view-text-window"));
-
- if (win)
- return win->type;
- else
- {
- return GTK_TEXT_WINDOW_PRIVATE;
- }
-}
-
static void
buffer_to_widget (GtkTextView *text_view,
gint buffer_x,
@@ -10697,10 +10591,12 @@ text_view_child_set_parent_window (GtkTextView *text_view,
text_view->priv->text_window->bin_window);
else
{
+#if 0
GdkWindow *window;
window = gtk_text_view_get_window (text_view,
vc->type);
gtk_widget_set_parent_window (vc->widget, window);
+#endif
}
}
diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h
index 6b2d87cb47..7f536a295f 100644
--- a/gtk/gtktextview.h
+++ b/gtk/gtktextview.h
@@ -296,13 +296,6 @@ void gtk_text_view_window_to_buffer_coords (GtkTextView *text_view,
gint *buffer_y);
GDK_AVAILABLE_IN_ALL
-GdkWindow* gtk_text_view_get_window (GtkTextView *text_view,
- GtkTextWindowType win);
-GDK_AVAILABLE_IN_ALL
-GtkTextWindowType gtk_text_view_get_window_type (GtkTextView *text_view,
- GdkWindow *window);
-
-GDK_AVAILABLE_IN_ALL
void gtk_text_view_set_border_window_size (GtkTextView *text_view,
GtkTextWindowType type,
gint size);