That special click

Good ideas are everywhere. Last week I had the opportunity (as discussed previously) to spend some time improving the touch experience of TimeEdit's client.

If you are a student in Sweden or Norway, TimeEdit is highly likely to be the system providing your schedule. The client is what the people creating those schedules and timetables use, so most people will never see it at all, and it is quite a different beast than the parts most people see.

Anyway, a large part of scheduling in TimeEdit is creating and moving reservations in calendars. Calendars can be extremely complex, but think of Apple's calendar app, Google calendar or some other similar view and you have the right idea. Using touch, you can create, move and change the length of reservations by tapping and dragging with one finger. Nice and simple.

One of the things I chose to focus on was cancelling such operations. With a complex view full of reservations (you can easily view the schedule of a whole class during a whole semester or year on a single screen) you sometimes start to create or move something and realize you would rather not. As far as I can recall, there is no standard way to cancel such an operation in touch interfaces. I wanted something which felt quick and natural. I had an idea, implemented it, and it felt great. Then I realized where the idea came from, and that part really made me smile.

Back in 1993

In 1993, Blue byte realized a strategy game called Settlers (or Serf city in some parts of the world). One of my favorite strategy games, it let you control a kingdom of people in blue shirts and build up a thriving economy to, eventually, build a strong army and dominate the map.

Settlers was controlled using a standard two-button mouse. As far as I recall, there were few if any keyboard shortcuts, and the game was so well designed I never missed them. One of the things Settlers did to speed things up for players was to provide quick access to common things by way of the special click. The special click simply meant holding down one button of the mouse while clicking the other and, depending on the context it would provide some useful function otherwise hidden behind a few more clicks. Simple and very powerful.

What I realized was that I had put the special click in TimeEdit. How to cancel a move or creation operation? Special click. In this case, the pressed button is the finger on the reservation. The other one is a finger tapping anywhere outside the reservation. Just one tap to cancel. No special target to hit, and also not too easy to do by accident. I wonder if this could be made a standard? Dragging feels like it is often an operation modal enough that this could work.

So, inspiration is everywhere. I look forward to finding more solutions in unexpected places. Oh, and long live the special click!