Bug#771712: unblock: gedit/3.14.0-3
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Hi,
please unblock gedit to push a handful of upstream fixes.
gedit (3.14.0-3) unstable; urgency=medium
* 10_external-tools_missing_column.patch: patch from upstream git.
Fixes a typo in the external tools plugin.
* 11_quick-open_crash_IM.patch: patch from upstream git. Fix a bug in
the quick-open plugin that makes the input manager crash.
* 12_send-to-fpaste_path.patch: patch from upstream git. Fix python3
shebang.
* 13_window_size.patch: patch from upstream git. Increase the default
window size.
* 14_css_leak.patch: patch from upstream git. Avoid a GFile leak when
loading a nonexistent CSS.
* 15_line_ending.patch: patch from upstream git. Bring back the
ability to set line endings.
* 16_highlightmode_dialog.patch: patch from upstream git. Fix the
language selector.
* 17_various_leaks.patch: patch from upstream git. Fix several memory
leaks.
* 18_print-preview_typo.patch: patch from upstream git. Fix a typo in
the print preview.
I’m attaching all individual patches, which represent the sole changes.
unblock gedit/3.14.0-3
Thanks,
--
.''`. Josselin Mouette
: :' :
`. `'
`-
>From d0cb344dfe6355be2025e061f772227b7550766d Mon Sep 17 00:00:00 2001
From: Sebastien Lafargue <slafargue@gnome.org>
Date: Sun, 28 Sep 2014 15:58:50 +0200
Subject: plugin: externaltools/send-to-fpaste missing colon
diff --git a/plugins/externaltools/data/send-to-fpaste.tool.in b/plugins/externaltools/data/send-to-fpaste.tool.in
index 0070f57..e3edaca 100755
--- a/plugins/externaltools/data/send-to-fpaste.tool.in
+++ b/plugins/externaltools/data/send-to-fpaste.tool.in
@@ -4,7 +4,7 @@ import os, urllib, json, sys, urllib.request
from gi.repository import Gtk, Gdk
lang = os.getenv('GEDIT_CURRRENT_DOCUMENT_LANGUAGE')
-if lang is None
+if lang is None:
lang = "text"
current_document_path = os.getenv('GEDIT_CURRENT_DOCUMENT_PATH')
--
cgit v0.10.1
>From 634f66b43779c00631903865dd2c93f4c58e64dc Mon Sep 17 00:00:00 2001
From: Adam Dingle <adam@medovina.org>
Date: Wed, 1 Oct 2014 10:45:58 -0400
Subject: [quick open] Defer popup destruction to avoid input manager crash
https://bugzilla.gnome.org/show_bug.cgi?id=737711
diff --git a/plugins/quickopen/quickopen/popup.py b/plugins/quickopen/quickopen/popup.py
index 2ccb53f..c2c16f8 100644
--- a/plugins/quickopen/quickopen/popup.py
+++ b/plugins/quickopen/quickopen/popup.py
@@ -519,13 +519,15 @@ class Popup(Gtk.Dialog):
return True
if rows and ret:
- self.destroy()
+ # We destroy the popup in an idle callback to work around a crash that happens with
+ # GTK_IM_MODULE=xim. See https://bugzilla.gnome.org/show_bug.cgi?id=737711 .
+ GLib.idle_add(self.destroy)
if not rows:
gfile = self._direct_file()
if gfile and self._handler(gfile):
- self.destroy()
+ GLib.idle_add(self.destroy)
else:
ret = False
else:
--
cgit v0.10.1
>From a9fd3f931a6e2cbd282b293f6b0b3828bfbd18f2 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
Date: Sun, 5 Oct 2014 17:10:20 +0200
Subject: send-to-fpaste: use /usr/bin/env instead of /bin/env
In light of the larger /usr - movement, it would be nicer to use
/usr/bin/env instead of /bin/env. Some distros do not offer /bin/env
(and never have). All other files refering to 'env' look for it in
/usr/bin as well, so it's just consistent.
https://bugzilla.gnome.org/show_bug.cgi?id=737931
diff --git a/plugins/externaltools/data/send-to-fpaste.tool.in b/plugins/externaltools/data/send-to-fpaste.tool.in
index e3edaca..d255007 100755
--- a/plugins/externaltools/data/send-to-fpaste.tool.in
+++ b/plugins/externaltools/data/send-to-fpaste.tool.in
@@ -1,4 +1,4 @@
-#!/bin/env python3
+#!/usr/bin/env python3
import os, urllib, json, sys, urllib.request
from gi.repository import Gtk, Gdk
--
cgit v0.10.1
>From 8263561b56601217d97847b5138c22bc90fe5b41 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@gnome.org>
Date: Sun, 5 Oct 2014 08:49:08 -0500
Subject: Increase default window size
https://bugzilla.gnome.org/show_bug.cgi?id=729330
diff --git a/data/org.gnome.gedit.gschema.xml.in b/data/org.gnome.gedit.gschema.xml.in
index 5d17827..a01b3ec 100644
--- a/data/org.gnome.gedit.gschema.xml.in
+++ b/data/org.gnome.gedit.gschema.xml.in
@@ -258,7 +258,7 @@
<default>0</default>
</key>
<key name="size" type="(ii)">
- <default>(650, 500)</default>
+ <default>(900, 700)</default>
</key>
<key name="side-panel-size" type="i">
<default>200</default>
--
cgit v0.10.1
>From 0bebb1a24030e2456729db8c485cfaa2ae208c27 Mon Sep 17 00:00:00 2001
From: Paolo Borelli <pborelli@gnome.org>
Date: Sun, 19 Oct 2014 12:53:26 +0200
Subject: Do not leak GFile when trying to load a non existing css
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index c502f09..dc5d803 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -493,6 +493,7 @@ load_css_from_resource (const gchar *filename,
if (!required && !g_file_query_exists (css_file, NULL))
{
+ g_object_unref (css_file);
return;
}
--
cgit v0.10.1
>From c445571bd940294ca68f1605b8c57d4d48c56001 Mon Sep 17 00:00:00 2001
From: Ignacio Casal Quinteiro <icq@gnome.org>
Date: Tue, 4 Nov 2014 12:18:19 +0100
Subject: file chooser: get back the line ending change on saving
This was removed by mistake on the refactoring.
diff --git a/gedit/gedit-file-chooser-dialog-gtk.c b/gedit/gedit-file-chooser-dialog-gtk.c
index ec58b09..4386462 100644
--- a/gedit/gedit-file-chooser-dialog-gtk.c
+++ b/gedit/gedit-file-chooser-dialog-gtk.c
@@ -330,6 +330,15 @@ create_option_menu (GeditFileChooserDialogGtk *dialog,
}
static void
+update_newline_visibility (GeditFileChooserDialogGtk *dialog)
+{
+ gboolean visible = gtk_file_chooser_get_action (GTK_FILE_CHOOSER (dialog)) == GTK_FILE_CHOOSER_ACTION_SAVE;
+
+ gtk_widget_set_visible (dialog->priv->newline_label, visible);
+ gtk_widget_set_visible (dialog->priv->newline_combo, visible);
+}
+
+static void
newline_combo_append (GtkComboBox *combo,
GtkListStore *store,
GtkTreeIter *iter,
@@ -404,6 +413,8 @@ create_newline_combo (GeditFileChooserDialogGtk *dialog)
dialog->priv->newline_combo = combo;
dialog->priv->newline_label = label;
dialog->priv->newline_store = store;
+
+ update_newline_visibility (dialog);
}
static void
@@ -440,6 +451,36 @@ create_extra_widget (GeditFileChooserDialogGtk *dialog,
}
static void
+action_changed (GeditFileChooserDialogGtk *dialog,
+ GParamSpec *pspec,
+ gpointer data)
+{
+ GtkFileChooserAction action;
+
+ action = gtk_file_chooser_get_action (GTK_FILE_CHOOSER (dialog));
+
+ switch (action)
+ {
+ case GTK_FILE_CHOOSER_ACTION_OPEN:
+ g_object_set (dialog->priv->option_menu,
+ "save_mode", FALSE,
+ NULL);
+ gtk_widget_show (dialog->priv->option_menu);
+ break;
+ case GTK_FILE_CHOOSER_ACTION_SAVE:
+ g_object_set (dialog->priv->option_menu,
+ "save_mode", TRUE,
+ NULL);
+ gtk_widget_show (dialog->priv->option_menu);
+ break;
+ default:
+ gtk_widget_hide (dialog->priv->option_menu);
+ }
+
+ update_newline_visibility (dialog);
+}
+
+static void
filter_changed (GeditFileChooserDialogGtk *dialog,
GParamSpec *pspec,
gpointer data)
@@ -587,6 +628,11 @@ gedit_file_chooser_dialog_gtk_create (const gchar *title,
create_extra_widget (GEDIT_FILE_CHOOSER_DIALOG_GTK (result), flags);
+ g_signal_connect (result,
+ "notify::action",
+ G_CALLBACK (action_changed),
+ NULL);
+
if (encoding != NULL)
{
gedit_encodings_combo_box_set_selected_encoding (
--
cgit v0.10.1
>From 1d88423668f829f6f28581232bf223f0525f3bc8 Mon Sep 17 00:00:00 2001
From: Sebastien Lafargue <slafargue@gnome.org>
Date: Wed, 5 Nov 2014 17:59:56 +0100
Subject: HighLightMode dialog: fix
The selector is destroyed before we had time to activate the
selected language.
diff --git a/gedit/gedit-highlight-mode-dialog.c b/gedit/gedit-highlight-mode-dialog.c
index 81ed4d5..bb5c75a 100644
--- a/gedit/gedit-highlight-mode-dialog.c
+++ b/gedit/gedit-highlight-mode-dialog.c
@@ -25,6 +25,7 @@
struct _GeditHighlightModeDialogPrivate
{
GeditHighlightModeSelector *selector;
+ gulong on_language_selected_id;
};
G_DEFINE_TYPE_WITH_PRIVATE (GeditHighlightModeDialog, gedit_highlight_mode_dialog, GTK_TYPE_DIALOG)
@@ -37,13 +38,12 @@ gedit_highlight_mode_dialog_response (GtkDialog *dialog,
if (response_id == GTK_RESPONSE_OK)
{
- /* The dialog will be destroyed if a language is selected */
+ g_signal_handler_block (priv->selector, priv->on_language_selected_id);
gedit_highlight_mode_selector_activate_selected_language (priv->selector);
+ g_signal_handler_unblock (priv->selector, priv->on_language_selected_id);
}
- else
- {
- gtk_widget_destroy (GTK_WIDGET (dialog));
- }
+
+ gtk_widget_destroy (GTK_WIDGET (dialog));
}
static void
@@ -51,6 +51,12 @@ on_language_selected (GeditHighlightModeSelector *sel,
GtkSourceLanguage *language,
GtkDialog *dialog)
{
+ GeditHighlightModeDialogPrivate *priv = GEDIT_HIGHLIGHT_MODE_DIALOG (dialog)->priv;
+
+ g_signal_handler_block (priv->selector, priv->on_language_selected_id);
+ gedit_highlight_mode_selector_activate_selected_language (priv->selector);
+ g_signal_handler_unblock (priv->selector, priv->on_language_selected_id);
+
gtk_widget_destroy (GTK_WIDGET (dialog));
}
@@ -76,8 +82,8 @@ gedit_highlight_mode_dialog_init (GeditHighlightModeDialog *dlg)
gtk_widget_init_template (GTK_WIDGET (dlg));
gtk_dialog_set_default_response (GTK_DIALOG (dlg), GTK_RESPONSE_OK);
- g_signal_connect (dlg->priv->selector, "language-selected",
- G_CALLBACK (on_language_selected), dlg);
+ dlg->priv->on_language_selected_id = g_signal_connect (dlg->priv->selector, "language-selected",
+ G_CALLBACK (on_language_selected), dlg);
}
GtkWidget *
--
cgit v0.10.1
>From 62b0a0289bf8536bd528a26a60e01a987099ba98 Mon Sep 17 00:00:00 2001
From: Boris Egorov <egorov@linux.com>
Date: Wed, 19 Nov 2014 23:52:12 +0600
Subject: Fix some memory leaks [cppcheck]
Signed-off-by: Boris Egorov <egorov@linux.com>
https://bugzilla.gnome.org/show_bug.cgi?id=740382
diff --git a/gedit/gedit-preferences-dialog.c b/gedit/gedit-preferences-dialog.c
index db71a9a..a907d13 100644
--- a/gedit/gedit-preferences-dialog.c
+++ b/gedit/gedit-preferences-dialog.c
@@ -657,7 +657,10 @@ file_copy (const gchar *name,
return FALSE;
if (!g_file_set_contents (dest_name, contents, length, error))
+ {
+ g_free (contents);
return FALSE;
+ }
g_free (contents);
@@ -709,10 +712,13 @@ install_style_scheme (const gchar *fname)
if (!file_copy (fname, new_file_name, &error))
{
g_free (new_file_name);
+ g_free (dirname);
g_message ("Cannot install style scheme:\n%s",
error->message);
+ g_error_free (error);
+
return NULL;
}
diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c
index 4448cb4..0f1dec7 100644
--- a/gedit/gedit-utils.c
+++ b/gedit/gedit-utils.c
@@ -1194,9 +1194,11 @@ gedit_utils_drop_get_uris (GtkSelectionData *selection_data)
if (*uri_list == NULL)
{
g_free(uri_list);
+ g_strfreev (uris);
return NULL;
}
+ g_strfreev (uris);
return uri_list;
}
--
cgit v0.10.1
>From e30939812fcf884d031757fb3cc2a8383f3ce21f Mon Sep 17 00:00:00 2001
From: Boris Egorov <egorov@linux.com>
Date: Thu, 20 Nov 2014 10:46:27 +0600
Subject: Fix a typo in get_page_at_coords() [cppcheck]
Both height and width of a tile must be positive.
Issue detected by cppcheck.
Signed-off-by: Boris Egorov <egorov@linux.com>
https://bugzilla.gnome.org/show_bug.cgi?id=740382
diff --git a/gedit/gedit-print-preview.c b/gedit/gedit-print-preview.c
index 24f72ff..b4cf576 100644
--- a/gedit/gedit-print-preview.c
+++ b/gedit/gedit-print-preview.c
@@ -567,7 +567,7 @@ get_page_at_coords (GeditPrintPreview *preview,
priv = preview->priv;
- if (priv->tile_h <= 0 || priv->tile_h <= 0)
+ if (priv->tile_h <= 0 || priv->tile_w <= 0)
return -1;
get_adjustments (preview, &hadj, &vadj);
--
cgit v0.10.1
Reply to: