compositor: add an option to set the default numlock value
authorGiulio Camuffo <giuliocamuffo@gmail.com>
Thu, 28 Aug 2014 16:44:10 +0000 (19:44 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Wed, 3 Sep 2014 12:31:31 +0000 (15:31 +0300)
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>
man/weston.ini.man
src/compositor.c

index ccd7185..c05a221 100644 (file)
@@ -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.
index 8705950..20ff6b2 100644 (file)
@@ -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);