Doc mods regarding the OS issue of Ctrl-Click simulation of Right-Click

on Mac OSX, as per recommendations from the forum posts on fltk.coredev
Subject: [RFC] Right click emulation for one button mouse on Mac
where both Manolo and Albrecht suggest documentation mods to reflect the issue.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10439 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Greg Ercolano 2014-11-07 19:13:08 +00:00
parent 13cd0a16b5
commit d892e05d8a

View File

@ -682,6 +682,52 @@ US keyboard will set \c FL_ALT in Fl::event_state(),
set Fl::event_key() to 'y' and return the Yen symbol in
Fl::event_text().
Right Click simulation with Ctrl Click
\par
The Apple HIG guidelines indicate applications should support
'Ctrl Click' to simulate 'Right Click' for e.g. context menus,
so users with one-button mice and one-click trackpads can still
access right-click features. However, paraphrasing
<A HREF="http://www.fltk.org/newsgroups.php?gfltk.coredev+v:14725">
Manolo's comment on the fltk.coredev newsgroup</A>:
\par
<UL><LI>
<I>FLTK does /not/ support Ctrl-Click == Right Click itself because Mac OS
X event processing doesn't support this at the system level: the system
reports left-clicks with the ctrl modifier when the user ctrl-clicks, and
OS X system preferences don't allow changing this behavior. Therefore,
applications must handle simulation of Right Click with Ctrl Click
in the application code.</I>
</LI></UL>
\par
Ian MacArthur provided the following handle() method code snippet
showing an example of how to do this:
\code
case FL_PUSH:
{
int btn = Fl::event_button();
#ifdef __APPLE__
int ev_state = Fl::event_state();
#endif
//
// Context menu can be called up in one of two ways: -
// 1 - right click, as normally used on Windows and Linux
// 2 - Ctrl + left click, as sometimes used on Mac
//
#ifdef __APPLE__
// On apple, check right click, and ctrl+left click
if ((btn == FL_RIGHT_MOUSE) || (ev_state == (FL_CTRL | FL_BUTTON1)))
#else
// On other platforms, only check right click as ctrl+left is used for selections
if (btn == FL_RIGHT_MOUSE)
#endif
{
// Did we right click on the object?..
\endcode
\par
There is a thread about this subject on fltk.coredev (Aug 1-14, 2014)
entitled "[RFC] Right click emulation for one button mouse on Mac".
Apple "Quit" Event
\par