The 32x32 size can be created by downsampling the 48x48 icon by gtk at runtime but the result will be worse than doing the same directly from the svg icon (48->32 conversion means downsampling by 1.5 which can introduce some moire artifacts and loss of information). Since 32x32 are quite commonly used, it makes sense to ship this icon size with Geany. The png files have been optimized by pngoptim to remove metadata and compress the icon better.
The handle of the lamp icon looks strange. While the image of the lamp itself is taken from top, the handle looks it's taken from bottom. Fix this by moving the wide part of the handle down and moving the "shine" line to copy the outer edge. Also adjust the handle curves a bit to connect the lamp in a more natural way.
8ebac60 moved the makefile.win32, so we need to use the new location.
No visual change.
For some reason we expect the plugins directly inside `$(libdir)` on Windows instead of `$(libdir)/geany`, so install the plugins there on Windows.
The "rules hint" property is used to tell the theme for which TreeView even/odd rows should have a different color. This is typically used for long rows or rows which need to be visually separated for some reason. Currently the Documents sidebar view uses it which doesn't make much sense because the row is short and neither of the other tabs in the sidebar use it.
This does not change anything in practice because static variables are initialized implicitly as we need them anyway, but this makes things clearer and more explicit.
At the moment when geany project is loaded from commandline using e.g. "geany myproject.geany", the relative path is used by geany so e.g. Project->Recent Projects shows the relative path instead of the absolute one (also if the project is already in the list with an absolute path, additional entry with relative path is created). Use main_get_argv_filename(), which is already used for ordinary files, also for opening .geany files.
…enubar The current implementation uses single menu for the toolbar and menubar and reparents it when file menu is shown/hidden. Connectiong "show"/"hide" signals doesn't work for menu items on OS X (and I suppose Ubuntu either) so the template submenu is never shown in the File menu. The easiest fix seems to be having two identical menus the same way we have them for recent files.
The expose-event/draw signals were used to reenable the menu after it has been disabled when VTE overrides the given keybinding. This doesn't work on OS X where GtkMenuBar isn't displayed (there may be a similar problem with the global menubar on Ubuntu). The reason why these signals were used was probably slight flickering of the menubar when using ordinary g_idle_add() to reenable the menu (the dimmed menu gets drawn after which it gets reenabled and redrawn non-dimmed). It is however possible to use idle function with higher than redraw priority in which case the menu is enabled before the redraw so the dimmed menu isn't drawn at all. Fixes https://sourceforge.net/p/geany/bugs/1081/
Normal clicking the launcher icon just brings the application to the foreground so there must be a way users can create a new instance of Geany. Add an entry "New Window" to the context menu which is shown when right-clicking the Geany icon in the launcher (most applications have the "New Window" entry there). In addition, fix "Open in new window" when using app bundle. Since both of these functionalities create a new Geany instance, factor-out the instance creation code into a new utility function and use it in both cases.
NSApplicationBlockTermination signal is emitted when clicking the Quit menu to check whether the application permits quitting - react accordingly. --- NSApplicationOpenFile signal is emitted when * file is dragged on the application icon * application is selected from "Open with" menu after right-clicking the file * when double-clicking a file for which the application is default editor/viewer * when file is opened from command-line When the application isn't running, it is first started and then this signal is emitted. Use the signal to open files. In addition, when the opened file has the ".geany" suffix, open it (but only if the project isn't already open). The project has to be opened in idle function because blocking the signal handler for a long time by the project-close confirmation dialog causes problems.