Geany 1.25 on Fedora 22, installed from Fedora repos, SaveActions plugin enabled (both AutoSave and When losing focus).
Consider a scenario:
1. A file, say "Foo.txt", is open in the editor.
2. Focus switches to another application like a file manager, file "Foo.txt" is deleted outside of Geany.
3. Focus switches back to Geany:
4. Geany detects that file is deleted, and shows pane at the top of editing window with text "File "Foo.txt" was not found on disk! Try to resave the file?" and two buttons "Save" and "Cancel".
5. Now user presses "Cancel" button in the pane.
6. Immediately (the pane is still shown), a dialog entitled "Question" appears, with the same text and buttons. The dialog is modal, the main Geany window is not accessible.
7. User presses "Cancel" button in the dialog, it disappears.
8. Pane is still visible, so user has to press "Cancel" again.
9. User switches focus to another application, the file "Foo.txt" is saved with no questions.
Scenario varies, it probably depends on timing. Sometimes the first dialog appears even before user press "Cancel" in the pane, and after pressing "Cancel" in the first dialog, immediately appears the second.
Thus, user cancelled file saving at least 3 times , but it was saved anyway.
Geany and its plugins should communicate better and do not ask the same question again and again. If user cancels file saving, this file should not be autosaved (for example, newly created not-yet-named file is not saved when Geany loses focus).
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/673
@codebrainz unless you have a strong opinion on this (and would like to provide the tiny patch? :)) I think I'm going to merge this in the next few days as is, which also has the advantage of being more consistent with the current API (and thus the `_full` suffix).
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/376#issuecomment-145872619
Pre-rebase commits were:
* 0def4f5 `plugins: introduce load and unload functions for plugins`
* d11ada3 `plugins: generic load_data instead of module pointer in Plugin struct`
* bf7bbca `plugins: refactor GtkListStore population code into separate function`
* 7acda46 `plugins: when loading active ones, loop until no more proxy plugins are added`
* 533c4d6 `plugins: introduce probe() for proxy plugins`
* a006f71 `plugins: add geany_plugin_register_proxy() to the plugin API`
* ce9fe0b `plugins: reselect when toggling the current plugin`
* 0e9923e `demopluxy: add a demo pluxy showcasing how to create a proxy plugin`
* e1e8349 `plugins: improve PM dialog for proxy and sub-plugins`
* 883ac8b `Fixup 0def4f5 (plugins: introduce load and unload functions for plugins)`
* 2e36527 `Fixup d11ada3 (plugins: generic load_data instead of module pointer in Plugin struct)`
* dac823b `Fixup bf7bbca (plugins: refactor GtkListStore population code into separate function)`
* 290e3ab `Fixup 7acda46 (plugins: when loading active ones, loop until no more proxy plugins are added)`
* 50aecf7 `Fixup a006f71 (plugins: add geany_plugin_register_proxy() to the plugin API)`
* 04e5e52 `Fixup ce9fe0b (plugins: reselect when toggling the current plugin)`
* 9f67844 `Fixup 0e9923e (demopluxy: add a demo pluxy showcasing how to create a proxy plugin)`
* 31d94e7 `Fixup e1e8349 (plugins: improve PM dialog for proxy and sub-plugins)`
* d148920 `plugins: use GQueue to restore GLib compatibility`
* 85a1674 `Fixup 0def4f5 #2 (plugins: introduce load and unload functions for plugins)`
* 2e443d1 `Fixup 7acda46 #2 (plugins: when loading active ones, loop until no more proxy plugins are added)`
* b87c711 `Fixup a006f71 #2 (plugins: add geany_plugin_register_proxy() to the plugin API)`
* f86877f `Fixup ce9fe0b #2 (plugins: reselect when toggling the current plugin)`
* 336f641 `Fixup 0e9923e #2 (demopluxy: add a demo pluxy showcasing how to create a proxy plugin)`
* 367f303 `Fixup e1e8349 #2 (plugins: improve PM dialog for proxy and sub-plugins)`
* 5a3872a `Fixup d148920 (plugins: use GQueue to restore GLib compatibility)`
* 6e1dfd4 `Fixup a006f71 #3 (plugins: add geany_plugin_register_proxy() to the plugin API)`
* 8e7de03 `Fixup 0e9923e #3 (demopluxy: add a demo pluxy showcasing how to create a proxy plug`
* f90bc9c `Fixup a006f71 #4 (plugins: add geany_plugin_register_proxy() to the plugin API)`
* 7c329d0 `Fixup 0e9923e #4 (demopluxy: add a demo pluxy showcasing how to create a proxy plugin)`
* 1529158 `Fixup d148920 #2 (plugins: use GQueue to restore GLib compatibility)`
* c54735e `Fixup 0def4f5 #3 (plugins: introduce load and unload functions for plugins)`
* 8a9c66a `Fixup bf7bbca #2 (plugins: refactor GtkListStore population code into separate function)`
* d6978be `Fixup 0e9923e #5 (demopluxy: add a demo pluxy showcasing how to create a proxy plugin)`
* 38b4c03 `Fixup 0def4f5 #4 (plugins: introduce load and unload functions for plugins)`
* be02a70 `Fixup d11ada3 #2 (plugins: generic load_data instead of module pointer in Plugin struct)`
* c7ef4aa `Fixup bf7bbca #3 (plugins: refactor GtkListStore population code into separate function)`
* 13699be `Fixup a006f71 #5 (plugins: add geany_plugin_register_proxy() to the plugin API)`
* df6569a `Fixup a006f71 #6 (plugins: add geany_plugin_register_proxy() to the plugin API)`
* 0252408 `plugins: do not pass potentially destroyed data to unload callback`
* d5a06a7 `plugins: enfore geany_plugin_register_proxy() can be called once`
* 8161913 `Fixup 0def4f5 #5 (plugins: introduce load and unload functions for plugins)`
* efc4f78 `Fixup d11ada3 #3 (plugins: generic load_data instead of module pointer in Plugin struct)`
* 90c905a `Revert "plugins: do not pass potentially destroyed data to unload callback"`
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/629#issuecomment-145861968
![indent1](https://cloud.githubusercontent.com/assets/7548378/10269226/535982de-6ac8-11e5-84dd-9da67fb241cc.png)
![indent2](https://cloud.githubusercontent.com/assets/7548378/10269227/535c2caa-6ac8-11e5-99f3-90a1c7263d7d.png)
When I indent a block of code with tab, my comments get indented as well. Should they be left as is?
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/674
It would be a nice option to have that one could see types/clases/variables and functions/procedures e.g. in separate tree nodes. At least, many people probably use Symbols list for fast navigation between the procedures, functions, methods etc. and rarely jump to types, variables declarations (especially, since that can be often done easily with "Go to Tag definition" or simply Ctrl+T). For instance, it must be a usual thing for one to have many global module variables in Fortran and few subroutines/function that would be much easily jumped between with the above option (while now you should scroll a lot to get to those yellow icons)). Thank you very much for making super cool IDE!:)
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/667