Power button
The power button switches the CrossPad on and off, and it is also the back button. A short click steps back one level. A longer hold moves the encoder to the transport or switches the CrossPad off. The timing is the same in every app.
Click or hold
Section titled “Click or hold”| What you do | How long | What happens |
|---|---|---|
| Click | let go within 0.5 s | Back, one step (see below). |
| Hold | 0.5 s | The encoder jumps to the transport keys at the top of the screen. Hold again to jump back. |
| Hold | 4 s | The CrossPad switches off. Set the time in Settings → System → Power Long-Press (1 to 4 s). |
| Hold, on battery | 7 s | Ship mode: the battery is disconnected for storage or shipping. See Get started. |
| Hold while off | about 1.5 s | The CrossPad switches on. |
In the PC simulator, Space or Ctrl is the power button: tap it for a click, hold it for a hold.
What a click closes
Section titled “What a click closes”A click closes the first of these that is open, and only that one:
- An open dropdown list.
- A dialog or overlay, the newest first.
- A value you are changing with the encoder.
- The encoder’s place on the transport keys: it goes back to the screen it came from.
- The running app: the app’s own back step first. An app without one closes.
On the MODE map a click has nothing left to close.
Rules for app authors
Section titled “Rules for app authors”- An app with levels of its own (a settings screen with sub-pages, a wizard) sets a back handler with
setOnBack()in its create function. The handler steps back one level and returnstrue. On the app’s top level it returnsfalse, and the app closes. - A layer that opens over the app, such as a file browser over an editor, registers itself with
ui_back_push(fn, user)when it opens and callsui_back_remove(token)from its delete event. Each click then closes exactly one layer, the newest first. UsesetOnBack()for the app’s own levels and the stack for layers you create on the fly. - To give the encoder back to a group you saved, call
lv_indev_restore_group(indev, saved)from crosspad-guiwidgets/gui_helpers.h. It checks that the group still exists and leaves the encoder alone when it does not. Always restore a saved group this way, never by writing the pointer back directly.