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>
dev
Giulio Camuffo 10 years ago committed by Pekka Paalanen
parent 6ef444d094
commit de7e2b3ce3
  1. 6
      man/weston.ini.man
  2. 13
      src/compositor.c

@ -446,6 +446,12 @@ sets the delay in milliseconds since key down until repeating starts (unsigned
integer) integer)
.RE .RE
.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" .SH "TERMINAL SECTION"
Contains settings for the weston terminal application (weston-terminal). It Contains settings for the weston terminal application (weston-terminal). It
allows to customize the font and shell of the command line interface. allows to customize the font and shell of the command line interface.

@ -4303,10 +4303,12 @@ int main(int argc, char *argv[])
const char *socket_name = NULL; const char *socket_name = NULL;
int32_t version = 0; int32_t version = 0;
int32_t noconfig = 0; int32_t noconfig = 0;
int32_t numlock_on;
struct weston_config *config = NULL; struct weston_config *config = NULL;
struct weston_config_section *section; struct weston_config_section *section;
struct wl_client *primary_client; struct wl_client *primary_client;
struct wl_listener primary_client_destroyed; struct wl_listener primary_client_destroyed;
struct weston_seat *seat;
const struct weston_option core_options[] = { const struct weston_option core_options[] = {
{ WESTON_OPTION_STRING, "backend", 'B', &option_backend }, { 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) if (load_modules(ec, option_modules, &argc, argv) < 0)
goto out; 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); weston_compositor_wake(ec);
wl_display_run(display); wl_display_run(display);

Loading…
Cancel
Save