mirror of
https://github.com/labwc/labwc.git
synced 2026-02-16 22:05:27 -05:00
keyboard: allow applying keyboard layout per window
Fixes #1076 It can be enabled with a config like ~/.config/labwc/rc.xml: <keyboard layoutScope="window"> ~/.config/labwc/environment: XKB_DEFAULT_LAYOUT=de,us XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle,grp_led:scroll With a configuration like this each window should now remember the active keyboard layout when switching between windows. By default, the keyboard layout keeps being a global state.
This commit is contained in:
parent
f1c2664ad1
commit
984aeb0b0b
9 changed files with 66 additions and 3 deletions
12
src/view.c
12
src/view.c
|
|
@ -6,6 +6,7 @@
|
|||
#include "common/match.h"
|
||||
#include "common/mem.h"
|
||||
#include "common/scene-helpers.h"
|
||||
#include "input/keyboard.h"
|
||||
#include "labwc.h"
|
||||
#include "menu/menu.h"
|
||||
#include "regions.h"
|
||||
|
|
@ -266,6 +267,17 @@ view_set_activated(struct view *view, bool activated)
|
|||
wlr_foreign_toplevel_handle_v1_set_activated(
|
||||
view->toplevel.handle, activated);
|
||||
}
|
||||
|
||||
if (rc.kb_layout_per_window) {
|
||||
if (!activated) {
|
||||
/* Store configured keyboard layout per view */
|
||||
view->keyboard_layout =
|
||||
view->server->seat.keyboard_group->keyboard.modifiers.group;
|
||||
} else {
|
||||
/* Switch to previously stored keyboard layout */
|
||||
keyboard_update_layout(&view->server->seat, view->keyboard_layout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue