Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-11-27 Thread Joshua Watt
On Fri, 2017-08-04 at 22:04 +0200, jana...@gmail.com wrote:
> On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> > Previously, the hide_input_panel and show_input_panel messages for
> > the text
> > input protocol were limited to specific cases, such as showing the
> > panel on
> > activation, or making the panel visible after activation. Now,
> > clients are
> > allowed to toggle the panel visiblity at will as long as they are
> > the
> > currently
> > active client
> > 
> > Signed-off-by: Joshua Watt 
> 
> Thanks, both patches are improving the implementation in the right
> way:
> 
> Reviewed-by: Jan Arne Petersen 

I think this has set long enough for comments, could I get it Acked and
 committed please?

> 
> > ---
> >  compositor/text-backend.c | 22 --
> >  1 file changed, 12 insertions(+), 10 deletions(-)
> > 
> > diff --git a/compositor/text-backend.c b/compositor/text-backend.c
> > index bf5c45c..6add101 100644
> > --- a/compositor/text-backend.c
> > +++ b/compositor/text-backend.c
> > @@ -64,7 +64,7 @@ struct text_input_manager {
> > struct wl_global *text_input_manager_global;
> > struct wl_listener destroy_listener;
> >  
> > -   struct text_input *current_panel;
> > +   struct text_input *current_text_input;
> >  
> > struct weston_compositor *ec;
> >  };
> > @@ -140,11 +140,15 @@ deactivate_input_method(struct input_method
> > *input_method)
> > input_method->context = NULL;
> >  
> > if (wl_list_empty(_input->input_methods) &&
> > -   text_input->input_panel_visible) {
> > +   text_input->input_panel_visible &&
> > +   text_input->manager->current_text_input == text_input)
> > {
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > text_input->input_panel_visible = false;
> > -   text_input->manager->current_panel = NULL;
> > }
> > +
> > +   if (text_input->manager->current_text_input == text_input)
> > +   text_input->manager->current_text_input = NULL;
> > +
> > zwp_text_input_v1_send_leave(text_input->resource);
> >  }
> >  
> > @@ -206,12 +210,11 @@ text_input_activate(struct wl_client *client,
> >  
> > input_method_context_create(text_input, input_method);
> >  
> > -   current = text_input->manager->current_panel;
> > +   current = text_input->manager->current_text_input;
> >  
> > if (current && current != text_input) {
> > current->input_panel_visible = false;
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > -   text_input->manager->current_panel = NULL;
> > }
> >  
> > if (text_input->input_panel_visible) {
> > @@ -219,8 +222,8 @@ text_input_activate(struct wl_client *client,
> >text_input->surface);
> > wl_signal_emit(>update_input_panel_signal,
> >_input->cursor_rectangle);
> > -   text_input->manager->current_panel = text_input;
> > }
> > +   text_input->manager->current_text_input = text_input;
> >  
> > zwp_text_input_v1_send_enter(text_input->resource,
> >  text_input->surface-
> > >resource);
> > @@ -335,7 +338,8 @@ text_input_show_input_panel(struct wl_client
> > *client,
> >  
> > text_input->input_panel_visible = true;
> >  
> > -   if (!wl_list_empty(_input->input_methods)) {
> > +   if (!wl_list_empty(_input->input_methods) &&
> > +   text_input == text_input->manager->current_text_input) 
> > {
> > wl_signal_emit(>show_input_panel_signal,
> >text_input->surface);
> > wl_signal_emit(>update_input_panel_signal,
> > @@ -353,10 +357,8 @@ text_input_hide_input_panel(struct wl_client
> > *client,
> > text_input->input_panel_visible = false;
> >  
> > if (!wl_list_empty(_input->input_methods) &&
> > -   text_input == text_input->manager->current_panel) {
> > -   text_input->manager->current_panel = NULL;
> > +   text_input == text_input->manager->current_text_input)
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > -   }
> >  }
> >  
> >  static void
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-10-11 Thread Joshua Watt
On Fri, 2017-08-04 at 22:04 +0200, jana...@gmail.com wrote:
> On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> > Previously, the hide_input_panel and show_input_panel messages for
> > the text
> > input protocol were limited to specific cases, such as showing the
> > panel on
> > activation, or making the panel visible after activation. Now,
> > clients are
> > allowed to toggle the panel visiblity at will as long as they are
> > the
> > currently
> > active client
> > 
> > Signed-off-by: Joshua Watt 
> 
> Thanks, both patches are improving the implementation in the right
> way:
> 
> Reviewed-by: Jan Arne Petersen 
> 
> > ---
> >  compositor/text-backend.c | 22 --
> >  1 file changed, 12 insertions(+), 10 deletions(-)
> > 
> > diff --git a/compositor/text-backend.c b/compositor/text-backend.c
> > index bf5c45c..6add101 100644
> > --- a/compositor/text-backend.c
> > +++ b/compositor/text-backend.c
> > @@ -64,7 +64,7 @@ struct text_input_manager {
> > struct wl_global *text_input_manager_global;
> > struct wl_listener destroy_listener;
> >  
> > -   struct text_input *current_panel;
> > +   struct text_input *current_text_input;
> >  
> > struct weston_compositor *ec;
> >  };
> > @@ -140,11 +140,15 @@ deactivate_input_method(struct input_method
> > *input_method)
> > input_method->context = NULL;
> >  
> > if (wl_list_empty(_input->input_methods) &&
> > -   text_input->input_panel_visible) {
> > +   text_input->input_panel_visible &&
> > +   text_input->manager->current_text_input == text_input)
> > {
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > text_input->input_panel_visible = false;
> > -   text_input->manager->current_panel = NULL;
> > }
> > +
> > +   if (text_input->manager->current_text_input == text_input)
> > +   text_input->manager->current_text_input = NULL;
> > +
> > zwp_text_input_v1_send_leave(text_input->resource);
> >  }
> >  
> > @@ -206,12 +210,11 @@ text_input_activate(struct wl_client *client,
> >  
> > input_method_context_create(text_input, input_method);
> >  
> > -   current = text_input->manager->current_panel;
> > +   current = text_input->manager->current_text_input;
> >  
> > if (current && current != text_input) {
> > current->input_panel_visible = false;
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > -   text_input->manager->current_panel = NULL;
> > }
> >  
> > if (text_input->input_panel_visible) {
> > @@ -219,8 +222,8 @@ text_input_activate(struct wl_client *client,
> >text_input->surface);
> > wl_signal_emit(>update_input_panel_signal,
> >_input->cursor_rectangle);
> > -   text_input->manager->current_panel = text_input;
> > }
> > +   text_input->manager->current_text_input = text_input;
> >  
> > zwp_text_input_v1_send_enter(text_input->resource,
> >  text_input->surface-
> > >resource);
> > @@ -335,7 +338,8 @@ text_input_show_input_panel(struct wl_client
> > *client,
> >  
> > text_input->input_panel_visible = true;
> >  
> > -   if (!wl_list_empty(_input->input_methods)) {
> > +   if (!wl_list_empty(_input->input_methods) &&
> > +   text_input == text_input->manager->current_text_input) 
> > {
> > wl_signal_emit(>show_input_panel_signal,
> >text_input->surface);
> > wl_signal_emit(>update_input_panel_signal,
> > @@ -353,10 +357,8 @@ text_input_hide_input_panel(struct wl_client
> > *client,
> > text_input->input_panel_visible = false;
> >  
> > if (!wl_list_empty(_input->input_methods) &&
> > -   text_input == text_input->manager->current_panel) {
> > -   text_input->manager->current_panel = NULL;
> > +   text_input == text_input->manager->current_text_input)
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > -   }
> >  }
> >  
> >  static void
ping?
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-08-17 Thread Joshua Watt
On Fri, 2017-08-04 at 22:04 +0200, jana...@gmail.com wrote:
> On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> > Previously, the hide_input_panel and show_input_panel messages for
> > the text
> > input protocol were limited to specific cases, such as showing the
> > panel on
> > activation, or making the panel visible after activation. Now,
> > clients are
> > allowed to toggle the panel visiblity at will as long as they are
> > the
> > currently
> > active client
> > 
> > Signed-off-by: Joshua Watt 
> 
> Thanks, both patches are improving the implementation in the right
> way:

Any further update on this?

> 
> Reviewed-by: Jan Arne Petersen 
> 
> > ---
> >  compositor/text-backend.c | 22 --
> >  1 file changed, 12 insertions(+), 10 deletions(-)
> > 
> > diff --git a/compositor/text-backend.c b/compositor/text-backend.c
> > index bf5c45c..6add101 100644
> > --- a/compositor/text-backend.c
> > +++ b/compositor/text-backend.c
> > @@ -64,7 +64,7 @@ struct text_input_manager {
> > struct wl_global *text_input_manager_global;
> > struct wl_listener destroy_listener;
> >  
> > -   struct text_input *current_panel;
> > +   struct text_input *current_text_input;
> >  
> > struct weston_compositor *ec;
> >  };
> > @@ -140,11 +140,15 @@ deactivate_input_method(struct input_method
> > *input_method)
> > input_method->context = NULL;
> >  
> > if (wl_list_empty(_input->input_methods) &&
> > -   text_input->input_panel_visible) {
> > +   text_input->input_panel_visible &&
> > +   text_input->manager->current_text_input == text_input)
> > {
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > text_input->input_panel_visible = false;
> > -   text_input->manager->current_panel = NULL;
> > }
> > +
> > +   if (text_input->manager->current_text_input == text_input)
> > +   text_input->manager->current_text_input = NULL;
> > +
> > zwp_text_input_v1_send_leave(text_input->resource);
> >  }
> >  
> > @@ -206,12 +210,11 @@ text_input_activate(struct wl_client *client,
> >  
> > input_method_context_create(text_input, input_method);
> >  
> > -   current = text_input->manager->current_panel;
> > +   current = text_input->manager->current_text_input;
> >  
> > if (current && current != text_input) {
> > current->input_panel_visible = false;
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > -   text_input->manager->current_panel = NULL;
> > }
> >  
> > if (text_input->input_panel_visible) {
> > @@ -219,8 +222,8 @@ text_input_activate(struct wl_client *client,
> >text_input->surface);
> > wl_signal_emit(>update_input_panel_signal,
> >_input->cursor_rectangle);
> > -   text_input->manager->current_panel = text_input;
> > }
> > +   text_input->manager->current_text_input = text_input;
> >  
> > zwp_text_input_v1_send_enter(text_input->resource,
> >  text_input->surface-
> > >resource);
> > @@ -335,7 +338,8 @@ text_input_show_input_panel(struct wl_client
> > *client,
> >  
> > text_input->input_panel_visible = true;
> >  
> > -   if (!wl_list_empty(_input->input_methods)) {
> > +   if (!wl_list_empty(_input->input_methods) &&
> > +   text_input == text_input->manager->current_text_input) 
> > {
> > wl_signal_emit(>show_input_panel_signal,
> >text_input->surface);
> > wl_signal_emit(>update_input_panel_signal,
> > @@ -353,10 +357,8 @@ text_input_hide_input_panel(struct wl_client
> > *client,
> > text_input->input_panel_visible = false;
> >  
> > if (!wl_list_empty(_input->input_methods) &&
> > -   text_input == text_input->manager->current_panel) {
> > -   text_input->manager->current_panel = NULL;
> > +   text_input == text_input->manager->current_text_input)
> > wl_signal_emit(>hide_input_panel_signal, ec);
> > -   }
> >  }
> >  
> >  static void

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-08-04 Thread janarne
On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> Previously, the hide_input_panel and show_input_panel messages for
> the text
> input protocol were limited to specific cases, such as showing the
> panel on
> activation, or making the panel visible after activation. Now,
> clients are
> allowed to toggle the panel visiblity at will as long as they are the
> currently
> active client
> 
> Signed-off-by: Joshua Watt 

Thanks, both patches are improving the implementation in the right way:

Reviewed-by: Jan Arne Petersen 

> ---
>  compositor/text-backend.c | 22 --
>  1 file changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/compositor/text-backend.c b/compositor/text-backend.c
> index bf5c45c..6add101 100644
> --- a/compositor/text-backend.c
> +++ b/compositor/text-backend.c
> @@ -64,7 +64,7 @@ struct text_input_manager {
>   struct wl_global *text_input_manager_global;
>   struct wl_listener destroy_listener;
>  
> - struct text_input *current_panel;
> + struct text_input *current_text_input;
>  
>   struct weston_compositor *ec;
>  };
> @@ -140,11 +140,15 @@ deactivate_input_method(struct input_method
> *input_method)
>   input_method->context = NULL;
>  
>   if (wl_list_empty(_input->input_methods) &&
> - text_input->input_panel_visible) {
> + text_input->input_panel_visible &&
> + text_input->manager->current_text_input == text_input) {
>   wl_signal_emit(>hide_input_panel_signal, ec);
>   text_input->input_panel_visible = false;
> - text_input->manager->current_panel = NULL;
>   }
> +
> + if (text_input->manager->current_text_input == text_input)
> + text_input->manager->current_text_input = NULL;
> +
>   zwp_text_input_v1_send_leave(text_input->resource);
>  }
>  
> @@ -206,12 +210,11 @@ text_input_activate(struct wl_client *client,
>  
>   input_method_context_create(text_input, input_method);
>  
> - current = text_input->manager->current_panel;
> + current = text_input->manager->current_text_input;
>  
>   if (current && current != text_input) {
>   current->input_panel_visible = false;
>   wl_signal_emit(>hide_input_panel_signal, ec);
> - text_input->manager->current_panel = NULL;
>   }
>  
>   if (text_input->input_panel_visible) {
> @@ -219,8 +222,8 @@ text_input_activate(struct wl_client *client,
>  text_input->surface);
>   wl_signal_emit(>update_input_panel_signal,
>  _input->cursor_rectangle);
> - text_input->manager->current_panel = text_input;
>   }
> + text_input->manager->current_text_input = text_input;
>  
>   zwp_text_input_v1_send_enter(text_input->resource,
>text_input->surface->resource);
> @@ -335,7 +338,8 @@ text_input_show_input_panel(struct wl_client
> *client,
>  
>   text_input->input_panel_visible = true;
>  
> - if (!wl_list_empty(_input->input_methods)) {
> + if (!wl_list_empty(_input->input_methods) &&
> + text_input == text_input->manager->current_text_input) {
>   wl_signal_emit(>show_input_panel_signal,
>  text_input->surface);
>   wl_signal_emit(>update_input_panel_signal,
> @@ -353,10 +357,8 @@ text_input_hide_input_panel(struct wl_client
> *client,
>   text_input->input_panel_visible = false;
>  
>   if (!wl_list_empty(_input->input_methods) &&
> - text_input == text_input->manager->current_panel) {
> - text_input->manager->current_panel = NULL;
> + text_input == text_input->manager->current_text_input)
>   wl_signal_emit(>hide_input_panel_signal, ec);
> - }
>  }
>  
>  static void
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-08-04 Thread Joshua Watt
On Wed, 2017-07-19 at 17:48 +0200, Silvan Jegen wrote:
> On Wed, Jul 19, 2017 at 3:49 PM, Joshua Watt 
> wrote:
> > On Sun, 2017-07-09 at 21:26 +0200, Silvan Jegen wrote:
> > > Hi Joshua
> > > 
> > > On Wed, Jul 05, 2017 at 08:58:51AM -0500, Joshua Watt wrote:
> > > > On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> > > > > Previously, the hide_input_panel and show_input_panel
> > > > > messages
> > > > > for
> > > > > the text
> > > > > input protocol were limited to specific cases, such as
> > > > > showing
> > > > > the
> > > > > panel on
> > > > > activation, or making the panel visible after activation.
> > > > > Now,
> > > > > clients are
> > > > > allowed to toggle the panel visiblity at will as long as they
> > > > > are
> > > > > the
> > > > > currently
> > > > > active client
> > > > > 
> > > > > Signed-off-by: Joshua Watt 
> > > > > ---
> > > > >  compositor/text-backend.c | 22 --
> > > > >  1 file changed, 12 insertions(+), 10 deletions(-)
> > > > > 
> > > > 
> > > > Ping?
> > > 
> > > I have tested your two patches locally and can confirm that they
> > > compile
> > > and run.
> > > 
> > > Letting the user toggle the visibility of the input panel with a
> > > click
> > > (in the --click-to-show case) seems like a good change to me. I
> > > doubt
> > > that there are any strong opinions on this though...
> > 
> > Any further updates on this?
> 
> We will have to wait for somebody with commit rights to chime in :)
> 
> I would be really interested in the next version of the
> text*protocols
> as well but development of them seems to have stalled for now,
> unfortunately. There was a new version forthcoming that is pending
> some changes. They have been pending for more than a year now though.

Any other comments?

> 
> 
> Cheers,
> 
> Silvan

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-07-19 Thread Joshua Watt
On Sun, 2017-07-09 at 21:26 +0200, Silvan Jegen wrote:
> Hi Joshua
> 
> On Wed, Jul 05, 2017 at 08:58:51AM -0500, Joshua Watt wrote:
> > On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> > > Previously, the hide_input_panel and show_input_panel messages
> > > for
> > > the text
> > > input protocol were limited to specific cases, such as showing
> > > the
> > > panel on
> > > activation, or making the panel visible after activation. Now,
> > > clients are
> > > allowed to toggle the panel visiblity at will as long as they are
> > > the
> > > currently
> > > active client
> > > 
> > > Signed-off-by: Joshua Watt 
> > > ---
> > >  compositor/text-backend.c | 22 --
> > >  1 file changed, 12 insertions(+), 10 deletions(-)
> > > 
> > 
> > Ping?
> 
> I have tested your two patches locally and can confirm that they
> compile
> and run.
> 
> Letting the user toggle the visibility of the input panel with a
> click
> (in the --click-to-show case) seems like a good change to me. I doubt
> that there are any strong opinions on this though...

Any further updates on this?

> 
> 
> Cheers,
> 
> Silvan
> 
> ___
> wayland-devel mailing list
> wayland-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-07-09 Thread Silvan Jegen
Hi Joshua

On Wed, Jul 05, 2017 at 08:58:51AM -0500, Joshua Watt wrote:
> On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> > Previously, the hide_input_panel and show_input_panel messages for
> > the text
> > input protocol were limited to specific cases, such as showing the
> > panel on
> > activation, or making the panel visible after activation. Now,
> > clients are
> > allowed to toggle the panel visiblity at will as long as they are the
> > currently
> > active client
> > 
> > Signed-off-by: Joshua Watt 
> > ---
> >  compositor/text-backend.c | 22 --
> >  1 file changed, 12 insertions(+), 10 deletions(-)
> > 
> Ping?

I have tested your two patches locally and can confirm that they compile
and run.

Letting the user toggle the visibility of the input panel with a click
(in the --click-to-show case) seems like a good change to me. I doubt
that there are any strong opinions on this though...


Cheers,

Silvan

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: [PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-07-05 Thread Joshua Watt
On Sat, 2017-06-24 at 16:03 -0500, Joshua Watt wrote:
> Previously, the hide_input_panel and show_input_panel messages for
> the text
> input protocol were limited to specific cases, such as showing the
> panel on
> activation, or making the panel visible after activation. Now,
> clients are
> allowed to toggle the panel visiblity at will as long as they are the
> currently
> active client
> 
> Signed-off-by: Joshua Watt 
> ---
>  compositor/text-backend.c | 22 --
>  1 file changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/compositor/text-backend.c b/compositor/text-backend.c
> index bf5c45c..6add101 100644
> --- a/compositor/text-backend.c
> +++ b/compositor/text-backend.c
> @@ -64,7 +64,7 @@ struct text_input_manager {
>   struct wl_global *text_input_manager_global;
>   struct wl_listener destroy_listener;
>  
> - struct text_input *current_panel;
> + struct text_input *current_text_input;
>  
>   struct weston_compositor *ec;
>  };
> @@ -140,11 +140,15 @@ deactivate_input_method(struct input_method
> *input_method)
>   input_method->context = NULL;
>  
>   if (wl_list_empty(_input->input_methods) &&
> - text_input->input_panel_visible) {
> + text_input->input_panel_visible &&
> + text_input->manager->current_text_input == text_input) {
>   wl_signal_emit(>hide_input_panel_signal, ec);
>   text_input->input_panel_visible = false;
> - text_input->manager->current_panel = NULL;
>   }
> +
> + if (text_input->manager->current_text_input == text_input)
> + text_input->manager->current_text_input = NULL;
> +
>   zwp_text_input_v1_send_leave(text_input->resource);
>  }
>  
> @@ -206,12 +210,11 @@ text_input_activate(struct wl_client *client,
>  
>   input_method_context_create(text_input, input_method);
>  
> - current = text_input->manager->current_panel;
> + current = text_input->manager->current_text_input;
>  
>   if (current && current != text_input) {
>   current->input_panel_visible = false;
>   wl_signal_emit(>hide_input_panel_signal, ec);
> - text_input->manager->current_panel = NULL;
>   }
>  
>   if (text_input->input_panel_visible) {
> @@ -219,8 +222,8 @@ text_input_activate(struct wl_client *client,
>      text_input->surface);
>   wl_signal_emit(>update_input_panel_signal,
>      _input->cursor_rectangle);
> - text_input->manager->current_panel = text_input;
>   }
> + text_input->manager->current_text_input = text_input;
>  
>   zwp_text_input_v1_send_enter(text_input->resource,
>    text_input->surface->resource);
> @@ -335,7 +338,8 @@ text_input_show_input_panel(struct wl_client
> *client,
>  
>   text_input->input_panel_visible = true;
>  
> - if (!wl_list_empty(_input->input_methods)) {
> + if (!wl_list_empty(_input->input_methods) &&
> + text_input == text_input->manager->current_text_input) {
>   wl_signal_emit(>show_input_panel_signal,
>      text_input->surface);
>   wl_signal_emit(>update_input_panel_signal,
> @@ -353,10 +357,8 @@ text_input_hide_input_panel(struct wl_client
> *client,
>   text_input->input_panel_visible = false;
>  
>   if (!wl_list_empty(_input->input_methods) &&
> - text_input == text_input->manager->current_panel) {
> - text_input->manager->current_panel = NULL;
> + text_input == text_input->manager->current_text_input)
>   wl_signal_emit(>hide_input_panel_signal, ec);
> - }
>  }
>  
>  static void

Ping?

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH weston 1/2] text-backend: Allow client hiding of input panel

2017-06-24 Thread Joshua Watt
Previously, the hide_input_panel and show_input_panel messages for the text
input protocol were limited to specific cases, such as showing the panel on
activation, or making the panel visible after activation. Now, clients are
allowed to toggle the panel visiblity at will as long as they are the currently
active client

Signed-off-by: Joshua Watt 
---
 compositor/text-backend.c | 22 --
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/compositor/text-backend.c b/compositor/text-backend.c
index bf5c45c..6add101 100644
--- a/compositor/text-backend.c
+++ b/compositor/text-backend.c
@@ -64,7 +64,7 @@ struct text_input_manager {
struct wl_global *text_input_manager_global;
struct wl_listener destroy_listener;
 
-   struct text_input *current_panel;
+   struct text_input *current_text_input;
 
struct weston_compositor *ec;
 };
@@ -140,11 +140,15 @@ deactivate_input_method(struct input_method *input_method)
input_method->context = NULL;
 
if (wl_list_empty(_input->input_methods) &&
-   text_input->input_panel_visible) {
+   text_input->input_panel_visible &&
+   text_input->manager->current_text_input == text_input) {
wl_signal_emit(>hide_input_panel_signal, ec);
text_input->input_panel_visible = false;
-   text_input->manager->current_panel = NULL;
}
+
+   if (text_input->manager->current_text_input == text_input)
+   text_input->manager->current_text_input = NULL;
+
zwp_text_input_v1_send_leave(text_input->resource);
 }
 
@@ -206,12 +210,11 @@ text_input_activate(struct wl_client *client,
 
input_method_context_create(text_input, input_method);
 
-   current = text_input->manager->current_panel;
+   current = text_input->manager->current_text_input;
 
if (current && current != text_input) {
current->input_panel_visible = false;
wl_signal_emit(>hide_input_panel_signal, ec);
-   text_input->manager->current_panel = NULL;
}
 
if (text_input->input_panel_visible) {
@@ -219,8 +222,8 @@ text_input_activate(struct wl_client *client,
   text_input->surface);
wl_signal_emit(>update_input_panel_signal,
   _input->cursor_rectangle);
-   text_input->manager->current_panel = text_input;
}
+   text_input->manager->current_text_input = text_input;
 
zwp_text_input_v1_send_enter(text_input->resource,
 text_input->surface->resource);
@@ -335,7 +338,8 @@ text_input_show_input_panel(struct wl_client *client,
 
text_input->input_panel_visible = true;
 
-   if (!wl_list_empty(_input->input_methods)) {
+   if (!wl_list_empty(_input->input_methods) &&
+   text_input == text_input->manager->current_text_input) {
wl_signal_emit(>show_input_panel_signal,
   text_input->surface);
wl_signal_emit(>update_input_panel_signal,
@@ -353,10 +357,8 @@ text_input_hide_input_panel(struct wl_client *client,
text_input->input_panel_visible = false;
 
if (!wl_list_empty(_input->input_methods) &&
-   text_input == text_input->manager->current_panel) {
-   text_input->manager->current_panel = NULL;
+   text_input == text_input->manager->current_text_input)
wl_signal_emit(>hide_input_panel_signal, ec);
-   }
 }
 
 static void
-- 
2.9.4

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel