[comp.windows.x.motif] Popup menu style, returning to main event loop

lps@raybed2.msd.ray.com (LYNN SHEA) (01/25/91)

I've posted these questions once before and I'm still looking for answers.
So one last time, here goes...


1.  On a Motif implementation of a spreadsheet we have several pushbuttons and
text widgets, and depending on which row and column is selected via mouse
button 1, options on the popup menu invoked by pressing mouse button 2 are
made sensitive.

Would it violate accepted Motif style to make pressing the middle button on
a spreadsheet cell select the item (highlight) as well as pop up the menu?
Simply having the middle button pop up the menu is not enough because it is
not clear to the user which item the popup menu entries refer to.  It would
be nice to have button2 pop up the menu as well as indicate which item the
mouse is over when the button is pressed.



2.  When using popup dialog boxes to prompt the user for information as part of
an 'if' test, i.e., the dialog is not always used, and the dialog's management
is performed in a function posssibly several levels deep in a series of 
function calls, after the dialog is managed how does one get back to the main
event loop, or maybe use another event loop, to return control to X without
having to return from each function that was called?

The problem this situation causes is that every function that is called
would have to return a status indicating that nothing is to be done upon
return if control is to be returned to the main event loop so that regular
processing would not continue.  Also, what if a function that previously
had no user interaction has to popup a dialog, then all functions that 
call it would now have to be aware of this possible return status to indicate
no further processing (keep returning until at main event loop)...sounds
like a maintenance nightmare.
 
Is there a standard approach to solving this problem?




Thanks in advance,

Lynn Shea
Raytheon Company
50 Apple Hill Drive
Tewksbury, MA 01876-0901
m/s T3ML19

Internet: lps@raybed6.msd.ray.com
Phone: (508)858-1912
Fax: (508)858-1502