4705 Commits

Author SHA1 Message Date
Colomban Wendling
8aa4f11cad Optimize notebook page -> document lookup and remove dead code
This actually fixes a theoretical bug introduced when notebook pages
stopped being ScintillaWidgets, but this bug had no effect because it
was in a dead code path -- because no, `page_num` never is -1 nor
`page` NULL.
2015-02-21 18:56:51 +01:00
Colomban Wendling
1a8de8fb09 Optimize document -> notebook page lookup 2015-02-21 18:53:59 +01:00
Colomban Wendling
99552dbe12 Fix emission of the ::document-activate signal
The ::document-activate signal was not emitted when opening the first
tab of the notebook, e.g. when the tab count changed from 0 to 1.

This is because the ::document-activate signal is emitted in response
to the GtkNotebook::switch-page signal, which is emitted whenever the
currently displayed page changes.  When there already is a current page
(when there is one or more pages), adding a new page does not trigger
the signal, as this new page doesn't become the current one (we will
switch to it later).  However, when there are none, the newly added one
becomes current, and so the signal is emitted right away.

This is problematic because when we add the page to the notebook, the
document associated with it is not yet ready (only partly initialized),
and so we can't emit the signal on a valid document, and we discard it.

Not emitting this signal leads to inconsistent behavior introducing
subtle bugs in plugins relying on it.

To work this around, only show the page widget (the child added to the
notebook) after we finished initializing everything.  This is the
simplest fix, because a lot of the code around document creation and
opening depend on the fact the page is already added, so while delaying
the page addition sounds like the more sensible fix, it has non-trivial
consequences that would require a large amount of work to overcome.

Note that interestingly, in addition to our problem, GtkNotebook seems
to have a bug as it emits the ::switch-page right when adding the first
page even if that page is not visible.  However, it properly emits it
again when the child becomes visible, so we just still discard the
first emission like we used to.
2015-02-21 18:49:09 +01:00
Frank Lanitz
a6885865bb Change contact data for brahmann 2015-02-18 00:35:44 +01:00
Colomban Wendling
15f75ca2ac Fix a few indentation style issues 2015-02-13 14:11:30 +01:00
Jiří Techet
0c1edb113c Bump API to reflect the addition of keybindings_get_modifiers() and GEANY_PRIMARY_MOD_MASK 2015-02-13 12:47:04 +01:00
Jiří Techet
e613d93187 Revert some OS X keybinding changes for VTE
While all normal keybindings use the Command key instead of
control key on OS X, all the command-line applications and
terminal emulators use the Ctrl key like on Linux. This includes
Ctrl+C (SIGINT) and Ctrl+D (EOF) for which there is some
special handling in the VTE support in Geany and which should
use GDK_CONTROL_MASK instead of GEANY_PRIMARY_MOD_MASK.
2015-02-13 00:37:21 +01:00
Colomban Wendling
e9c9e9a2fa Merge pull request #396 from techee/osx
OS X improvements
2015-02-10 17:12:30 +01:00
Jiří Techet
1ab9eac704 Use the .dylib extension when loading VTE on OS X 2015-02-10 15:58:01 +01:00
Jiří Techet
6a132ef3fa CR line endings are used on old Mac OS systems only - make it more explicit in labels
Also don't default to CR if OS is neither Windows nor Unix (including OS X).
There's no other GTK backend right now so it doesn't matter much but
still if something else appears, it will most probably not have CR line
endings.
2015-02-10 15:57:50 +01:00
Enrico Tröger
d5cca37922 Change donate link to our own redirection
As discussed in #410, the previous SF redirect is better replaced by
a redirect on www.geany.org which we can control.
This way we can also quickly change the target URL if it changes at
Paypal.
2015-01-31 18:44:10 +01:00
Thomas Martitz
7fba0317d0 document: Remove duplicated code.
Since document_compare_by_tab_order_reverse does the exact reverse of
document_compare_by_tab_order the code need not to be duplicated. Instead
document_compare_by_tab_order can be called and the return value be reversed.
2015-01-28 15:33:52 +01:00
Colomban Wendling
f403e7e8c2 Merge pull request #188 from artros/feature/keep-edit-history-on-reload
Maintain edit history on document reload

Conflicts:
 * src/callbacks.c: document_reload_prompt().

Amendments:
 * src/document.c: document_redo(), document_undo(): for loop style.
2015-01-28 15:16:40 +01:00
Colomban Wendling
44eecc25c3 Merge pull request #187 from artros/bug/clear-redo-on-edit
Clear redo stack on edit
2015-01-28 14:30:43 +01:00
Colomban Wendling
526294d72c Merge pull request #399 from b4n/ui/message-window-hierarchy
Drop useless scrolled window around the message window notebook
2015-01-26 17:24:19 +01:00
Nick Treleaven
9506c7ae59 Remove unneeded -liberty flag 2015-01-24 16:30:57 +00:00
Jiří Techet
47a5b9fc5f Use better default fonts on OS X
Fonts are rendered much smaller on OS X so use bigger sizes
by default. Also, by default they use the Light style which is
extremely thin - use Medium instead. Finally, use better monospace
font than the default Courier (Menlo is derived from Dejavu Sans
Mono and is used by XCode and other editors).
2015-01-20 19:33:06 +01:00
Jiří Techet
daecf69c9c Make keybindings_get_modifiers() part of plugin API 2015-01-20 19:33:06 +01:00
Jiří Techet
98ae34f1dc Perform execute using the default terminal application on OS X
In order to execute the runner script using the terminal application,
the script has to be executable, otherwise it's not executed.

In addition, when the terminal application starts, it sets $HOME
as the working directory. For this reason the working directory
has to be set in the runner script (to avoid additional ifdefs,
this part is shared with other unix systems where the additional
"cd" shouldn't matter).
2015-01-20 19:33:06 +01:00
Jiří Techet
82b413e506 Fix keybindings on OS X
On OS X the Command key is used for common keybindings instead
of Ctrl. Introduce a new macro, GEANY_PRIMARY_MOD_MASK that
represents the Command key on OS X and Ctrl on other platforms.

For some events, such as mouse key press, GDK_MOD2_MASK is returned
for the Command key by GTK instead of GDK_META_MASK (which is returned
when Command is pressed together with some other key). To hide this
behavior from users, introduce keybindings_get_modifiers() which can be
used instead of gtk_accelerator_get_default_mod_mask() and which
inserts GDK_META_MASK when GDK_MOD2_MASK is found in the mask
on OS X.
2015-01-20 19:33:06 +01:00
Jiří Techet
ac76c84fdc Use Safari as the default browser on OS X
Since Safari isn't on PATH, the open command has to be used
2015-01-20 19:33:06 +01:00
Jiří Techet
9767f79e50 Improve ui_get_mime_icon()
It may happen that even though we get GIcon, the actual icon
dosen't exist (typically on Windows and OS X). Check if we
can find the actual icon.

In addition, use "icon name" instead of "stock id" - the latter
doesn't work on OS X / Windows for some reason.
2015-01-20 19:33:06 +01:00
Jiří Techet
3c01fae8d9 Disable scintilla buffer draw on OS X (with Quartz backend)
This delagates font rendering to Quartz so it can be rendered
in 2x resolution on "retina" displays.
2015-01-20 19:33:06 +01:00
Jiří Techet
5356c4549a Fix infinite loop on OS X when using find in files
The GIOCondition is always set to G_IO_IN even when input end
is reached (and no other flags are set) so the read_fif_io()
function never returns FALSE which causes an infinite loop.
It is necessary to check also the return value of
g_io_channel_read_line() and return FALSE on EOF or error.
2015-01-20 19:33:06 +01:00
Colomban Wendling
14f1468f78 Merge pull request #377 from b4n/autotools-mingw-cross
Autotools: Fix MinGW cross-compilation
2015-01-20 16:09:49 +01:00
Colomban Wendling
e6fa2c2ac7 Autotools: Improve the rule to compile Windows resource file 2015-01-20 16:04:55 +01:00
Colomban Wendling
6584cc5936 verilog: Add code style categorization
Implement code style categorization (comment/string/code) for Verilog.
2015-01-20 15:57:58 +01:00
Colomban Wendling
d80fa8f72a Fix reference to a renamed function in some comments 2015-01-20 15:57:58 +01:00
Colomban Wendling
3996ae9268 Update Scintilla to version 3.5.3
Closes [bugs:#1041].
2015-01-20 15:56:38 +01:00
Colomban Wendling
91d5079c8d Merge pull request #378 from b4n/remove-macro-list
Remove "Show macro list" keybinding and feature
2015-01-11 17:33:40 +01:00
Colomban Wendling
740c12c0ca Remove "Show macro list" keybinding and feature
This feature looks like a poorly implemented subset of "Complete word",
but lacks some important features like prefix filtering.  It is also
misnamed as it shows not only macros, but also variables and enums.

It also only shows `editor_prefs.autocompletion_max_entries`, but does
so from *each* file, not as a whole.

So drop it altogether, as this feature doesn't really look useful and
the current implementation seem to suffer of too many shortcomings for
it to realistically be actually used.
2015-01-11 17:30:27 +01:00
Colomban Wendling
e06f47d774 Merge pull request #289 from mspacek/build_line_num
Add %l current line number substitution to build commands
2015-01-05 16:26:03 +01:00
Colomban Wendling
d48859db8e Drop useless scrolled window around the message window notebook 2015-01-02 19:48:06 +01:00
Colomban Wendling
d80ee82072 Select the default scheme in the Color Scheme dialog by default
Always select the default scheme by default in the Color Scheme dialog
not to end up selecting none in case of broken or nonexistent
configuration.  This matches which scheme is actually used, and fixes
use of an uninitialized iter when no scheme would be selected.
2014-12-18 02:42:05 +01:00
Colomban Wendling
87331093a9 Merge pull request #361 from techee/prj_write
Add project_write_config() to force project file rewrite
2014-12-11 00:07:41 +01:00
Colomban Wendling
0184083a7e Fix an assertion failure when trying to scope-complete in a 2-characters C++ file 2014-12-04 14:38:57 +01:00
Colomban Wendling
94aa892c81 Merge pull request #373 from techee/go_ctags
Add a Go ctags parser.
2014-11-30 02:03:00 +01:00
Jiří Techet
ccb15a31be Add the go ctags parser
Make go one of the builtin filetypes, add the parser and update the related
source and config files. While there, remove Rust from [Groups] in
filetype_extensions.conf because it's already a builtin filetype as well.

The parser itself is stolen from the fishman/ctags repo.
2014-11-30 01:35:00 +01:00
Colomban Wendling
af7d63cdf2 Merge pull request #319 from b4n/better-txt2tags-parser
Better txt2tags parser
2014-11-29 23:40:58 +01:00
Colomban Wendling
6e1c2787c1 Merge branch 'recent-list-cleanup' 2014-11-29 22:49:57 +01:00
Colomban Wendling
4074843b42 coffeescript: Recognize string and comment styles 2014-11-26 19:52:20 +01:00
Mark Dresselhaus
07002d252a Add coffescript syntax highlighting
imported lexer from Scintilla and added coffeescript filetype
2014-11-26 19:52:20 +01:00
Colomban Wendling
8da955ec94 Make the currently open project insensitive in the recent menu 2014-11-11 17:46:31 +01:00
Colomban Wendling
3fa41cc0da Cleanup code for updating recent file menus 2014-11-11 17:14:21 +01:00
Colomban Wendling
67cc8faf4b Fix closing of the "missing file" infobar
The issue was introduced in b646424ddb715382a937d233a75bc684c22e18ec as
it removed the default handler that used to destroy the infobar.

Now, the infobar is properly closed, but only if the action succeeded.

Closes #375.
2014-11-09 22:14:12 +01:00
Colomban Wendling
4cc943666f Autotools: MinGW: Fix building .res file in VPATH builds
From a patch by Valentin Kunz, thanks!
Part of https://sourceforge.net/p/geany/patches/17/
2014-11-09 17:40:31 +01:00
Colomban Wendling
1dc09597b2 Fix check for fnmatch and remove strict dependency on it for Windows
Strict dependency on fnmatch was removed in 52076d19e8fe7ab41ebc92928e.

We still have an optional dependency on it from CTags, but I don't
think we use this code, and anyways the checks we had for the optional
path to be taken were incorrect, so it was never actually used.

So, drop the dependency on libibrety for Windows builds, and fix the
remaining checks for an optional fnmatch so if it is found it can
actually be used.
2014-11-09 17:40:03 +01:00
Colomban Wendling
aa06427c71 Merge branch 'plugin-symbols-protoypes' 2014-11-09 00:19:14 +01:00
Colomban Wendling
8c77accfd0 Merge PR#356 from 'b4n/techee/tm'
Huge TagManager improvements
2014-11-08 19:37:20 +01:00
Colomban Wendling
fd4f31cc07 Bump Geany API and ABI for TagManager API changes 2014-11-08 18:34:15 +01:00