[gtksourceview/wip/chergert/gsv-gtk4: 88/117] styleschemechooser: port to GTK 4
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/chergert/gsv-gtk4: 88/117] styleschemechooser: port to GTK 4
- Date: Wed, 29 Jan 2020 17:34:48 +0000 (UTC)
commit 2da80083dc808a7a72af9765231d05a0e01d08fc
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 15 14:31:08 2020 -0800
styleschemechooser: port to GTK 4
Instead of an event box to hijack input, we can just place a label over
the sourceview.
Setting show-line-numbers causes a number of issues with Pango, which
needs further investigation.
gtksourceview/gtksourcestyleschemechooserbutton.c | 4 ++--
gtksourceview/gtksourcestyleschemechooserwidget.c | 21 +++++++++++++--------
2 files changed, 15 insertions(+), 10 deletions(-)
---
diff --git a/gtksourceview/gtksourcestyleschemechooserbutton.c
b/gtksourceview/gtksourcestyleschemechooserbutton.c
index fb69c0cb..4fe70d83 100644
--- a/gtksourceview/gtksourcestyleschemechooserbutton.c
+++ b/gtksourceview/gtksourcestyleschemechooserbutton.c
@@ -176,7 +176,7 @@ ensure_dialog (GtkSourceStyleSchemeChooserButton *button)
return;
}
- parent = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ parent = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (button)));
/* TODO: have a ChooserDialog? */
priv->dialog = dialog = gtk_dialog_new_with_buttons (_("Select a Style"),
@@ -203,7 +203,7 @@ ensure_dialog (GtkSourceStyleSchemeChooserButton *button)
gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (priv->chooser));
- if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
+ if (GTK_IS_ROOT (parent) && GTK_IS_WINDOW (parent))
{
if (GTK_WINDOW (parent) != gtk_window_get_transient_for (GTK_WINDOW (dialog)))
{
diff --git a/gtksourceview/gtksourcestyleschemechooserwidget.c
b/gtksourceview/gtksourcestyleschemechooserwidget.c
index 68175b51..0d997184 100644
--- a/gtksourceview/gtksourcestyleschemechooserwidget.c
+++ b/gtksourceview/gtksourcestyleschemechooserwidget.c
@@ -134,9 +134,10 @@ make_row (GtkSourceStyleScheme *scheme,
{
GtkWidget *row;
AtkObject *accessible;
- GtkWidget *event;
GtkSourceBuffer *buffer;
GtkWidget *view;
+ GtkWidget *overlay;
+ GtkWidget *label;
gchar *text;
row = gtk_list_box_row_new ();
@@ -147,11 +148,6 @@ make_row (GtkSourceStyleScheme *scheme,
g_object_set_data (G_OBJECT (row), "scheme", scheme);
- event = gtk_event_box_new ();
- gtk_event_box_set_above_child (GTK_EVENT_BOX (event), TRUE);
- gtk_widget_show (event);
- gtk_container_add (GTK_CONTAINER (row), event);
-
buffer = gtk_source_buffer_new_with_language (language);
gtk_source_buffer_set_highlight_matching_brackets (buffer, FALSE);
gtk_source_buffer_set_style_scheme (buffer, scheme);
@@ -161,18 +157,27 @@ make_row (GtkSourceStyleScheme *scheme,
gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), text, -1);
g_free (text);
+ overlay = gtk_overlay_new ();
+ gtk_container_add (GTK_CONTAINER (row), overlay);
+
view = g_object_new (GTK_SOURCE_TYPE_VIEW,
"buffer", buffer,
"can-focus", FALSE,
"cursor-visible", FALSE,
"editable", FALSE,
"visible", TRUE,
- "show-line-numbers", TRUE,
"right-margin-position", 30,
"show-right-margin", TRUE,
"margin", 2,
NULL);
- gtk_container_add (GTK_CONTAINER (event), view);
+ gtk_container_add (GTK_CONTAINER (overlay), view);
+
+ label = g_object_new (GTK_TYPE_LABEL,
+ "can-focus", FALSE,
+ "expand", TRUE,
+ "selectable", FALSE,
+ NULL);
+ gtk_overlay_add_overlay (GTK_OVERLAY (overlay), label);
return row;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]