Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Tue, 20 Dec 2016 20:45:29 UTC
Commit: 2f327b767b1b6659083d0d6e0a1f34ae52fb6a12
https://github.com/geany/geany/commit/2f327b767b1b6659083d0d6e0a1f34ae52fb6…
Log Message:
-----------
GTK: Fix accessible object lifetime on GTK < 3.8
Modified Paths:
--------------
scintilla/gtk/ScintillaGTKAccessible.cxx
Modified: scintilla/gtk/ScintillaGTKAccessible.cxx
40 lines changed, 20 insertions(+), 20 deletions(-)
===================================================================
@@ -1064,10 +1064,12 @@ static AtkObject *scintilla_object_accessible_new(GType parent_type, GObject *ob
// @p cache pointer to store the AtkObject between repeated calls. Might or might not be filled.
// @p widget_parent_class pointer to the widget's parent class (to chain up method calls).
AtkObject *ScintillaGTKAccessible::WidgetGetAccessibleImpl(GtkWidget *widget, AtkObject **cache, gpointer widget_parent_class G_GNUC_UNUSED) {
-#if HAVE_GTK_A11Y_H // just instantiate the accessible
- if (*cache == NULL) {
- *cache = scintilla_object_accessible_new(0, G_OBJECT(widget));
+ if (*cache != NULL) {
+ return *cache;
}
+
+#if HAVE_GTK_A11Y_H // just instantiate the accessible
+ *cache = scintilla_object_accessible_new(0, G_OBJECT(widget));
#elif HAVE_GTK_FACTORY // register in the factory and let GTK instantiate
static volatile gsize registered = 0;
@@ -1085,24 +1087,22 @@ AtkObject *ScintillaGTKAccessible::WidgetGetAccessibleImpl(GtkWidget *widget, At
}
g_once_init_leave(®istered, 1);
}
- *cache = GTK_WIDGET_CLASS(widget_parent_class)->get_accessible(widget);
+ AtkObject *obj = GTK_WIDGET_CLASS(widget_parent_class)->get_accessible(widget);
+ *cache = static_cast<AtkObject*>(g_object_ref(obj));
#else // no public API, no factory, so guess from the parent and instantiate
- if (*cache == NULL) {
- static GType parent_atk_type = 0;
-
- if (parent_atk_type == 0) {
- AtkObject *parent_obj = GTK_WIDGET_CLASS(widget_parent_class)->get_accessible(widget);
- if (parent_obj) {
- GType parent_atk_type = G_OBJECT_TYPE(parent_obj);
-
- // Figure out whether accessibility is enabled by looking at the type of the accessible
- // object which would be created for the parent type of ScintillaObject.
- if (g_type_is_a(parent_atk_type, GTK_TYPE_ACCESSIBLE)) {
- *cache = scintilla_object_accessible_new(parent_atk_type, G_OBJECT(widget));
- g_object_unref(parent_obj);
- } else {
- *cache = parent_obj;
- }
+ static GType parent_atk_type = 0;
+
+ if (parent_atk_type == 0) {
+ AtkObject *parent_obj = GTK_WIDGET_CLASS(widget_parent_class)->get_accessible(widget);
+ if (parent_obj) {
+ GType parent_atk_type = G_OBJECT_TYPE(parent_obj);
+
+ // Figure out whether accessibility is enabled by looking at the type of the accessible
+ // object which would be created for the parent type of ScintillaObject.
+ if (g_type_is_a(parent_atk_type, GTK_TYPE_ACCESSIBLE)) {
+ *cache = scintilla_object_accessible_new(parent_atk_type, G_OBJECT(widget));
+ } else {
+ *cache = static_cast<AtkObject*>(g_object_ref(parent_obj));
}
}
}
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Tue, 20 Dec 2016 20:45:29 UTC
Commit: a31a43efe15a55ea249c2224f6688c9dcf5f5b64
https://github.com/geany/geany/commit/a31a43efe15a55ea249c2224f6688c9dcf5f5…
Log Message:
-----------
GTK: Fix reporting deletion length in the accessible
We cannot compute the length in characters after the text has been
deleted, so we need to compute it in BEFOREDELETE. However, we need to
emit the signal once the buffer has actually changed, so we need to
cache the value in-between those events.
Modified Paths:
--------------
scintilla/gtk/ScintillaGTKAccessible.cxx
scintilla/gtk/ScintillaGTKAccessible.h
Modified: scintilla/gtk/ScintillaGTKAccessible.cxx
10 lines changed, 8 insertions(+), 2 deletions(-)
===================================================================
@@ -156,6 +156,7 @@ ScintillaGTKAccessible *ScintillaGTKAccessible::FromAccessible(GtkAccessible *ac
ScintillaGTKAccessible::ScintillaGTKAccessible(GtkAccessible *accessible_, GtkWidget *widget_) :
accessible(accessible_),
sci(ScintillaGTK::FromWidget(widget_)),
+ deletionLengthChar(0),
old_pos(-1) {
g_signal_connect(widget_, "sci-notify", G_CALLBACK(SciNotify), this);
}
@@ -857,10 +858,15 @@ void ScintillaGTKAccessible::Notify(GtkWidget *, gint, SCNotification *nt) {
g_signal_emit_by_name(accessible, "text-changed::insert", startChar, lengthChar);
UpdateCursor();
}
+ if (nt->modificationType & SC_MOD_BEFOREDELETE) {
+ // We cannot compute the deletion length in DELETETEXT as it requires accessing the
+ // buffer, so that the character are still present. So, we cache the value here,
+ // and use it in DELETETEXT that fires quickly after.
+ deletionLengthChar = sci->pdoc->CountCharacters(nt->position, nt->position + nt->length);
+ }
if (nt->modificationType & SC_MOD_DELETETEXT) {
int startChar = CharacterOffsetFromByteOffset(nt->position);
- int lengthChar = sci->pdoc->CountCharacters(nt->position, nt->position + nt->length);
- g_signal_emit_by_name(accessible, "text-changed::delete", startChar, lengthChar);
+ g_signal_emit_by_name(accessible, "text-changed::delete", startChar, deletionLengthChar);
UpdateCursor();
}
if (nt->modificationType & SC_MOD_CHANGESTYLE) {
Modified: scintilla/gtk/ScintillaGTKAccessible.h
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -20,6 +20,8 @@ class ScintillaGTKAccessible {
GtkAccessible *accessible;
ScintillaGTK *sci;
+ // cached length of the deletion, in characters (see Notify())
+ int deletionLengthChar;
// local state for comparing
Position old_pos;
std::vector<SelectionRange> old_sels;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Jiří Techet <techet(a)gmail.com>
Committer: Jiří Techet <techet(a)gmail.com>
Date: Mon, 19 Dec 2016 21:30:15 UTC
Commit: 658f6360de447bade41781e67d12e1c30dc98d98
https://github.com/geany/geany-osx/commit/658f6360de447bade41781e67d12e1c30…
Log Message:
-----------
Make the bundle runnable on OS X 10.6 and later
Modified Paths:
--------------
Info.plist
README.md
Modified: Info.plist
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -28,7 +28,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>LSMinimumSystemVersion</key>
- <string>10.7</string>
+ <string>10.6</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>NSHighResolutionCapable</key>
Modified: README.md
14 lines changed, 11 insertions(+), 3 deletions(-)
===================================================================
@@ -59,7 +59,7 @@ building and bundling Geany.
Prerequisities
--------------
-* OS X 10.7 or later
+* OS X
* Xcode and command-line tools
JHBuild Installation
@@ -84,10 +84,18 @@ To create the bundle, you need to first install JHBuild and GTK as described bel
to set path to jhbuild installed in the previous step.
-4. By default, jhbuild compiles without optimization flags. To enable
+4. Update the `setup_sdk()` call in `~/.jhbuildrc-custom` to something like
+
+ ```
+ setup_sdk(target="10.6", sdk_version="native", architectures=["x86_64"])
+ ```
+
+ so the build creates a 64-bit binary that works on OS X 10.6 and later.
+
+5. By default, jhbuild compiles without optimization flags. To enable
optimization, add `setup_release()` at the end of `~/.jhbuildrc-custom`.
-5. Install GTK 2 and all its dependencies using the following commands:
+6. Install GTK 2 and all its dependencies using the following commands:
```
jhbuild bootstrap
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Sun, 18 Dec 2016 16:38:37 UTC
Commit: 9fdb014b073f9035bc8df9b843213a9d1e997ccb
https://github.com/geany/geany/commit/9fdb014b073f9035bc8df9b843213a9d1e997…
Log Message:
-----------
javascript: Partial highlighting of ES6 template strings
This doesn't support nested templates or escaped `es, but at least
handles the most obvious cases for now.
Part of #934.
Modified Paths:
--------------
data/filedefs/filetypes.javascript
Modified: data/filedefs/filetypes.javascript
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -7,6 +7,8 @@ primary=break case catch class const continue default delete do each else extend
secondary=Array Boolean Date Function Math Number Object String RegExp EvalError Error RangeError ReferenceError SyntaxError TypeError URIError constructor prototype decodeURI decodeURIComponent encodeURI encodeURIComponent eval isFinite isNaN parseFloat parseInt
[lexer_properties=C]
+# partially handles ES6 template strings
+lexer.cpp.backquoted.strings=1
[settings]
# default extension used when saving files
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: tsvisimcha <tsvisimcha(a)gmail.com>
Committer: Frank Lanitz <frank(a)frank.uvena.de>
Date: Fri, 16 Dec 2016 08:27:00 UTC
Commit: 9573a3886d92c1ffa28e7aab9afa1fa535d7dd28
https://github.com/geany/geany/commit/9573a3886d92c1ffa28e7aab9afa1fa535d7d…
Log Message:
-----------
Update HACKING (#1340)
Modified Paths:
--------------
HACKING
Modified: HACKING
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -167,7 +167,7 @@ unmanageable diffs.
GTK versions & API documentation
--------------------------------
-Geany requires GTK >= 2.24 and GLib >= 2.28. API symbols from newer
+Geany requires GTK >= 2.24 and GLib >= 2.32. API symbols from newer
GTK/GLib versions should be avoided or made optional to keep the source
code building on older systems.
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Sat, 10 Dec 2016 10:31:50 UTC
Commit: 3ddea9c3aefc5efcaf03a2b293d4785d7d5ed9ec
https://github.com/geany/geany/commit/3ddea9c3aefc5efcaf03a2b293d4785d7d5ed…
Log Message:
-----------
Update NEWS for Scintilla 3.7.1
It actually introduces a few new things worth mentioning.
Modified Paths:
--------------
NEWS
Modified: NEWS
10 lines changed, 10 insertions(+), 0 deletions(-)
===================================================================
@@ -1,8 +1,18 @@
Geany 1.30 (unreleased)
+ General
+ * Initial accessibility support in the editor (SF#328).
+
+ Editor
+ * Update Scintilla to version 3.7.1.
+
Internationalization
* Updated translations: lt
+ API
+ * Remove unprefixed Scintilla structure aliases. Plugins must use
+ the `Sci_`-prefixed version from now on.
+
Geany 1.29 (November 13, 2016)
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).