qmk/qmk_firmware

[Bug] Oled scrolling won't resume after oled_timeout.

Open

#20,458 opened on Apr 15, 2023

View on GitHub
 (1 comment) (0 reactions) (0 assignees)C (43,867 forks)batch import
bughelp wanted

Repository metrics

Stars
 (20,368 stars)
PR merge metrics
 (Avg merge 20d 9h) (27 merged PRs in 30d)

Description

Describe the Bug

A scrolling oled screen enabled with oled_scroll_left()/oled_scroll_right() won't resume scrolling after OLED_TIMEOUT.

Keyboard Used

draculad

Link to product page (if applicable)

No response

Operating System

No response

qmk doctor Output

No response

Is AutoHotKey / Karabiner installed

  • AutoHotKey (Windows)
  • Karabiner (macOS)

Other keyboard-related software installed

No response

Additional Context

I took a look into drivers/oled/ssd1306_sh1106.c and the problem seems to be oled_off() does stop the oleds but keeps the oled_scrolling variable to true and due to that, posterior calls to oled_scroll_right() and oled_scroll_left() do nothing.

I fixed it in a naive way ignoring the oled_scrolling check: https://pastebin.com/raw/Z91cjUTma

Contributor guide