When the Symbols tab isn't shown, symbol tree isn't updated. However,
we should record the cases when update should have been performed
and once the symbols tab is shown, perform update if something changed.
Thanks to this patch we also don't have to always perform symbol tree
update when switching to the Symbols tab but only when something has
actually changed.
The tags_lang variable is set from the first tag in the found array but
the array may actually contain tags from several languages. This may
lead to two things:
1. Goto tag definition goes to a tag from a different filetype
2. Worse, the first tag is from a different language than the current file
and we get a message that no tag was found
Get lang for every tag in the array and rename tags_lang to tag_lang.
The tree model nodes consist of GNode structs:
struct GNode {
gpointer data;
GNode *next;
GNode *prev;
GNode *parent;
GNode *children;
};
where children are a linked list. To append a value, the list has to be
walked to the end and with nodes with many children (which is our case)
this becomes very expensive.
We sort the tree afterwards anyway so it doesn't matter where we insert the
value.
gtk_tree_store_set() becomes very slow when the tree gets bigger
because internally it calls gtk_tree_store_get_path() which counts
all the entries in a linked list of elements at the same tree level
to get the tree path.
Avoid the call of this function when not needed.
Because function return types are not used to determine tag equality,
we need to also update the tooltip of an existing tag otherwise the return
type doesn't get updated when changed.
This is not completely obvious - when I first saw the message, I started
pressing backspace which really doesn't help.
Also clarify and shorten the message a bit - in "Could not execute the file
in the VTE because it probably contains a command" it's not clear if it's
the file or VTE which contains the command. Also use "terminal" instead
of "VTE" which is more user-friendly.
Right now users are confused when various VTE actions don't work because
there's no indication that the terminal is in the non-clean state.
Visualise "modified" terminal in the same way as modified document - by
a red label in the tab so it's clearer when terminal isn't clean.
Avoid quick red flashes when pressing enter by delaying the color change
a bit.
* Use Scintilla focus object instead of notebook document to fix
splitwindow behaviour for cut, copy, paste and delete callbacks.
* move else-if to same line (style)
Fixing this is however only theoretically useful, as:
* no actual code paths can currently lead to it;
* even if the code actually ended up reading the uninitialized value,
it would still have a fully defined behavior as the result of the
check is irrelevant in the only case the uninitialized read can
happen.
Anyway, fix this to avoid any possible bad surprises in the future.
We assume that the GTK 2.24 API docs will remain online in the long-term
so there is no reason why we should self-host those docs any longer.
This is the last missing bit of #245.
This seems necessary to properly display version information
in the Windows Explorer file properties dialog.
I think it worked on older Windows versions without but
at least on Windows 7 this seems necessary.
libtool apparently builds every object twice by default when shared and
static objects need to be build differently. As we never use the
statically linked objects, avoid building them at all.
When mac integration or binary relocation are disabled, the compiled
object file contains no symbols because the guards in the source files
hide all code. On OS X there's a warning during compilation saying:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
file: .libs/libgeany.a(libgeany_la-prefix.o) has no symbols
If these features are disabled, don't compile the corresponding
sources to avoid the warnings.
Interestingly, waf compilation works without warnings - it appears
linking is done through g++ which doesn't produce these warnings.
On OS X signallist.i is always rebuilt because waf looks for it in the build
tree but generates it inside the source tree for some reason so it's
always missing in the build tree. Set the target explicitly to the
build tree to fix the problem.
Similarly, set the target for geany.html to the build tree. Thanks to this
waf also creates the 'doc' directory in the build tree which is otherwise
missing and the cwd command fails for this reason (e.g. when the
_build_ directory is removed).
These two task generators are the only ones that don't use the 'features'
parameter - the features in the other task generators should already
handle the source/build tree problems for us (see the Waf Book section
6.3.3. Nodes, tasks, and task generators).