@@ -39,22 +39,24 @@ pub fn OnScreenKeyboard(
3939 vec![ "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "0" ] ,
4040 vec![ "q" , "w" , "e" , "r" , "t" , "y" , "u" , "i" , "o" , "p" ] ,
4141 vec![ "a" , "s" , "d" , "f" , "g" , "h" , "j" , "k" , "l" ] ,
42- vec![ "z" , "x" , "c" , "v" , "b" , "n" , "m" ] ,
42+ vec![ "z" , "x" , "c" , "v" , "b" , "n" , "m" , "." ] ,
4343 ] ;
4444 let rows_upper = vec ! [
4545 vec![ "!" , "@" , "#" , "$" , "%" , "^" , "&" , "*" , "(" , ")" ] ,
4646 vec![ "Q" , "W" , "E" , "R" , "T" , "Y" , "U" , "I" , "O" , "P" ] ,
4747 vec![ "A" , "S" , "D" , "F" , "G" , "H" , "J" , "K" , "L" ] ,
48- vec![ "Z" , "X" , "C" , "V" , "B" , "N" , "M" ] ,
48+ vec![ "Z" , "X" , "C" , "V" , "B" , "N" , "M" , "." ] ,
4949 ] ;
5050
5151 view ! {
5252 <div class="osk" >
5353 { move || {
5454 let rows = if shift. get( ) { & rows_upper } else { & rows_lower } ;
5555 rows. iter( ) . enumerate( ) . map( |( row_idx, row) | {
56+ // The home row (a s d f …) gets a half-key indent for a real-keyboard stagger
57+ let row_class = if row_idx == 2 { "osk-row osk-row-home" } else { "osk-row" } ;
5658 view! {
57- <div class="osk-row" >
59+ <div class=row_class >
5860 { if row_idx == 3 {
5961 let on_key_shift = on_key;
6062 Some ( view! {
@@ -76,10 +78,10 @@ pub fn OnScreenKeyboard(
7678 </button>
7779 }
7880 } ) . collect_view( ) }
79- { if row_idx == 3 {
81+ { if row_idx == 1 {
8082 let on_key_bs = on_key;
8183 Some ( view! {
82- <button class="osk-key osk-key-wide" on: click=move |_| on_key_bs( "Backspace" . into( ) ) >{ move || i18n . get ( ) . t ( "keyboard.bksp" ) } </button>
84+ <button class="osk-key osk-key-wide" on: click=move |_| on_key_bs( "Backspace" . into( ) ) >"←" </button>
8385 } )
8486 } else {
8587 None
@@ -90,11 +92,9 @@ pub fn OnScreenKeyboard(
9092 } }
9193 <div class="osk-row" >
9294 {
93- let on_key_dot = on_key;
9495 let on_key_space = on_key;
9596 let on_key_enter = on_key;
9697 view! {
97- <button class="osk-key" on: click=move |_| on_key_dot( "." . into( ) ) >"." </button>
9898 <button class="osk-key osk-key-space" on: click=move |_| on_key_space( "Space" . into( ) ) >{ move || i18n. get( ) . t( "keyboard.space" ) } </button>
9999 <button class="osk-key osk-key-wide" on: click=move |_| on_key_enter( "Enter" . into( ) ) >{ move || i18n. get( ) . t( "keyboard.enter" ) } </button>
100100 }
0 commit comments