This was introduced in 1f71ccd because the VTE widget's existing
button-press handler didn't return `TRUE` and so the event propogated
up to the notebook showing both of their context menus.
For some reason the TravisCI build has `-Waggregate-return` enabled as
an error even though it's completely valid code. Also constify the
input `color_name` argument to `load_color` function.
* Improve GTK+3 theme loading
- Merge geany-3.0.css into geany.css
- Load geany-3.20.css to override if runtime version dictates
- Load geany.css from app->configdir if it exists.
* Add initial documentation for GTK+ CSS theming
* Add geany.css file to the `Tools->Configuration Files` menu
Also mark such config files as changed if they don't already exist to
force the user to save or discard any newly created config files.
* Allow customizing message window using GTK+ themes
* Improve GTK+3 CSS docs a bit
State which classes are meant to be overridden by themes.
* Go back to conditionally loading geany-3.0.css
It can't be merged into geany.css since GTK+ CSS parser doesn't ignore
invalid properties when prefixed with vendor extension (ie. -Gtk).
* Don't mark unedited config files as changed
They probably should be marked as changed since they don't exist on
disk yet, but for the time being leave it how it was.
* Fix misuse of CSS ID vs class in manual
* Minor colour value tweaks
Based on feedback from @b4n
Cancel 'MSG_TYPE_RESAVE' info bar if still open in function 'document_reload_force'.
This closes the "Deleted from Disk" message if the user clicks on the reload button.
Fixes#1330.
utils_get_uri_file_prefix() gives "file:///" for Windows and
"file://" for all other platforms. So we don't need "g_path_skip_root()"
any longer.
Using "g_path_skip_root()" removed the drive letter from the URI which
worked only as long as the file to be opened was on drive C: (or
whatever drive Windows considers as the default). But since local file
URIs including the drive letter are supported on Windows, we should use
it, so opening files on other drives works as well.
Fixes#1018.
On Windows, we need "file:///" for local file URIs while on all other
platforms the prefix is "file://" for absolute filenames.
The utility function saves us from replicating the platform
specific logic.
Add the same note about applying indentation settings on currently open
documents in the project preferences as there already is in the main
preferences dialog.
gtk_accelerator_get_default_mod_mask() behaves differently on OS X under
GTK 3 when compared to GTK 2. On GTK 2 it used to clear the GDK_MOD2_MASK
bit while on GTK 3 it's preserved. We need to clear it ourselves
otherwise e.g. <Command>S leads to <Commands><Mod2>S and none of the
keybindings work under GTK 3.
* Try non-symlinked VTE libraries on macOS before the symlinked ones
Plugins using VTE such as multiterm or debugger are linked against the
non-symlinked version of the library like libvte.9.dylib and not
libvte.dylib. When a bundle is created, all symlinks are replaced by
a copy of the symlinked file. This means there are both libvte.dylib
and libvte.9.dylib in the bundle both containing the same code. When
Geany loads libvte.dylib and plugins load libvte.9.dylib the same code
gets loaded twice and when the same type gets registered by GTK, it fails
and the whole application freezes.
This problem doesn't exist on linux or when running from the command line
on macOS because the operating system detects it's the same library
because of the symlink and it's loaded only once.
Loading the same library as the one used by plugins fixes the issue with
macOS bundle. The original symlinked name is still used as a fallback.
The patch also adds #ifdef __APPLE__ around the Apple-specific library
names which also prevents unnecessary retries on other platforms. Loading
*.so libraries is still kept as a fallback on Apple as these are legal too
and could in theory be used on OS X as well.
* Try loading newer VTE versions before older ones on GTK 2