threads / patch / 54405

patchgit-gui blame: prevent tool tips from sticking around after Command-Tab

Subject: [PATCH] git-gui blame: prevent tool tips from sticking around after Command-Tab

## tl;dr

3 messages between Oct 13, 2020 and Oct 17, 2020. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Stefan Haller· Oct 13, 2020, 13:26 UTC · lore

On Mac, tooltips are not automatically removed when a window loses focus. Furthermore, mouse-move events are only dispatched to the active window, which means that if we Command-tab to another application while a tool tip is showing, the tool tip will stay there forever (in front of other applications). So we must hide it manually when we lose focus.

I'm doing this unconditionally here (i.e. without if {[is_MacOSX]}); it shouldn't hurt on other platforms, even though they don't seem to have this problem.

Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
---
 lib/blame.tcl | 1 +
 1 file changed, 1 insertion(+)
Show changes to lib/blame.tcl +1 −0
diff --git a/lib/blame.tcl b/lib/blame.tcl
index 62ec083..8441e10 100644
--- a/lib/blame.tcl
+++ b/lib/blame.tcl
@@ -328,6 +328,7 @@ constructor new {i_commit i_path i_jump} {
 		bind $i <Any-Motion>  [cb _show_tooltip $i @%x,%y]
 		bind $i <Any-Enter>   [cb _hide_tooltip]
 		bind $i <Any-Leave>   [cb _hide_tooltip]
+		bind $i <Deactivate>  [cb _hide_tooltip]
 		bind_button3 $i "
 			[cb _hide_tooltip]
 			set cursorX %x
-- 
2.29.0.rc1.12.gf22076828a
Pratyush Yadav· Oct 13, 2020, 15:17 UTC · re: Stefan Haller · lore

Re: [PATCH] git-gui blame: prevent tool tips from sticking around after Command-Tab

Hi Stefan,
> Subject: [PATCH] git-gui blame: prevent tool tips from sticking around
Nitpick:                  ^ Add a ':' here.
On 13/10/20 03:26PM, Stefan Haller wrote:
Show 7 quoted lines
> On Mac, tooltips are not automatically removed when a window loses
> focus. Furthermore, mouse-move events are only dispatched to the active
> window, which means that if we Command-tab to another application while
> a tool tip is showing, the tool tip will stay there forever (in front of
> other applications). So we must hide it manually when we lose focus.
> 
> I'm doing this unconditionally here (i.e. without if {[is_MacOSX]}); it
Nitpick: s/I'm doing this/Do this/.
> shouldn't hurt on other platforms, even though they don't seem to have
> this problem.
Yes, I don't have this problem on Linux. But this patch does not make 
any visible difference/regressions either.
 
Show 17 quoted lines
> Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
> ---
>  lib/blame.tcl | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/blame.tcl b/lib/blame.tcl
> index 62ec083..8441e10 100644
> --- a/lib/blame.tcl
> +++ b/lib/blame.tcl
> @@ -328,6 +328,7 @@ constructor new {i_commit i_path i_jump} {
>  		bind $i <Any-Motion>  [cb _show_tooltip $i @%x,%y]
>  		bind $i <Any-Enter>   [cb _hide_tooltip]
>  		bind $i <Any-Leave>   [cb _hide_tooltip]
> +		bind $i <Deactivate>  [cb _hide_tooltip]
>  		bind_button3 $i "
>  			[cb _hide_tooltip]
>  			set cursorX %x
Will apply with the two nitpicks above fixed. No need to resend. Thanks.
-- 
Regards,
Pratyush Yadav
Pratyush Yadav· Oct 17, 2020, 09:37 UTC · re: Pratyush Yadav · lore

Re: [PATCH] git-gui blame: prevent tool tips from sticking around after Command-Tab

On 13/10/20 08:47PM, Pratyush Yadav wrote:
Show 41 quoted lines
> Hi Stefan,
> 
> > Subject: [PATCH] git-gui blame: prevent tool tips from sticking around
> Nitpick:                  ^ Add a ':' here.
> 
> On 13/10/20 03:26PM, Stefan Haller wrote:
> > On Mac, tooltips are not automatically removed when a window loses
> > focus. Furthermore, mouse-move events are only dispatched to the active
> > window, which means that if we Command-tab to another application while
> > a tool tip is showing, the tool tip will stay there forever (in front of
> > other applications). So we must hide it manually when we lose focus.
> > 
> > I'm doing this unconditionally here (i.e. without if {[is_MacOSX]}); it
> 
> Nitpick: s/I'm doing this/Do this/.
> 
> > shouldn't hurt on other platforms, even though they don't seem to have
> > this problem.
> 
> Yes, I don't have this problem on Linux. But this patch does not make 
> any visible difference/regressions either.
>  
> > Signed-off-by: Stefan Haller <stefan@haller-berlin.de>
> > ---
> >  lib/blame.tcl | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/lib/blame.tcl b/lib/blame.tcl
> > index 62ec083..8441e10 100644
> > --- a/lib/blame.tcl
> > +++ b/lib/blame.tcl
> > @@ -328,6 +328,7 @@ constructor new {i_commit i_path i_jump} {
> >  		bind $i <Any-Motion>  [cb _show_tooltip $i @%x,%y]
> >  		bind $i <Any-Enter>   [cb _hide_tooltip]
> >  		bind $i <Any-Leave>   [cb _hide_tooltip]
> > +		bind $i <Deactivate>  [cb _hide_tooltip]
> >  		bind_button3 $i "
> >  			[cb _hide_tooltip]
> >  			set cursorX %x
> 
> Will apply with the two nitpicks above fixed. No need to resend. Thanks.
Applied to git-gui/master. Thanks.
-- 
Regards,
Pratyush Yadav

← back to recent threads