08 Feb 2014



Drag&Drop and Improved interactions.

One of the main issues people trying out ReactOS have complained about is the clunkiness of the shell and how things they expect to work don't. As the shell serves as the main gateway to using the operating system, if it is hard to use then the OS itself becomes hard to use.

When talking about "interaction" we can think in two different ways of interaction: The interaction between the user and ReactOS Explorer and the interaction between applications and ReactOS Explorer(well, really the Shell).

The "Go back" button, which doesn't "Go back" at all, is a nice example of the first group.The second kind of interactions is however just as important. For example, try to drag a file from ReactOS and drop it into, let's say, Winrar in 0.3.15. In older versions of ReactOS, you'll find that you can't.

Over the past few months, Huw Campbell, a new contributor, has been working on improving the User interaction. Now thanks to his work in Shell32.dll, you'll be able to Drag files and Drop them into apps. Below you can see how 7-zip, a file compressor, is accepting files dragged in from the shell. This drag & drop feature is not just limited to 7-zip, so feel free to try it with Winrar or any other app known to accept files.



But Huw didn't stop there and also implemented the drag and drop support for files and folders for within the shell. As you probably know, move and copy operations should be done asynchronously, otherwise Explorer.exe would hang(waiting) until the whole copy/paste is done. So he also implemented the IAsyncOperation interface to check if the operation could be done safely in the background. This drag and drop work includes also special folders, so now you're also able to drag files directly to the Recycler Bin.



Thanks to all his work, Huw Campbell has boosted the ReactOS "usability" to a new level. Did I mention that he fixed the "copy/pasting when multiple files are selected" bug? Or that he added support for "Copy/paste through shortcuts" if you don't like Drag&Drop?

All these fixes and enhancements are included in the ReactOS 0.3.16 release. Try them! And dont forget to thank Huw his awesome work! Hope more is coming!

You can find more info about some of his work in the following commits:

-r61576: IAsyncOperation interface +  CF_HDROP support

-r61537: Background copy/move thread + Recycle bin drop handler

-r61294: Initial Drag&Drop support



Comments (6)

  • anon

    You sure about that? I've been trying to drag some stuff from one windows to another (in reactos explorer), and it didn't work. Copy/paste did seem to work. This is on real hardware, as usual, specs viewable on the https://www.reactos.org/wiki/PC_ROS_Rigs.

    Also... I'm not sure if it's related to the new 0.3.16 version, but my CD (RW) with drivers and apps doesn't seem to get recognised anymore. I didn't have that problem with the daily builds, as far as I can remember. I usually use this to get some additional drivers going (since usb doesn't work on my rig).

    And also; I strongly suggest to implement a ready-for-use browser in ROS. Yes, I know that you can go with reactos explorer, but frankly that thing sucks. What about a light-weight firefox clone, for instance? Or some other that is optimised for ROS, or at least works well (and is easily findable). If you look at youtube where people tried out ROS for the first time, you see that as a recurrent comment; that they don't see any browser.

    And it wouldn't be all that weird neither, and more 'true' to how it really was, because with XP (and, until fairly recently) IE was shipped with the Windows OS by default. Give people something easily recognisable to surf.

    Feb 10, 2014
  • anon

    To ask now a (full-featured) web-browser bundled with the OS is... odd, especially considering the episode of E.U. vs Microsoft: http://en.wikipedia.org/wiki/BrowserChoice.eu
    There is ready-available ReactOS Application Manager that allows you to get the browser of your choice in one click (and maybe people should be reminded that they do have choices). Also, the advanced browsing solution offered in Windows was the result of Microsoft getting political with Netscape. Other than that, by default you only have a simple document editor, a simple image editor, a simple media player, a simple e-mail client, and so on. Offering just simple/minimal solutions for things seemed to be the underlying reasoning. You need more of something? Go get it! Giving people a minimalistic thing as default is exactly how it has to be.

    Feb 11, 2014
  • anon

    While one doesn't have to go bloatware, a browser hardly seem to be something that isn't needed. In fact, it's essential. Saying 'giving people a minimalistic thing is how it has to be' is IT-nerd-elitist talk. What people need, is what *the people* say they need and ask for, NOT what some others (devs for instance) say people need. I refer once more to the majority of 'ROS using' youtube vids by ordinary people where the major complaint is, that they don't see a browser there to use. It's as simple as that, really. That's what they find lacking and ask for, *not* a stringent minimalistic approach in all aspects, as is claimed here. I'm pretty sure if one made a poll and asked ordinary users if they would prefer ROS to have a full webbrowser, the vast majority would answer that positively. So all that deciding 'how it has to be' is just ones' own opinion which is extrapolated, but doesn't truly reflect what 'the people want'. I'm fully prepared to make a poll and abide by the result of that; are you?

    That aside, (as also said) XP had a browser during it's entire lifespan, and so did most versions. Only the last years - because MS had a monopolistic marketshare and dominated too much - the EU and others ordered them to put a choice-page in there. A dominant marketshare is hardly something ROS can be accused of, however. And if it's goal is to be a win XP (or server 2003) clone; those had a browser, period.

    Given those reasons, asking for a browser isn't odd at all, on the contrary, it makes sense.

    Feb 14, 2014
  • anon

    Well, that Gif seems to be pretty selfexplanatory, seems it works :) But remember to hit F5 or force a refresh of the window content. One nasty bug of Explorer.exe is that when moving/coping/pasting the folder is not automatically refreshed, and hence it can "lie" you showing files which have been already moved. About creating a Distro that could be a nice idea, and that's opened to Community to create such, meanwhile we'll keep adding and fixing ton of stuff to make apps working correctly :)

    Feb 10, 2014
  • anon

    That gif doesn't actually shows whether it's a drag&drop; it could as well be copy/paste. As said, that works. The drag and drop doesn't.

    Even if drag&drop works, it was tested how? In VM? I'm using HW testing. It doesn't work there. We've seen before

    Feb 10, 2014
  • anon

    Seems my sentence was cut short:

    "We've seen before that RH testing and what you get in VM can difer."

    Btw, I've tried it again and can confirm it's not working; I can't drag something from one window and drop it into another. Nothing happens, not even after using F5.

    Feb 14, 2014
This blog post represents the personal opinion of the author and is not representative of the position of the ReactOS Project.