3.12 almost here

I wanted to make one more post before the imminent release of 3.12 showing how gedit changed in this cycle, but the recent series of posts by Matthias feature plenty of gedit images and left me without fresh screenshot material :-)

For those living under a rock here is how gedit 3.12 looks

gedit 3.12 with the Solarized Dark color scheme

gedit 3.12 with the Solarized Dark color scheme

Beside the changes in the main user interface, there are other small gems that may be not as shiny, but are very useful to regular gedit users.

With the adoption the new user interface we changed the “new document” keyboard shortcut to the ubiquitous ctrl+T, and while at it we borrowed another neat trick from web browsers: with ctrl+shift+T you can now reopen the tabs you closed recently.

Another small feature I find myself using more and more is the new keyboard shortcut to change the case of text: with ctrl+L you can change the selection to lower case and with shift+ctrl+L change it to uppercase. Ctrl+~ will toggle the case of the selected text. These actions are also available from the right click menu.

There is however another large set of changes that is very dear to me even if it may be not as evident to final users: also in this cycle we managed to keep technical debt under control:

  • we make proper use of new GTK+ widgets and features including GtkPopover, GtkStack, GtkCenterBox, GtkHeaderBar and CSD decorations
  • we reworked command line handling taking full advantage of the features supported by GApplication, including being able to pipe to stdin even when there is an instance already running
  • we got rid of GtkUIManager and switched all the menus and shortcuts to GAction with a clean implementation that leaves us good amount of freedom to adapt and change our UI to different systems
  • we continued our effort to move as much widgetry as possible to .ui files and make use of Gtk templates
  • we removed a lot of custom (and slow) code that implemented the full-screen toolbar animation and replaced it with smart use of GtkOverlay and GtkRevealer
  • we reimplemented the side pane using GtkListBox, removing one of the biggest uses of the scary GtkTreeView API in our codebase and in the process of doing so we restored the ability to drag and drop
  • more importantly we did all the above shaving about 3000 lines from the total amount of C code, while keeping all the features and adding a few new ones

 

Update: it was pointed out that ctrl+shift+L is already bound to “Save All”. I changed the uppercase shortcut to ctrl+U