unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
       [not found] <20ecf6c70804160707t7e7881c4wdf0fbdc28b2f9bb7@mail.gmail.com>
@ 2008-04-16 17:28 ` David Reitter
  2008-04-17  0:44   ` YAMAMOTO Mitsuharu
  0 siblings, 1 reply; 7+ messages in thread
From: David Reitter @ 2008-04-16 17:28 UTC (permalink / raw)
  To: emacs-pretest-bug; +Cc: Nathaniel Cunningham

This affects the 22 branch Carbon build.

Begin forwarded message:

> From: "Nathaniel Cunningham" <nathaniel.cunningham@gmail.com>
> Date: 16 April 2008 15:07:15 BST
>
> With the new tool bar in nightly builds, I find that clicking in the  
> tool bar doesn't raise the frame, whether clicking on an active  
> icon, a disabled icon, or blank bar in between.  This is counter- 
> intuitive and should be fixed if possible.

Clicking on a disabled icon should raise the frame, while clicks on  
non-disabled icons should work as they do (standard click-through  
behavior).
This doesn't currently work.
I tried to fix this myself, but haven't figured out how to do this  
right.  HIViewClick() is called in XTread_socket, but no command event  
is generated. Does the HIView prevent this event when the item is  
disabled?






^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
  2008-04-16 17:28 ` Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame David Reitter
@ 2008-04-17  0:44   ` YAMAMOTO Mitsuharu
  2008-04-17  6:50     ` David Reitter
  0 siblings, 1 reply; 7+ messages in thread
From: YAMAMOTO Mitsuharu @ 2008-04-17  0:44 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-pretest-bug, Nathaniel Cunningham

>>>>> On Wed, 16 Apr 2008 18:28:44 +0100, David Reitter <david.reitter@gmail.com> said:

> This affects the 22 branch Carbon build.  Begin forwarded message:

>> From: "Nathaniel Cunningham" <nathaniel.cunningham@gmail.com> Date:
>> 16 April 2008 15:07:15 BST
>> 
>> With the new tool bar in nightly builds, I find that clicking in
>> the tool bar doesn't raise the frame, whether clicking on an active
>> icon, a disabled icon, or blank bar in between.  This is counter-
>> intuitive and should be fixed if possible.

> Clicking on a disabled icon should raise the frame, while clicks on
> non-disabled icons should work as they do (standard click-through
> behavior).  This doesn't currently work.

Thanks for the report.  Could you try this?

				     YAMAMOTO Mitsuharu
				mituharu@math.s.chiba-u.ac.jp

Index: src/mactoolbox.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/Attic/mactoolbox.c,v
retrieving revision 1.1.2.2
diff -c -p -r1.1.2.2 mactoolbox.c
*** src/mactoolbox.c	7 Apr 2008 07:13:07 -0000	1.1.2.2
--- src/mactoolbox.c	17 Apr 2008 00:43:13 -0000
*************** XTread_socket (sd, expected, hold_quit)
*** 3560,3565 ****
--- 3558,3566 ----
  		  OSStatus err;
  		  HIViewRef ch;
  
+ 		  if (FrontNonFloatingWindow () != window_ptr)
+ 		    SelectWindow (window_ptr);
+ 
  		  err = HIViewGetViewForMouseEvent (HIViewGetRoot (window_ptr),
  						    eventRef, &ch);
  		  /* This doesn't work on Mac OS X 10.2.  */




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
  2008-04-17  0:44   ` YAMAMOTO Mitsuharu
@ 2008-04-17  6:50     ` David Reitter
  2008-04-17  8:02       ` YAMAMOTO Mitsuharu
  0 siblings, 1 reply; 7+ messages in thread
From: David Reitter @ 2008-04-17  6:50 UTC (permalink / raw)
  To: YAMAMOTO Mitsuharu; +Cc: emacs-pretest-bug, Nathaniel Cunningham

On 17 Apr 2008, at 01:44, YAMAMOTO Mitsuharu wrote:
>
> + 		  if (FrontNonFloatingWindow () != window_ptr)
> + 		    SelectWindow (window_ptr);
> +
>  		  err = HIViewGetViewForMouseEvent (HIViewGetRoot (window_ptr),
>  						    eventRef, &ch);

Yes, of course that selects the window, but it does so even when the  
button can be selected otherwise, i.e. there's no "click-through".





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
  2008-04-17  6:50     ` David Reitter
@ 2008-04-17  8:02       ` YAMAMOTO Mitsuharu
  2008-04-17  9:22         ` David Reitter
  0 siblings, 1 reply; 7+ messages in thread
From: YAMAMOTO Mitsuharu @ 2008-04-17  8:02 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-pretest-bug, Nathaniel Cunningham

>>>>> On Thu, 17 Apr 2008 07:50:35 +0100, David Reitter <david.reitter@gmail.com> said:

> Yes, of course that selects the window, but it does so even when the
> button can be selected otherwise, i.e. there's no "click-through".

Maybe I don't understand.  I think they've been always click-through
even without the patch.  What do you mean by "select the button"?

				     YAMAMOTO Mitsuharu
				mituharu@math.s.chiba-u.ac.jp




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
  2008-04-17  8:02       ` YAMAMOTO Mitsuharu
@ 2008-04-17  9:22         ` David Reitter
  2008-04-17 23:20           ` YAMAMOTO Mitsuharu
  0 siblings, 1 reply; 7+ messages in thread
From: David Reitter @ 2008-04-17  9:22 UTC (permalink / raw)
  To: YAMAMOTO Mitsuharu; +Cc: emacs-pretest-bug, Nathaniel Cunningham

On 17 Apr 2008, at 09:02, YAMAMOTO Mitsuharu wrote:
>> Yes, of course that selects the window, but it does so even when the
>> button can be selected otherwise, i.e. there's no "click-through".
>
> Maybe I don't understand.  I think they've been always click-through
> even without the patch.  What do you mean by "select the button"?

Yes, they have been click-through, without the patch.
With your patch, frames are selected unconditionally, and they  
shouldn't be.

Toolbar items should be clickable without selecting (and raising) the  
frame, if they are actually enabled.
This is called "click-through".

If they are not enabled (:enabled nil), then clicking on them should  
result in the frame being raised and selected.
The same applies to any other click on a non-enabled surface.

Most toolbar items should respond to click-through.  Some dangerous  
actions (which cannot easily be undone) should lead to the associated  
item being disabled when the frame is not selected. As a consequence,  
users will click on the toolbar item, which will raise / select the  
frame.  That way, the item becomes enabled and can be clicked normally.
Note that this last part is not to be implemented by the C layer.   
Toolbar items can have that simply in their :enabled property.

N.B., this is not a specific feature; it's merely the correct way of  
doing the UI with this particular toolkit.  Other toolkits may have  
different standards.

Refer to:

http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGWindows/chapter_18_section_5.html

(heading: Click-Through)




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
  2008-04-17  9:22         ` David Reitter
@ 2008-04-17 23:20           ` YAMAMOTO Mitsuharu
  2008-04-18  9:40             ` David Reitter
  0 siblings, 1 reply; 7+ messages in thread
From: YAMAMOTO Mitsuharu @ 2008-04-17 23:20 UTC (permalink / raw)
  To: David Reitter; +Cc: emacs-pretest-bug, Nathaniel Cunningham

>>>>> On Thu, 17 Apr 2008 10:22:03 +0100, David Reitter <david.reitter@gmail.com> said:

> On 17 Apr 2008, at 09:02, YAMAMOTO Mitsuharu wrote:
>>> Yes, of course that selects the window, but it does so even when
>>> the button can be selected otherwise, i.e. there's no
>>> "click-through".
>> 
>> Maybe I don't understand.  I think they've been always
>> click-through even without the patch.  What do you mean by "select
>> the button"?

> Yes, they have been click-through, without the patch.  With your
> patch, frames are selected unconditionally, and they shouldn't be.

> Toolbar items should be clickable without selecting (and raising)
> the frame, if they are actually enabled.  This is called
> "click-through".

Without raising?  So, with your definition, Safari's reload button is
not click-through, right?

				     YAMAMOTO Mitsuharu
				mituharu@math.s.chiba-u.ac.jp




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame
  2008-04-17 23:20           ` YAMAMOTO Mitsuharu
@ 2008-04-18  9:40             ` David Reitter
  0 siblings, 0 replies; 7+ messages in thread
From: David Reitter @ 2008-04-18  9:40 UTC (permalink / raw)
  To: YAMAMOTO Mitsuharu; +Cc: emacs-pretest-bug, Nathaniel Cunningham

On 18 Apr 2008, at 00:20, YAMAMOTO Mitsuharu wrote:
>
> Without raising?  So, with your definition, Safari's reload button is
> not click-through, right?

Not my definition; I just reiterated what's in the human interface  
guidelines.
That said, it appears Apple doesn't like the taste of its own  
medicine.  They used to, though: IIRC, the "flag message" button in  
Mail allowed click-through at some point.

I now think your patch is sufficient and correct. 




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-04-18  9:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20ecf6c70804160707t7e7881c4wdf0fbdc28b2f9bb7@mail.gmail.com>
2008-04-16 17:28 ` Carbon / USE_MAC_TOOLBAR: click in tool bar doesn't raise frame David Reitter
2008-04-17  0:44   ` YAMAMOTO Mitsuharu
2008-04-17  6:50     ` David Reitter
2008-04-17  8:02       ` YAMAMOTO Mitsuharu
2008-04-17  9:22         ` David Reitter
2008-04-17 23:20           ` YAMAMOTO Mitsuharu
2008-04-18  9:40             ` David Reitter

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).