[PATCH] [weston, v2] weston.ini: Add natural scroll support to weston.ini

2016-10-22 Thread Jiayi Zhao
This adds support for enabling/disabling natural scrolling
via a boolean in weston.ini:

[libinput]
natural_scroll=true

CHANGES:
 - libinput_device_config_scroll_has_natural_scroll() is not longer compared to 
!= 0

Signed-off-by: Jiayi Zhao 
---
 compositor/main.c | 13 +
 weston.ini.in |  1 +
 2 files changed, 14 insertions(+)

diff --git a/compositor/main.c b/compositor/main.c
index 080aa61..abfb55b 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -1095,6 +1095,8 @@ configure_input_device(struct weston_compositor 
*compositor,
struct weston_config *config = wet_get_config(compositor);
int enable_tap;
int enable_tap_default;
+   int natural_scroll;
+   int natural_scroll_default;
 
s = weston_config_get_section(config,
  "libinput", NULL, NULL);
@@ -1109,6 +,17 @@ configure_input_device(struct weston_compositor 
*compositor,
libinput_device_config_tap_set_enabled(device,
   enable_tap);
}
+
+   if (libinput_device_config_scroll_has_natural_scroll(device)) {
+   natural_scroll_default =
+   
libinput_device_config_scroll_get_default_natural_scroll_enabled(
+   device);
+   weston_config_section_get_bool(s, "natural_scroll",
+  _scroll,
+  natural_scroll_default);
+   libinput_device_config_scroll_set_natural_scroll_enabled(device,
+  natural_scroll);
+   }
 }
 
 static void
diff --git a/weston.ini.in b/weston.ini.in
index d837fb5..c7b8b98 100644
--- a/weston.ini.in
+++ b/weston.ini.in
@@ -60,6 +60,7 @@ path=@libexecdir@/weston-keyboard
 
 #[libinput]
 #enable_tap=true
+#natural_scroll=false
 
 #[touchpad]
 #constant_accel_factor = 50
-- 
2.7.3

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


[weston,v2] weston.ini: Add natural scroll support to weston.ini

2016-10-22 Thread Jiayi Zhao
This adds support for enabling/disabling natural scrolling
via a boolean in weston.ini:

[libinput]
natural_scroll=true

CHANGES:
 - libinput_device_config_scroll_has_natural_scroll() is not longer compared to 
!= 0

Signed-off-by: Jiayi Zhao 

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


[weston,v2] weston.ini: Add natural scroll support to weston.ini

2016-10-22 Thread Jiayi Zhao
This adds support for enabling/disabling natural scrolling
via a boolean in weston.ini:

[libinput]
enable_natural_scroll=true

CHANGES:
 - natural_scroll option has been changed to enable_natural_scroll
 - libinput_device_config_scroll_has_natural_scroll() is not longer compared to 
!= 0

Signed-off-by: Jiayi Zhao 

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


[PATCH] [weston, v2] weston.ini: Add natural scroll support to weston.ini

2016-10-22 Thread Jiayi Zhao
This adds support for enabling/disabling natural scrolling
via a boolean in weston.ini:

[libinput]
enable_natural_scroll=true

CHANGES:
 - natural_scroll option has been changed to enable_natural_scroll
 - libinput_device_config_scroll_has_natural_scroll() is not longer compared to 
!= 0

Signed-off-by: Jiayi Zhao 
---
 compositor/main.c | 13 +
 weston.ini.in |  1 +
 2 files changed, 14 insertions(+)

diff --git a/compositor/main.c b/compositor/main.c
index 080aa61..a077a98 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -1095,6 +1095,8 @@ configure_input_device(struct weston_compositor 
*compositor,
struct weston_config *config = wet_get_config(compositor);
int enable_tap;
int enable_tap_default;
+   int natural_scroll;
+   int natural_scroll_default;
 
s = weston_config_get_section(config,
  "libinput", NULL, NULL);
@@ -1109,6 +,17 @@ configure_input_device(struct weston_compositor 
*compositor,
libinput_device_config_tap_set_enabled(device,
   enable_tap);
}
+
+   if (libinput_device_config_scroll_has_natural_scroll(device)) {
+   natural_scroll_default =
+   
libinput_device_config_scroll_get_default_natural_scroll_enabled(
+   device);
+   weston_config_section_get_bool(s, "enable_natural_scroll",
+  _scroll,
+  natural_scroll_default);
+   libinput_device_config_scroll_set_natural_scroll_enabled(device,
+  natural_scroll);
+   }
 }
 
 static void
diff --git a/weston.ini.in b/weston.ini.in
index d837fb5..c590eb9 100644
--- a/weston.ini.in
+++ b/weston.ini.in
@@ -60,6 +60,7 @@ path=@libexecdir@/weston-keyboard
 
 #[libinput]
 #enable_tap=true
+#enable_natural_scroll=false
 
 #[touchpad]
 #constant_accel_factor = 50
-- 
2.7.3

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


Re: [PATCH] [weston] weston.ini: Add natural scroll support to weston.ini

2016-10-22 Thread Jiayi Zhao
Hmm,

it says here that

libinput_device_config_scroll_has_natural_scroll()

returns a zero value if device does not support natural scrolling

and returns a non-zero value if it does support natural scrolling:

https://wayland.freedesktop.org/libinput/doc/latest/group__config.html#ga82d1aa961d2bb2f0c72c22e2441a4fc3

So I don't really know how I else I can program it.

On Oct 20, 2016 9:05 PM, "Peter Hutterer"  wrote:

>

> >

> On Thu, Oct 20, 2016 at 08:43:18PM -0400, Jiayi Zhao wrote:
> > This adds support for enabling/disabling natural scrolling
> > via a boolean in weston.ini:
> >
> > [libinput]
> > natural_scroll=true
> >
> > Signed-off-by: Jiayi Zhao 
> > ---
> >  compositor/main.c | 13 +
> >  weston.ini.in |  1 +
> >  2 files changed, 14 insertions(+)
> >
> > diff --git a/compositor/main.c b/compositor/main.c
> > index 8028ec3..6cd2a25 100644
> > --- a/compositor/main.c
> > +++ b/compositor/main.c
> > @@ -1095,6 +1095,8 @@ configure_input_device(struct weston_compositor
*compositor,
> >   struct weston_config *config = wet_get_config(compositor);
> >   int enable_tap;
> >   int enable_tap_default;
> > + int natural_scroll;
> > + int natural_scroll_default;
> >
> >   s = weston_config_get_section(config,
> > "libinput", NULL, NULL);
> > @@ -1109,6 +,17 @@ configure_input_device(struct weston_compositor
*compositor,
> >   libinput_device_config_tap_set_enabled(device,
> >  enable_tap);
> >   }
> > +
> > + if (libinput_device_config_scroll_has_natural_scroll(device) !=
0) {
>
> libinput's *_has_* API is designed to return a boolean value, IMO you
> shouldn't use the != 0 here.
>
> > + natural_scroll_default =
> > +
 libinput_device_config_scroll_get_default_natural_scroll_enabled(
> > + device);
> > + weston_config_section_get_bool(s, "natural_scroll",
> > +_scroll,
> > +natural_scroll_default);
> > +
 libinput_device_config_scroll_set_natural_scroll_enabled(device,
> > +natural_scroll);
> > + }
> >  }
> >
> >  static void
> > diff --git a/weston.ini.in b/weston.ini.in
> > index 14a4c0c..08f931a 100644
> > --- a/weston.ini.in
> > +++ b/weston.ini.in
> > @@ -59,6 +59,7 @@ path=@libexecdir@/weston-keyboard
> >
> >  #[libinput]
> >  #enable_tap=true
> > +#natural_scroll=false
>
> "enable_natural_scroll" is more precise
>
> these are just nitpicks, the code itself looks fine, thanks.
>
> Cheers,
>Peter
>
> >
> >  #[touchpad]
> >  #constant_accel_factor = 50
> > --
> > 2.7.3
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel


[PATCH weston] clients: Make XKB compose support conditional

2016-10-22 Thread Daniel Stone
Debian Jessie's version of libxkbcommon is too old for compose support,
so rather than force people to upgrade, let's make it conditional.

Signed-off-by: Daniel Stone 
Cc: Bryce Harrington 
---
 clients/window.c | 12 
 configure.ac |  4 
 2 files changed, 16 insertions(+)

diff --git a/clients/window.c b/clients/window.c
index 5e41210..84d585e 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -63,7 +63,9 @@ typedef void *EGLContext;
 #endif /* no HAVE_CAIRO_EGL */
 
 #include 
+#ifdef HAVE_XKBCOMMON_COMPOSE
 #include 
+#endif
 #include 
 
 #include 
@@ -373,8 +375,10 @@ struct input {
struct {
struct xkb_keymap *keymap;
struct xkb_state *state;
+#ifdef HAVE_XKBCOMMON_COMPOSE
struct xkb_compose_table *compose_table;
struct xkb_compose_state *compose_state;
+#endif
xkb_mod_mask_t control_mask;
xkb_mod_mask_t alt_mask;
xkb_mod_mask_t shift_mask;
@@ -2982,8 +2986,10 @@ keyboard_handle_keymap(void *data, struct wl_keyboard 
*keyboard,
struct input *input = data;
struct xkb_keymap *keymap;
struct xkb_state *state;
+#ifdef HAVE_XKBCOMMON_COMPOSE
struct xkb_compose_table *compose_table;
struct xkb_compose_state *compose_state;
+#endif
char *locale;
char *map_str;
 
@@ -3031,6 +3037,7 @@ keyboard_handle_keymap(void *data, struct wl_keyboard 
*keyboard,
locale = "C";
 
/* Set up XKB compose table */
+#ifdef HAVE_XKBCOMMON_COMPOSE
compose_table =
xkb_compose_table_new_from_locale(input->display->xkb_context,
  locale,
@@ -3054,6 +3061,7 @@ keyboard_handle_keymap(void *data, struct wl_keyboard 
*keyboard,
fprintf(stderr, "could not create XKB compose table for locale 
'%s'.  "
"Disabiling compose\n", locale);
}
+#endif
 
xkb_keymap_unref(input->xkb.keymap);
xkb_state_unref(input->xkb.state);
@@ -3099,6 +3107,7 @@ keyboard_handle_leave(void *data, struct wl_keyboard 
*keyboard,
 static xkb_keysym_t
 process_key_press(xkb_keysym_t sym, struct input *input)
 {
+#ifdef HAVE_XKBCOMMON_COMPOSE
if (sym == XKB_KEY_NoSymbol)
return sym;
if (xkb_compose_state_feed(input->xkb.compose_state,
@@ -3117,6 +3126,9 @@ process_key_press(xkb_keysym_t sym, struct input *input)
default:
return sym;
}
+#else
+   return sym;
+#endif
 }
 
 static void
diff --git a/configure.ac b/configure.ac
index 37da695..1e251bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -146,6 +146,10 @@ AC_ARG_ENABLE(xkbcommon,
 if test x$enable_xkbcommon = xyes; then
AC_DEFINE(ENABLE_XKBCOMMON, [1], [Build Weston with libxkbcommon 
support])
COMPOSITOR_MODULES="$COMPOSITOR_MODULES xkbcommon >= 0.3.0"
+   PKG_CHECK_MODULES(XKBCOMMON_COMPOSE, [xkbcommon >= 0.5.0],
+ [AC_DEFINE(HAVE_XKBCOMMON_COMPOSE, 1,
+[Define if xkbcommon is 0.5.0 or newer])],
+  true)
 fi
 
 AC_ARG_ENABLE(setuid-install, [  --enable-setuid-install],,
-- 
2.9.3

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


Re: [PATCH v4] Add configuration option for no input device.

2016-10-22 Thread Daniel Stone
On 21 October 2016 at 20:03, Daniel Díaz  wrote:
> As it has been discussed in the past [1], running Weston
> without any input device at launch might be beneficial for
> some use cases.
>
> Certainly, it's best for the vast majority of users (and
> the project) to require an input device to be present, as
> to avoid frustration and hassle, but for those brave souls
> that so prefer, this patch lets them run without any input
> device at all.
>
> This introduces a simple configuration in weston.ini:
>   [core]
>   require-input=true
>
> True is the default, so no behavioral change is introduced.
>
> [1] 
> https://lists.freedesktop.org/archives/wayland-devel/2015-November/025193.html
>
> Signed-off-by: Daniel Díaz 
> Reviewed-by: Peter Hutterer 

Reviewed, tested, and pushed - thanks a lot!

To ssh://git.freedesktop.org/git/wayland/weston
   2dae4d0..75b7197  push -> master

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