fix(gui): make the Settings app actually apply changes

The Settings window rendered fine but its controls only mutated the app's local
settings_data_t -- nothing was ever wired to the running system, so toggling
options did nothing ("not working").

- Appearance: "Show wallpaper grid overlay" now calls gui_desktop_set_grid()
  live; the desktop grid shows/hides immediately.
- Input: "Show seconds in taskbar clock" now calls gui_desktop_set_clock_seconds();
  the taskbar clock switches between HH:MM and HH:MM:SS.
- Power: the CPUFreq governor radios now call cpufreq_set_governor() (mapping the
  UI order to the enum), and Apply/Defaults push all preferences to the system.
- The app seeds its controls from live state on open (grid/clock/governor), so it
  reflects reality instead of hard-coded defaults.

Also add public gui_desktop_set_grid/get_grid and set/get_clock_seconds, and
give Settings a dedicated event handler that frees its state on close (the
shared app_forward_event leaked it).

Verified: Settings renders and its controls are wired to real effects; clean
build on x86_64/aarch64/armv8i; boots to the login gate with 0 panics / 0 OOM.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Fh5z6V7nGPbHvqVG5p4CXX
This commit is contained in:
subhobhai943andClaude Opus 4.8 committed 2026-08-25 21:42:19 +05:30
1 parent 0377726615
commit ef6714a004
3 files changed
+75 -14

No files matched your search

+8
View File
@@ -32,6 +32,14 @@ bool gui_desktop_handle_click(int mx, int my);
// Height of the area windows may occupy (screen minus taskbar).
int gui_desktop_workarea_height(void);
// Wallpaper grid overlay (also toggled from the desktop context menu).
void gui_desktop_set_grid(bool on);
bool gui_desktop_get_grid(void);
// Taskbar clock: show seconds (HH:MM:SS) instead of HH:MM.
void gui_desktop_set_clock_seconds(bool on);
bool gui_desktop_get_clock_seconds(void);
void gui_desktop_request_exit(void);
int gui_desktop_run(void);