The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 4,227 other subscribers

Archive for August 7th, 2019

Inactive GUI applications: click once or twice to perform an action within the application

Posted by jpluimers on 2019/08/07

When an application is inactive, you have to click it at least once to activate it, but sometimes click twice to actually perform an action.

In the past, there were more applications requiring it, even User Interface or Human Interface guidelines explaining the difference.

Nowadays, most of these guidelines have become hard to find, but luckily some of them have been archived in the WayBack machine.

They all come down to this:

An action in an application can be disruptive, especially when there is no confirmation step for it.

Clicking an application over the area that invokes such a disruptive action, without the user realising it can have adverse consequences.

Some links for further reading:

 

Enabling Click-Through

An item that provides click-through is one that a user can activate with one click, even though the item is in an inactive window. (To activate an item that does not support click-through, the user must first make the containing window active and then click the item.) Although click-through can make some user tasks easier, it can also confuse users if they click items unintentionally.

Click-through is not a property of a class of controls; any control, including toolbar items, can support click-through. This also means that you can support click-through for any subset of items; you don’t have to choose between supporting click-through for all items in a window or none. Follow the guidelines in this section so that you can support click-through when it’s appropriate.

Avoid providing click-through for an item or action whose result might be dangerous or undesirable. Specifically, avoid enabling click-through for an item that:

  • Performs a potentially harmful action that users can’t cancel (for example, the Delete button in Mail)
  • Performs an action that is difficult or impossible to cancel (such as the Send button in Mail)
  • Dismisses a dialog without telling the user what action was taken (for example, the Save button in a Save dialog that overwrites an existing file and automatically dismisses the dialog)
  • Removes the user from the current context (for example, selecting a new item in a Finder column that changes the target of the Finder window)

Clicking in any one of these situations should cause the window that contains the item to be brought forward, but no other action to be taken.

In general, it’s safe to provide click-through for an item that asks the user for confirmation before executing, even if the command ultimately results in destruction of data. For example, you can provide click-through for a delete button if you also make sure to give users the opportunity to cancel or confirm the action before it proceeds.

Think twice before supporting click-through for items that don’t provide confirmation feedback. Specifically, consider how dangerous the action might be, and determine how difficult it will be for the user to undo the action after it’s performed. For example, the Mail Delete button does not provide click-through because it deletes a message without asking for confirmation, which is a potentially harmful action that can be difficult to undo. On the other hand, click-through for the New button in Mail is fine because its resulting action is not harmful and is easy to undo.

Ensure that items that don’t support click-through appear disabled when their window is inactive. The disabled appearance helps users understand that these controls are unavailable. For example, the Delete and Mark as Junk buttons in the inactive Mail window shown below don’t support click-through.

An inactive window with controls that support click-through

–jeroen

Posted in Apple, Classic Macintosh, Development, Mac, Mac OS X / OS X / MacOS, Power User, Software Development, Usability, User Experience (ux), Windows | Leave a Comment »

This is why I try to avoid C, as it means handling code from others that shoot in foots

Posted by jpluimers on 2019/08/07

Via [WayBack] Hello, I’m translating some C code to Delphi and found something that surprise me…is it logical that this code compiles ? – Paul TOTH – Google+

Maintaining C means you need to be aware that other people like shooting at foots (yes, that is a grammar error by intent):

#include 
#include 

void test();

void test2() {
  test();
}

void test(char *msg) {
  printf("test called '%s' (%d)\n", msg, strlen(msg));
}

void main() {
  test2();
}

Of course!? with gcc under Ubuntu the result is

test called 'test' (4)

Code is derived from [Archive.isgit hub user fogleman project Craft search db_worker_start

The thread has some nice comments.

–jeroen

Posted in C, Development, Software Development | Leave a Comment »

More on new .NET path handling – Jeremy Kuhne’s Blog

Posted by jpluimers on 2019/08/07

When it was at the age natural people are allowed to drive in the USA, the .NET framework behaved far less brain dead handling various (especially long or strange) paths: [WayBackMore on new .NET path handling – Jeremy Kuhne’s Blog.

Path handling has frustrated me in many development environments, so I wonder if ones that are beyond the (USA) legal age of drinking follow.

–jeroen

via: [WayBack] Some time ago, the .net developers finally saw sense and removed path normalization and long path limit code in System.IO… Does anybody know if Embarcadero have come to their senses… – David Heffernan – Google+

Posted in .NET, Delphi, Development, Java, Java Platform, Software Development | Leave a Comment »

 
%d bloggers like this: