Blog

Blog post image

Release notes 0.5.0

Working with layouts is now less of a plight, thanks to bright-looking colours that seduce and delight.

Blog post image

Fixing drag and drop in Electron

Drag and drop from Electron apps to other applications is broken. One possible way to work around it is by writing native Node modules replacing Electron’s implementation. That way we can support dragging multiple files out of our app with full support for modifier keys. This article describes how to do this for Windows and MacOS.

But be warned, you have to want drag and drop really, really badly to go down this route. It is a lot of work, as it involves use of native Node modules, the Win32 and Cocoa APIs, and the C, C++ and Objective-C languagues. And in the end it’s still not quite perfect. If that’s not enough to deter you, do read on to embark on a journey to the heart of darkness.

Blog post image

Release notes 0.3.1

I’ve been cave diving for the last few weeks. Exploring the depths of a particularly ancient, largely abandoned cave, harbouring a bewildering array of monsters with names such as CF_HDROP, SFGAOF, DV_E_FORMATETC and PCZZWSTR. Throughout the centuries, they’ve also had pet names like pdsh, g_pszTarget and m_rgfe lovingly bestowed upon them, to further confound the novice explorer. Prying the secrets from their withered claws required many attempts and a host of different tactics.

Luckily, we had an experienced dragon slayer to guide us, in the form of veteran caver Raymond Chen. His light-hearted, irreverent advice was crucial to the success of our endeavour.

It also became necessary to briefly visit another cave, much less forbidding than the first, with dragons of a more timid nature. They go by long-winded, but perfectly understandable names like NSDraggingSession, NSPasteboardItemDataProvider and sourceOperationMaskForDraggingContext, and thus their secrets could be revealed without too much fuss.

In short, what I’m trying to say is that I’ve spent an inordinate amount of time hacking in proper support for external drag & drop by writing native C++/Objective-C modules for Win32 and Cocoa and coaxing them into co-operating with Electron.

Blog post image

Release notes 0.2.1

This update involves a fundamental structural reorganisation of how the folder panes are put together. This was necessary in order to handle the viewing of large folders better.

This might seem like quite a disappointing minor update for such a long development period but in actual fact, it involved a huge amount of work to jig things around (or refactor them as it’s called in the land of software).