[gnome-builder] libide/sourceview: remove shadow from search bubble
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] libide/sourceview: remove shadow from search bubble
- Date: Wed, 12 Oct 2022 00:13:44 +0000 (UTC)
commit 12b1ad313971c6ef90557f72532abb0e07f54e60
Author: Colin Kinloch <colin kinloch collabora com>
Date: Tue Oct 11 22:35:01 2022 +0100
libide/sourceview: remove shadow from search bubble
Signed-off-by: Colin Kinloch <colin kinloch collabora com>
.../gsettings/org.gnome.builder.editor.gschema.xml | 5 ++
src/libide/editor/ide-editor-page-settings.c | 3 ++
src/libide/sourceview/ide-source-view-private.h | 4 +-
src/libide/sourceview/ide-source-view.c | 53 ++++++++++++++++++++--
src/libide/sourceview/ide-source-view.h | 6 +++
src/plugins/editorui/gbp-editorui-preview.c | 4 +-
src/plugins/editorui/tweaks.ui | 17 +++++++
7 files changed, 87 insertions(+), 5 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.editor.gschema.xml
b/data/gsettings/org.gnome.builder.editor.gschema.xml
index 04861bfd9..515121f4c 100644
--- a/data/gsettings/org.gnome.builder.editor.gschema.xml
+++ b/data/gsettings/org.gnome.builder.editor.gschema.xml
@@ -145,5 +145,10 @@
<summary>Select First Completion</summary>
<description>Automatically select the first auto-completion entry.</description>
</key>
+ <key name="rounded-find-bubbles" type="b">
+ <default>true</default>
+ <summary>Rounded Find Bubbles</summary>
+ <description>Display Search Results with Rounded Edges</description>
+ </key>
</schema>
</schemalist>
diff --git a/src/libide/editor/ide-editor-page-settings.c b/src/libide/editor/ide-editor-page-settings.c
index 7f4c0273d..d3a8081a5 100644
--- a/src/libide/editor/ide-editor-page-settings.c
+++ b/src/libide/editor/ide-editor-page-settings.c
@@ -294,6 +294,9 @@ _ide_editor_page_settings_init (IdeEditorPage *self)
g_settings_bind (editor_settings, "smart-backspace",
self->view, "smart-backspace",
G_SETTINGS_BIND_GET);
+ g_settings_bind (editor_settings, "rounded-find-bubbles",
+ self->view, "rounded-find-bubbles",
+ G_SETTINGS_BIND_GET);
g_settings_bind (editor_settings,
"completion-n-rows",
gtk_source_view_get_completion (GTK_SOURCE_VIEW (self->view)),
diff --git a/src/libide/sourceview/ide-source-view-private.h b/src/libide/sourceview/ide-source-view-private.h
index 029104acb..27061d6f0 100644
--- a/src/libide/sourceview/ide-source-view-private.h
+++ b/src/libide/sourceview/ide-source-view-private.h
@@ -47,6 +47,7 @@ struct _IdeSourceView
PangoFontDescription *font_desc;
double line_height;
int font_scale;
+ bool rounded_find_bubbles;
/* Search context used to draw bubbles */
GtkSourceSearchContext *search_context;
@@ -93,7 +94,8 @@ void _ide_source_view_addins_set_language (IdeSourceView *self,
char *_ide_source_view_generate_css (GtkSourceView *view,
const PangoFontDescription *font_desc,
int font_scale,
- double line_height);
+ double line_height,
+ bool rounded_find_bubbles);
void _ide_source_view_set_search_context (IdeSourceView *self,
GtkSourceSearchContext *search_context);
diff --git a/src/libide/sourceview/ide-source-view.c b/src/libide/sourceview/ide-source-view.c
index 9b5d2ff63..6dd73b180 100644
--- a/src/libide/sourceview/ide-source-view.c
+++ b/src/libide/sourceview/ide-source-view.c
@@ -48,6 +48,7 @@ enum {
PROP_LINE_HEIGHT,
PROP_OVERWRITE_BRACES,
PROP_ZOOM_LEVEL,
+ PROP_ROUNDED_FIND_BUBBLES,
N_PROPS,
/* Property Overrides */
@@ -73,7 +74,8 @@ char *
_ide_source_view_generate_css (GtkSourceView *view,
const PangoFontDescription *font_desc,
int font_scale,
- double line_height)
+ double line_height,
+ bool rounded_find_bubbles)
{
g_autofree char *font_css = NULL;
PangoFontDescription *scaled = NULL;
@@ -91,7 +93,8 @@ _ide_source_view_generate_css (GtkSourceView *view,
/* Get information for search bubbles */
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
- if ((scheme = gtk_source_buffer_get_style_scheme (GTK_SOURCE_BUFFER (buffer))) &&
+ if (rounded_find_bubbles &&
+ (scheme = gtk_source_buffer_get_style_scheme (GTK_SOURCE_BUFFER (buffer))) &&
(style = gtk_source_style_scheme_get_style (scheme, "search-match")))
{
g_autofree char *background = NULL;
@@ -167,7 +170,8 @@ ide_source_view_update_css (IdeSourceView *self)
g_assert (IDE_IS_SOURCE_VIEW (self));
- if ((css = _ide_source_view_generate_css (GTK_SOURCE_VIEW (self), self->font_desc, self->font_scale,
self->line_height)))
+ if ((css = _ide_source_view_generate_css (GTK_SOURCE_VIEW (self), self->font_desc, self->font_scale,
+ self->line_height, self->rounded_find_bubbles)))
gtk_css_provider_load_from_data (self->css_provider, css, -1);
}
@@ -656,6 +660,11 @@ ide_source_view_connect_buffer (IdeSourceView *self,
G_CALLBACK (ide_source_view_update_css),
self,
G_CONNECT_SWAPPED);
+ g_signal_connect_object (self,
+ "notify::rounded-find-bubbles",
+ G_CALLBACK (ide_source_view_update_css),
+ self,
+ G_CONNECT_SWAPPED);
/* Insert matching braces features */
g_signal_connect_object (buffer,
@@ -1264,6 +1273,10 @@ ide_source_view_get_property (GObject *object,
g_value_set_double (value, ide_source_view_get_zoom_level (self));
break;
+ case PROP_ROUNDED_FIND_BUBBLES:
+ g_value_set_boolean (value, ide_source_view_get_rounded_find_bubbles (self));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -1305,6 +1318,10 @@ ide_source_view_set_property (GObject *object,
ide_source_view_set_overwrite_braces (self, g_value_get_boolean (value));
break;
+ case PROP_ROUNDED_FIND_BUBBLES:
+ ide_source_view_set_rounded_find_bubbles (self, g_value_get_boolean (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
@@ -1375,6 +1392,13 @@ ide_source_view_class_init (IdeSourceViewClass *klass)
-G_MAXDOUBLE, G_MAXDOUBLE, 1.0,
(G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+ properties [PROP_ROUNDED_FIND_BUBBLES] =
+ g_param_spec_boolean ("rounded-find-bubbles",
+ "Rounded Find Bubbles",
+ "Display find bubbles rounded",
+ TRUE,
+ (G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS));
+
g_object_class_install_properties (object_class, N_PROPS, properties);
/**
@@ -1889,6 +1913,29 @@ ide_source_view_set_overwrite_braces (IdeSourceView *self,
}
}
+gboolean
+ide_source_view_get_rounded_find_bubbles (IdeSourceView *self)
+{
+ g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), FALSE);
+
+ return self->rounded_find_bubbles;
+}
+
+void
+ide_source_view_set_rounded_find_bubbles (IdeSourceView *self,
+ gboolean rounded_find_bubbles)
+{
+ g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
+
+ rounded_find_bubbles = !!rounded_find_bubbles;
+
+ if (rounded_find_bubbles != self->rounded_find_bubbles)
+ {
+ self->rounded_find_bubbles = rounded_find_bubbles;
+ g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_ROUNDED_FIND_BUBBLES]);
+ }
+}
+
static int
sort_by_priority (gconstpointer a,
gconstpointer b)
diff --git a/src/libide/sourceview/ide-source-view.h b/src/libide/sourceview/ide-source-view.h
index afab81370..22a0d1048 100644
--- a/src/libide/sourceview/ide-source-view.h
+++ b/src/libide/sourceview/ide-source-view.h
@@ -96,4 +96,10 @@ IDE_AVAILABLE_IN_ALL
void ide_source_view_set_overwrite_braces (IdeSourceView *self,
gboolean
overwrite_braces);
+IDE_AVAILABLE_IN_ALL
+gboolean ide_source_view_get_rounded_find_bubbles (IdeSourceView *self);
+IDE_AVAILABLE_IN_ALL
+void ide_source_view_set_rounded_find_bubbles (IdeSourceView *self,
+ gboolean
rounded_find_bubbles);
+
G_END_DECLS
diff --git a/src/plugins/editorui/gbp-editorui-preview.c b/src/plugins/editorui/gbp-editorui-preview.c
index 9d20af06a..ea0b368e4 100644
--- a/src/plugins/editorui/gbp-editorui-preview.c
+++ b/src/plugins/editorui/gbp-editorui-preview.c
@@ -131,12 +131,14 @@ gbp_editorui_preview_settings_changed_cb (GbpEditoruiPreview *self,
g_autofree char *font_name = NULL;
PangoFontDescription *font_desc;
double line_height;
+ bool rounded_find_bubbles;
line_height = g_settings_get_double (settings, "line-height");
font_name = g_settings_get_string (settings, "font-name");
font_desc = pango_font_description_from_string (font_name);
+ rounded_find_bubbles = g_settings_get_boolean (settings, "rounded-find-bubbles");
- if ((css = _ide_source_view_generate_css (GTK_SOURCE_VIEW (self), font_desc, 1, line_height)))
+ if ((css = _ide_source_view_generate_css (GTK_SOURCE_VIEW (self), font_desc, 1, line_height,
rounded_find_bubbles)))
gtk_css_provider_load_from_data (self->css_provider, css, -1);
g_clear_pointer (&font_desc, pango_font_description_free);
diff --git a/src/plugins/editorui/tweaks.ui b/src/plugins/editorui/tweaks.ui
index 53ebeb53f..ed466d6ac 100644
--- a/src/plugins/editorui/tweaks.ui
+++ b/src/plugins/editorui/tweaks.ui
@@ -349,6 +349,23 @@
</child>
</object>
</child>
+ <child>
+ <object class="IdeTweaksGroup">
+ <property name="title" translatable="yes">Misc</property>
+ <child>
+ <object class="IdeTweaksSwitch" id="editor_rounded_find_bubbles">
+ <property name="title" translatable="yes">Rounded Find Bubbles</property>
+ <property name="subtitle" translatable="yes">Display text search matched with
rounded corners</property>
+ <property name="binding">
+ <object class="IdeTweaksSetting">
+ <property name="schema-id">org.gnome.builder.editor</property>
+ <property name="schema-key">rounded-find-bubbles</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</child>
<child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]