Skip to content

Commit a59c7a6

Browse files
committed
fix: Add interface to obtain all keyboard layouts
Add interface to obtain all keyboard layouts pms: BUG-320219
1 parent 74b5ba8 commit a59c7a6

3 files changed

Lines changed: 25 additions & 0 deletions

File tree

inputdevices1/exported_methods_auto.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

inputdevices1/ifc.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,18 @@ func (kbd *Keyboard) LayoutList() (map[string]string, *dbus.Error) {
7878
return result, nil
7979
}
8080

81+
func (kbd *Keyboard) AllLayoutList() (map[string]string, *dbus.Error) {
82+
result := kbd.layoutMap.getAll()
83+
kbd.PropsMu.RLock()
84+
for _, layout := range kbd.UserLayoutList {
85+
layoutDetail := kbd.layoutMap[layout]
86+
result[layout] = layoutDetail.Description
87+
}
88+
kbd.PropsMu.RUnlock()
89+
90+
return result, nil
91+
}
92+
8193
func (kbd *Keyboard) GetLayoutDesc(layout string) (string, *dbus.Error) {
8294
if len(layout) == 0 {
8395
return "", nil

inputdevices1/layout_list.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ func (layoutMap layoutMap) filterByLocales(locales []string) map[string]string {
114114
return result
115115
}
116116

117+
func (layoutMap layoutMap) getAll() map[string]string {
118+
result := make(map[string]string)
119+
for layout, layoutDetail := range layoutMap {
120+
result[layout] = layoutDetail.Description
121+
}
122+
return result
123+
}
124+
117125
func (v *layoutDetail) matchAnyLang(languages []string) bool {
118126
for _, l := range languages {
119127
for _, ll := range v.Languages {

0 commit comments

Comments
 (0)