summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/inkscape.cpp11
-rw-r--r--src/libnrtype/FontInstance.cpp2
-rw-r--r--src/libnrtype/font-lister.cpp20
-rw-r--r--src/style-internal.cpp2
-rw-r--r--src/ui/toolbar/text-toolbar.cpp6
-rw-r--r--src/ui/widget/color-icc-selector.cpp4
-rw-r--r--src/ui/widget/combo-box-entry-tool-item.cpp3
-rw-r--r--src/ui/widget/combo-tool-item.cpp4
-rw-r--r--src/widgets/paint-selector.cpp23
-rw-r--r--src/widgets/toolbox.cpp4
10 files changed, 55 insertions, 24 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index f76ea3c22..030072df8 100644
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
@@ -558,9 +558,9 @@ void Application::add_gtk_css()
// Add style sheet (GTK3)
auto const screen = Gdk::Screen::get_default();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- const gchar *gtk_font_name = "";
- const gchar *gtkThemeName;
- const gchar *gtkIconThemeName;
+ gchar *gtk_font_name = nullptr;
+ gchar *gtkThemeName = nullptr;
+ gchar *gtkIconThemeName = nullptr;
Glib::ustring themeiconname;
gboolean gtkApplicationPreferDarkTheme;
GtkSettings *settings = gtk_settings_get_default();
@@ -587,6 +587,8 @@ void Application::add_gtk_css()
g_object_get(settings, "gtk-font-name", &gtk_font_name, NULL);
}
+ g_free(gtkThemeName);
+ g_free(gtkIconThemeName);
Glib::ustring style = get_filename(UIS, "style.css");
if (!style.empty()) {
@@ -613,7 +615,7 @@ void Application::add_gtk_css()
}
Gtk::StyleContext::add_provider_for_screen(screen, colorizeprovider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- if (!strncmp(gtk_font_name, "Cantarell", 9)) {
+ if (gtk_font_name && !strncmp(gtk_font_name, "Cantarell", 9)) {
auto provider = Gtk::CssProvider::create();
css_str = "#monoStrokeWidth,";
css_str += "#fillEmptySpace,";
@@ -631,6 +633,7 @@ void Application::add_gtk_css()
}
Gtk::StyleContext::add_provider_for_screen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
+ g_free(gtk_font_name);
}
void Application::readStyleSheets(bool forceupd)
diff --git a/src/libnrtype/FontInstance.cpp b/src/libnrtype/FontInstance.cpp
index 4204bcd11..e0fa2bec8 100644
--- a/src/libnrtype/FontInstance.cpp
+++ b/src/libnrtype/FontInstance.cpp
@@ -958,6 +958,7 @@ void font_instance::FindFontMetrics() {
// std::cout << "Math baseline: - bbox: y_min: " << acbox.yMin
// << " y_max: " << acbox.yMax
// << " math: " << math << std::endl;
+ FT_Done_Glyph(aglyph);
}
// Find hanging baseline... assume it is at top of 'म'.
@@ -971,6 +972,7 @@ void font_instance::FindFontMetrics() {
double hanging = (double)acbox.yMax/(double)theFace->units_per_EM;
_baselines[ SP_CSS_BASELINE_HANGING ] = hanging;
// std::cout << "Hanging baseline: प: " << hanging << std::endl;
+ FT_Done_Glyph(aglyph);
}
}
#endif
diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp
index 984741adc..30283e624 100644
--- a/src/libnrtype/font-lister.cpp
+++ b/src/libnrtype/font-lister.cpp
@@ -411,7 +411,10 @@ void FontLister::update_font_data_recursive(SPObject& r, std::map<Glib::ustring,
if (font_family_char) {
Glib::ustring font_family(font_family_char);
pango_font_description_unset_fields( descr, PANGO_FONT_MASK_FAMILY);
- Glib::ustring font_style = pango_font_description_to_string(descr);
+
+ gchar* font_style_char = pango_font_description_to_string(descr);
+ Glib::ustring font_style(font_style_char);
+ g_free(font_style_char);
if (!font_family.empty() && !font_style.empty()) {
font_data[font_family].insert(font_style);
@@ -908,6 +911,7 @@ void FontLister::fill_css(SPCSSAttr *css, Glib::ustring fontspec)
sp_repr_css_unset_property(css, "font-variation-settings" );
}
#endif
+ pango_font_description_free(desc);
}
@@ -1130,7 +1134,9 @@ gboolean font_lister_separator_func2(GtkTreeModel *model, GtkTreeIter *iter, gpo
{
gchar *text = nullptr;
gtk_tree_model_get(model, iter, 0, &text, -1); // Column 0: FontList.family
- return (text && strcmp(text, "#") == 0);
+ bool result = (text && strcmp(text, "#") == 0);
+ g_free(text);
+ return result;
}
// Draw system fonts in dark blue, missing fonts with red strikeout.
@@ -1153,7 +1159,6 @@ void font_lister_cell_data_func2(GtkCellLayout * /*cell_layout*/,
gboolean onSystem = false;
gtk_tree_model_get(model, iter, 0, &family, 2, &onSystem, -1);
gchar* family_escaped = g_markup_escape_text(family, -1);
- //g_free(family);
Glib::ustring markup;
if (!onSystem) {
@@ -1165,18 +1170,20 @@ void font_lister_cell_data_func2(GtkCellLayout * /*cell_layout*/,
GtkTreeIter iter;
gboolean valid;
- gchar *family = nullptr;
gboolean onSystem = true;
gboolean found = false;
for (valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
valid;
valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter)) {
- gtk_tree_model_get(model, &iter, 0, &family, 2, &onSystem, -1);
- if (onSystem && familyNamesAreEqual(token, family)) {
+ gchar *token_family = nullptr;
+ gtk_tree_model_get(model, &iter, 0, &token_family, 2, &onSystem, -1);
+ if (onSystem && familyNamesAreEqual(token, token_family)) {
found = true;
+ g_free(token_family);
break;
}
+ g_free(token_family);
}
if (found) {
markup += g_markup_escape_text(token.c_str(), -1);
@@ -1214,6 +1221,7 @@ void font_lister_cell_data_func2(GtkCellLayout * /*cell_layout*/,
}
g_object_set(G_OBJECT(cell), "markup", markup.c_str(), NULL);
+ g_free(family);
g_free(family_escaped);
}
diff --git a/src/style-internal.cpp b/src/style-internal.cpp
index 939d63e53..a1b2afd3d 100644
--- a/src/style-internal.cpp
+++ b/src/style-internal.cpp
@@ -1059,7 +1059,7 @@ SPIString::clear() {
SPIBase::clear();
g_free( value );
value = nullptr;
- if( value_default ) value = strdup( value_default );
+ if( value_default ) value = g_strdup( value_default );
}
void
diff --git a/src/ui/toolbar/text-toolbar.cpp b/src/ui/toolbar/text-toolbar.cpp
index 2488d8ec7..f2cf73257 100644
--- a/src/ui/toolbar/text-toolbar.cpp
+++ b/src/ui/toolbar/text-toolbar.cpp
@@ -212,7 +212,9 @@ namespace Toolbar {
TextToolbar::TextToolbar(SPDesktop *desktop)
: Toolbar(desktop)
, _freeze(false)
+ , _text_style_from_prefs(false)
, _outer(true)
+ , _updating(false)
, _tracker(new UnitTracker(Inkscape::Util::UNIT_TYPE_LINEAR))
, _tracker_fs(new UnitTracker(Inkscape::Util::UNIT_TYPE_LINEAR))
, _cusor_numbers(0)
@@ -657,7 +659,9 @@ TextToolbar::fontfamily_value_changed()
}
_freeze = true;
- Glib::ustring new_family = _font_family_item->get_active_text();
+ gchar *temp_family = _font_family_item->get_active_text();
+ Glib::ustring new_family(temp_family);
+ g_free(temp_family);
css_font_family_unquote( new_family ); // Remove quotes around font family names.
// TODO: Think about how to handle handle multiple selections. While
diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp
index 4862d6d03..31006052b 100644
--- a/src/ui/widget/color-icc-selector.cpp
+++ b/src/ui/widget/color-icc-selector.cpp
@@ -537,9 +537,7 @@ void ColorICCSelectorImpl::_profileSelected(GtkWidget * /*src*/, gpointer data)
self->_switchToProfile(name);
gtk_widget_set_tooltip_text(self->_profileSel, name);
- if (name) {
- g_free(name);
- }
+ g_free(name);
}
}
#endif // defined(HAVE_LIBLCMS2)
diff --git a/src/ui/widget/combo-box-entry-tool-item.cpp b/src/ui/widget/combo-box-entry-tool-item.cpp
index f3786c6f6..11dd8459d 100644
--- a/src/ui/widget/combo-box-entry-tool-item.cpp
+++ b/src/ui/widget/combo-box-entry-tool-item.cpp
@@ -475,6 +475,7 @@ ComboBoxEntryToolItem::get_active_row_from_text(ComboBoxEntryToolItem *action,
// Case sensitive compare
if( strcmp( target_text, text ) == 0 ){
found = true;
+ g_free(text);
break;
}
} else {
@@ -486,9 +487,11 @@ ComboBoxEntryToolItem::get_active_row_from_text(ComboBoxEntryToolItem *action,
g_free( target_text_casefolded );
if( equal ) {
found = true;
+ g_free(text);
break;
}
}
+ g_free(text);
}
++row;
diff --git a/src/ui/widget/combo-tool-item.cpp b/src/ui/widget/combo-tool-item.cpp
index 5e07efdf1..e9eee059d 100644
--- a/src/ui/widget/combo-tool-item.cpp
+++ b/src/ui/widget/combo-tool-item.cpp
@@ -126,12 +126,12 @@ ComboToolItem::populate_combobox()
}
Gtk::CellRendererPixbuf *renderer = new Gtk::CellRendererPixbuf;
renderer->set_property ("stock_size", Gtk::ICON_SIZE_LARGE_TOOLBAR);
- _combobox->pack_start (*renderer, false);
+ _combobox->pack_start (*Gtk::manage(renderer), false);
_combobox->add_attribute (*renderer, "icon_name", columns.col_icon );
} else if (_use_pixbuf) {
Gtk::CellRendererPixbuf *renderer = new Gtk::CellRendererPixbuf;
//renderer->set_property ("stock_size", Gtk::ICON_SIZE_LARGE_TOOLBAR);
- _combobox->pack_start (*renderer, false);
+ _combobox->pack_start (*Gtk::manage(renderer), false);
_combobox->add_attribute (*renderer, "pixbuf", columns.col_pixbuf );
}
diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp
index e1a6c2b5b..e80951928 100644
--- a/src/widgets/paint-selector.cpp
+++ b/src/widgets/paint-selector.cpp
@@ -963,6 +963,8 @@ void SPPaintSelector::updateMeshList( SPMeshGradient *mesh )
gtk_tree_model_get (store, &iter, COMBO_COL_MESH, &meshid, -1);
while (valid && strcmp(meshid, meshname) != 0) {
valid = gtk_tree_model_iter_next (store, &iter);
+ g_free(meshid);
+ meshid = nullptr;
gtk_tree_model_get (store, &iter, COMBO_COL_MESH, &meshid, -1);
}
@@ -971,6 +973,7 @@ void SPPaintSelector::updateMeshList( SPMeshGradient *mesh )
}
g_object_set_data(G_OBJECT(combo), "update", GINT_TO_POINTER(FALSE));
+ g_free(meshid);
}
}
@@ -1068,9 +1071,11 @@ SPMeshGradient *SPPaintSelector::getMeshGradient()
gchar *meshid = nullptr;
gboolean stockid = FALSE;
- gchar *label = nullptr;
- gtk_tree_model_get (store, &iter, COMBO_COL_LABEL, &label, COMBO_COL_STOCK, &stockid, COMBO_COL_MESH, &meshid, -1);
+ // gchar *label = nullptr;
+ gtk_tree_model_get (store, &iter, COMBO_COL_STOCK, &stockid, COMBO_COL_MESH, &meshid, -1);
+ // gtk_tree_model_get (store, &iter, COMBO_COL_LABEL, &label, COMBO_COL_STOCK, &stockid, COMBO_COL_MESH, &meshid, -1);
// std::cout << " .. meshid: " << (meshid?meshid:"null") << " label: " << (label?label:"null") << std::endl;
+ // g_free(label);
if (meshid == nullptr) {
return nullptr;
}
@@ -1090,11 +1095,12 @@ SPMeshGradient *SPPaintSelector::getMeshGradient()
mesh = SP_MESHGRADIENT(mesh_obj);
}
g_free(mesh_name);
-
} else {
std::cerr << "SPPaintSelector::getMeshGradient: Unexpected meshid value." << std::endl;
}
+ g_free(meshid);
+
return mesh;
}
@@ -1298,8 +1304,11 @@ void SPPaintSelector::updatePatternList( SPPattern *pattern )
gtk_tree_model_get (store, &iter, COMBO_COL_PATTERN, &patid, -1);
while (valid && strcmp(patid, patname) != 0) {
valid = gtk_tree_model_iter_next (store, &iter);
+ g_free(patid);
+ patid = nullptr;
gtk_tree_model_get (store, &iter, COMBO_COL_PATTERN, &patid, -1);
}
+ g_free(patid);
if (valid) {
gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combo), &iter);
@@ -1433,12 +1442,12 @@ SPPattern *SPPaintSelector::getPattern()
gchar *patid = nullptr;
gboolean stockid = FALSE;
- gchar *label = nullptr;
+ // gchar *label = nullptr;
gtk_tree_model_get(store, &iter,
- COMBO_COL_LABEL, &label,
+ // COMBO_COL_LABEL, &label,
COMBO_COL_STOCK, &stockid,
COMBO_COL_PATTERN, &patid, -1);
-
+ // g_free(label);
if (patid == nullptr) {
return nullptr;
}
@@ -1465,6 +1474,8 @@ SPPattern *SPPaintSelector::getPattern()
}
}
+ g_free(patid);
+
return pat;
}
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index fc5bad47a..365c0a76f 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -727,7 +727,9 @@ void update_aux_toolbox(SPDesktop * /*desktop*/, ToolBase *eventcontext, GtkWidg
gchar const *tname = ( eventcontext
? eventcontext->getPrefsPath().c_str() //g_type_name(G_OBJECT_TYPE(eventcontext))
: nullptr );
- GtkWidget *stack = (GtkWidget *)gtk_container_get_children((GtkContainer *)toolbox)->data;
+ GList *list = gtk_container_get_children((GtkContainer *)toolbox);
+ GtkWidget *stack = (GtkWidget *)list->data;
+ g_list_free(list);
gtk_stack_set_visible_child_name((GtkStack *)stack, tname);
}