...
 
Commits (38)
[submodule "libgd"]
path = libgd
url = ../libgd
url = https://gitlab.gnome.org/GNOME/libgd.git
============
gedit 3.12.2
============
- Misc bug fixes
- Translation updates (thanks!)
============
gedit 3.12.1
============
......
General Information
===================
This is version 3.12.1 of gedit. gedit is a small and lightweight UTF-8 text
This is version 3.12.2 of gedit. gedit is a small and lightweight UTF-8 text
editor for the GNOME environment.
gedit is part of GNOME and uses the latest GTK+ and GNOME libraries.
......@@ -70,8 +70,8 @@ plugins support.
Simple install procedure:
% tar Jxf gedit-3.12.1.tar.xz # unpack the sources
% cd gedit-3.12.1 # change to the toplevel directory
% tar Jxf gedit-3.12.2.tar.xz # unpack the sources
% cd gedit-3.12.2 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build gedit
[ Become root if necessary ]
......
......@@ -4,7 +4,7 @@ AC_PREREQ(2.63.2)
m4_define(gedit_major_version, 3)
m4_define(gedit_minor_version, 12)
m4_define(gedit_micro_version, 1)
m4_define(gedit_micro_version, 2)
m4_define(gedit_version, gedit_major_version.gedit_minor_version.gedit_micro_version)
AC_INIT([gedit],[gedit_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=gedit],[gedit],[https://wiki.gnome.org/Apps/Gedit])
......@@ -336,6 +336,7 @@ PKG_CHECK_MODULES(GEDIT, [
libxml-2.0 >= 2.5.0
glib-2.0 >= 2.39.5
gio-2.0 >= 2.37.0
gmodule-2.0
gtk+-3.0 >= 3.11.6
gtksourceview-3.0 >= 3.11.2
libpeas-1.0 >= 1.7.0
......
......@@ -256,6 +256,7 @@ EXTRA_DIST += \
if HAVE_INTROSPECTION
-include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_GIRS = gedit/Gedit-3.0.gir
INTROSPECTION_SCANNER_ENV = CC="$(CC)"
gedit/Gedit-3.0.gir: gedit/gedit$(EXEEXT)
INTROSPECTION_SCANNER_ARGS = -I$(top_srcdir) --warn-all
......@@ -265,7 +266,7 @@ gedit_Gedit_3_0_gir_VERSION = 3.0
gedit_Gedit_3_0_gir_PROGRAM = $(builddir)/gedit/gedit$(EXEEXT)
gedit_Gedit_3_0_gir_INCLUDES = Gtk-3.0 GtkSource-3.0
gedit_Gedit_3_0_gir_EXPORT_PACKAGES = gedit
gedit_Gedit_3_0_gir_SCANNERFLAGS = $(foreach header,$(gedit_INST_H_FILES),--c-include="$(header)")
gedit_Gedit_3_0_gir_SCANNERFLAGS = $(GEDIT_CFLAGS) $(foreach header,$(gedit_INST_H_FILES),--c-include="$(header)")
gedit_Gedit_3_0_gir_FILES = \
$(gedit_INST_H_FILES) \
$(gedit_libgedit_c_files) \
......
......@@ -450,6 +450,7 @@ build_single_doc_dialog (GeditCloseConfirmationDialog *dlg)
gtk_misc_set_alignment (GTK_MISC (primary_label), 0.5, 0);
gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE);
gtk_widget_set_can_focus (primary_label, FALSE);
gtk_label_set_max_width_chars (GTK_LABEL (primary_label), 72);
doc_name = gedit_document_get_short_name_for_display (doc);
......@@ -490,6 +491,7 @@ build_single_doc_dialog (GeditCloseConfirmationDialog *dlg)
gtk_misc_set_alignment (GTK_MISC (secondary_label), 0.5, 0);
gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE);
gtk_widget_set_can_focus (secondary_label, FALSE);
gtk_label_set_max_width_chars (GTK_LABEL (secondary_label), 72);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
......@@ -639,6 +641,7 @@ build_multiple_docs_dialog (GeditCloseConfirmationDialog *dlg)
gtk_misc_set_alignment (GTK_MISC (primary_label), 0.5, 0);
gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE);
gtk_widget_set_can_focus (primary_label, FALSE);
gtk_label_set_max_width_chars (GTK_LABEL (primary_label), 72);
if (priv->disable_save_to_disk)
{
......@@ -680,6 +683,7 @@ build_multiple_docs_dialog (GeditCloseConfirmationDialog *dlg)
gtk_box_pack_start (GTK_BOX (vbox2), select_label, FALSE, FALSE, 0);
gtk_label_set_line_wrap (GTK_LABEL (select_label), TRUE);
gtk_label_set_max_width_chars (GTK_LABEL (select_label), 72);
gtk_widget_set_halign (select_label, GTK_ALIGN_START);
scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
......@@ -708,6 +712,7 @@ build_multiple_docs_dialog (GeditCloseConfirmationDialog *dlg)
gtk_widget_set_valign (secondary_label, GTK_ALIGN_START);
gtk_misc_set_alignment (GTK_MISC (secondary_label), 0.5, 0);
gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE);
gtk_label_set_max_width_chars (GTK_LABEL (secondary_label), 72);
gtk_label_set_mnemonic_widget (GTK_LABEL (select_label), treeview);
......
......@@ -690,8 +690,12 @@ multi_notebook_tab_added (GeditMultiNotebook *mnb,
insert_row (panel, GTK_LIST_BOX (panel->priv->listbox), row, position);
panel->priv->nb_row_tab += 1;
if (tab == gedit_multi_notebook_get_active_tab (mnb))
{
row_select (panel, GTK_LIST_BOX (panel->priv->listbox), GTK_LIST_BOX_ROW (row));
}
}
}
static void
......
......@@ -19,7 +19,6 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include <time.h>
#include <stdlib.h>
#include <libxml/xmlreader.h>
#include "gedit-debug.h"
......@@ -39,7 +38,7 @@ typedef struct _Item Item;
struct _Item
{
time_t atime; /* time of last access */
gint64 atime; /* time of last access in seconds since January 1, 1970 UTC */
GHashTable *values;
};
......@@ -182,7 +181,7 @@ parseItem (xmlDocPtr doc, xmlNodePtr cur)
item = g_new0 (Item, 1);
item->atime = g_ascii_strtoull ((char *)atime, NULL, 0);
item->atime = g_ascii_strtoll ((char *)atime, NULL, 0);
item->values = g_hash_table_new_full (g_str_hash,
g_str_equal,
......@@ -331,7 +330,7 @@ gedit_metadata_manager_get (GFile *location,
if (item == NULL)
return NULL;
item->atime = time (NULL);
item->atime = g_get_real_time () / 1000;
if (item->values == NULL)
return NULL;
......@@ -409,7 +408,7 @@ gedit_metadata_manager_set (GFile *location,
key);
}
item->atime = time (NULL);
item->atime = g_get_real_time () / 1000;
g_free (uri);
......@@ -471,7 +470,7 @@ save_item (const gchar *key, const gpointer *data, xmlNodePtr parent)
gedit_debug_message (DEBUG_METADATA, "uri: %s", key);
#endif
atime = g_strdup_printf ("%ld", item->atime);
atime = g_strdup_printf ("%" G_GINT64_FORMAT, item->atime);
xmlSetProp (xml_node, (const xmlChar *)"atime", (const xmlChar *)atime);
#ifdef GEDIT_METADATA_VERBOSE_DEBUG
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.10 -->
<template class="GeditWindow" parent="GtkWindow">
<template class="GeditWindow" parent="GtkApplicationWindow">
<property name="can_focus">False</property>
<property name="has_focus">False</property>
<property name="is_focus">False</property>
......@@ -254,7 +254,7 @@
<object class="GeditCloseButton" id="bottom_panel_close_button">
<property name="visible">True</property>
<property name="relief">none</property>
<property name="tooltip-text" translatable="True">Hide panel</property>
<property name="tooltip-text" translatable="yes">Hide panel</property>
<property name="action_name">win.bottom-panel</property>
</object>
<packing>
......
......@@ -40,8 +40,8 @@ static GModule *libgedit_dll = NULL;
/* This code must live in gedit.exe, not in libgedit.dll, since the whole
* point is to find and load libgedit.dll.
*/
static void
gedit_w32_load_private_dll (GType *type)
static gboolean
gedit_w32_load_private_dll (void)
{
gchar *dllpath;
gchar *prefix;
......@@ -69,17 +69,11 @@ gedit_w32_load_private_dll (GType *type)
libgedit_dll = g_module_open ("libgedit.dll", 0);
}
if (libgedit_dll != NULL)
{
/* Now that we did everything we could to make the DLL available, we can
* implicitly call the *_get_type() function from it.
*/
*type = GEDIT_TYPE_APP_WIN32;
}
return (libgedit_dll != NULL);
}
static void
gedit_w32_unload_private_dll ()
gedit_w32_unload_private_dll (void)
{
if (libgedit_dll)
{
......@@ -100,7 +94,13 @@ main (int argc, char *argv[])
type = GEDIT_TYPE_APP_OSX;
#else
#ifdef G_OS_WIN32
gedit_w32_load_private_dll (&type);
if (!gedit_w32_load_private_dll ())
{
g_printerr ("Failed to load libgedit DLL\n");
return 1;
}
type = GEDIT_TYPE_APP_WIN32;
#else
type = GEDIT_TYPE_APP_X11;
#endif
......
This diff is collapsed.
......@@ -166,9 +166,11 @@ class RegexpLinkParser(AbstractLinkParser):
# javac 'Test.java:13: ...'
# ruby 'test.rb:5: ...'
# scalac 'Test.scala:5: ...'
# sbt (scala) '[error] test.scala:4: ...'
# 6g (go) 'test.go:9: ...'
REGEXP_STANDARD = r"""
^
(?:\[(?:error|warn)\]\ )?
(?P<lnk>
(?P<pth> [^ \:\n]* )
\:
......
......@@ -157,6 +157,14 @@ test.rb:5: undefined method `fake_method' for main:Object (NoMethodError)
self.assert_link(lnk, "Test.scala", 7)
self.assert_link_text(line, lnk, 'Test.scala:7')
def test_parse_sbt_one_line(self):
line = "[error] /home/hank/foo/Test.scala:7: not found: value fakeMethod"
links = self.p.parse(line)
self.assert_link_count(links, 1)
lnk = links[0]
self.assert_link(lnk, "/home/hank/foo/Test.scala", 7)
self.assert_link_text(line, lnk, '/home/hank/foo/Test.scala:7')
def test_parse_go_6g_one_line(self):
line = "test.go:9: undefined: FakeMethod"
links = self.p.parse(line)
......
......@@ -580,21 +580,16 @@ button_press_event (GtkWidget *widget,
if (event->type == GDK_2BUTTON_PRESS)
{
/* Chain up, must be before activating the selected
items because this will cause the view to grab focus */
widget_parent->button_press_event (widget, event);
if (view->priv->double_click_path[1] &&
gtk_tree_path_compare (view->priv->double_click_path[0], view->priv->double_click_path[1]) == 0)
{
activate_selected_items (view);
}
/* Do not chain up. The row-activated signal is normally
* already sent, which will activate the selected item
* and open the file.
*/
}
else
{
/* We're going to filter out some situations where
* we can't let the default code run because all
* but one row would be would be deselected. We don't
* but one row would be deselected. We don't
* want that; we want the right click menu or single
* click to apply to everything that's currently selected. */
selected = gtk_tree_selection_path_is_selected (selection, path);
......@@ -1185,6 +1180,10 @@ gedit_file_browser_view_start_rename (GeditFileBrowserView *tree_view,
tree_view->priv->orig_markup = markup;
tree_view->priv->editable = rowref;
/* grab focus on the text cell which is editable */
gtk_tree_view_column_focus_cell (tree_view->priv->column,
tree_view->priv->text_renderer);
gtk_tree_view_set_cursor (GTK_TREE_VIEW (tree_view),
gtk_tree_row_reference_get_path (tree_view->priv->editable),
tree_view->priv->column, TRUE);
......
......@@ -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:
......
......@@ -215,6 +215,8 @@ camel_str = ''
for t in components:
camel_str += t.capitalize()
>
G_DEFINE_INTERFACE ($<[1]: return camel_str >, $<[1]: return low_str >, ${2:G_TYPE_OBJECT})
/* Default implementation */
static const gchar *
$<[1]: return low_str>_example_method_default ($<[1]: return camel_str > *self)
......@@ -243,36 +245,6 @@ $<[1]: return low_str>_example_method ($<[1]: return camel_str > *self)
{
g_return_val_if_fail ($<[1]: return up_str> (self), NULL);
return $<[1]: return up_str>_GET_INTERFACE (self)->example_method (self);
}
GType
$<[1]: return low_str>_get_type ()
{
static GType $<[1]: return low_str>_type_id = 0;
if (!$<[1]: return low_str>_type_id)
{
static const GTypeInfo g_define_type_info =
{
sizeof ($<[1]: return camel_str >Iface),
(GBaseInitFunc) $<[1]: return low_str>_init,
NULL,
NULL,
NULL,
NULL,
0,
0,
NULL
};
$<[1]: return low_str>_type_id =
g_type_register_static (G_TYPE_INTERFACE,
"$<[1]: return camel_str>",
&g_define_type_info,
0);
}
return $<[1]: return low_str>_type_id;
}]]></text>
<tag>ginterface</tag>
<description>GObject interface</description>
......
......@@ -122,7 +122,7 @@ create_dialog (GeditSpellLanguageDialog *dlg,
gtk_dialog_add_buttons (GTK_DIALOG (dlg),
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_CANCEL,
_("_OK"), GTK_RESPONSE_OK,
_("_Help"), GTK_RESPONSE_HELP,
NULL);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -5,25 +5,25 @@ tests_progs_cppflags = \
tests_progs_cflags = $(GEDIT_CFLAGS)
tests_progs_ldadd = $(top_builddir)/gedit/libgedit.la $(GEDIT_LIBS)
TESTS += tests/document-input-stream
noinst_PROGRAMS += tests/document-input-stream
tests_document_input_stream_SOURCES = tests/document-input-stream.c
tests_document_input_stream_LDADD = $(tests_progs_ldadd)
tests_document_input_stream_CPPFLAGS = $(tests_progs_cppflags)
tests_document_input_stream_CFLAGS = $(tests_progs_cflags)
TESTS += tests/document-output-stream
noinst_PROGRAMS += tests/document-output-stream
tests_document_output_stream_SOURCES = tests/document-output-stream.c
tests_document_output_stream_LDADD = $(tests_progs_ldadd)
tests_document_output_stream_CPPFLAGS = $(tests_progs_cppflags)
tests_document_output_stream_CFLAGS = $(tests_progs_cflags)
TESTS += tests/document-loader
noinst_PROGRAMS += tests/document-loader
tests_document_loader_SOURCES = tests/document-loader.c
tests_document_loader_LDADD = $(tests_progs_ldadd)
tests_document_loader_CPPFLAGS = $(tests_progs_cppflags)
tests_document_loader_CFLAGS = $(tests_progs_cflags)
TESTS += tests/document-saver
noinst_PROGRAMS += tests/document-saver
tests_document_saver_SOURCES = tests/document-saver.c
tests_document_saver_LDADD = $(tests_progs_ldadd)
tests_document_saver_CPPFLAGS = $(tests_progs_cppflags)
......