diff options
author | Giulio Camuffo <giuliocamuffo@gmail.com> | 2014-08-28 19:44:10 +0300 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2014-09-03 15:31:31 +0300 |
commit | de7e2b3ce3d8a929b47b6248c42364b2510c65ab (patch) | |
tree | 6982821bda1a0f1101900d14ca2107e7d821c943 | |
parent | 6ef444d0947459cda35e076fa3514635ec680df6 (diff) |
compositor: add an option to set the default numlock value
Add a new "numlock-on" option in the [keyboard] section of weston.ini
which, if set to true, is used to enable the numlock of the keyboards
attached at startup.
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r-- | man/weston.ini.man | 6 | ||||
-rw-r--r-- | src/compositor.c | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/man/weston.ini.man b/man/weston.ini.man index ccd7185c..c05a2215 100644 --- a/man/weston.ini.man +++ b/man/weston.ini.man @@ -446,6 +446,12 @@ sets the delay in milliseconds since key down until repeating starts (unsigned integer) .RE .RE +.TP 7 +.BI "numlock-on=" "false" +sets the default state of the numlock on weston startup for the backends which +support it. +.RE +.RE .SH "TERMINAL SECTION" Contains settings for the weston terminal application (weston-terminal). It allows to customize the font and shell of the command line interface. diff --git a/src/compositor.c b/src/compositor.c index 8705950e..20ff6b21 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -4303,10 +4303,12 @@ int main(int argc, char *argv[]) const char *socket_name = NULL; int32_t version = 0; int32_t noconfig = 0; + int32_t numlock_on; struct weston_config *config = NULL; struct weston_config_section *section; struct wl_client *primary_client; struct wl_listener primary_client_destroyed; + struct weston_seat *seat; const struct weston_option core_options[] = { { WESTON_OPTION_STRING, "backend", 'B', &option_backend }, @@ -4477,6 +4479,17 @@ int main(int argc, char *argv[]) if (load_modules(ec, option_modules, &argc, argv) < 0) goto out; + section = weston_config_get_section(config, "keyboard", NULL, NULL); + weston_config_section_get_bool(section, "numlock-on", &numlock_on, 0); + if (numlock_on) { + wl_list_for_each(seat, &ec->seat_list, link) { + if (seat->keyboard) + weston_keyboard_set_locks(seat->keyboard, + WESTON_NUM_LOCK, + WESTON_NUM_LOCK); + } + } + weston_compositor_wake(ec); wl_display_run(display); |