Skip to content

phlib: Implement horizontal scrolling via Shift + Mousewheel - #3012

Open
NotEnsoul wants to merge 1 commit into
winsiderss:masterfrom
NotEnsoul:feature/shift-mousewheel-scroll
Open

phlib: Implement horizontal scrolling via Shift + Mousewheel#3012
NotEnsoul wants to merge 1 commit into
winsiderss:masterfrom
NotEnsoul:feature/shift-mousewheel-scroll

Conversation

@NotEnsoul

Copy link
Copy Markdown
Contributor

Summary

This pull request implements horizontal scrolling when holding the Shift key while using the mouse wheel across table, tree, and list controls in the application.

  • TreeNew Control (phlib/treenew.c):

    • Checks for MK_SHIFT flag during WM_MOUSEWHEEL handling.
    • When Shift is held and horizontal scroll is visible (Context->HScrollVisible), routes mouse wheel turns to PhTnpProcessMouseHWheel with inverted delta (-Distance), enabling smooth horizontal scrolling.
    • Falls back gracefully to vertical scrolling if horizontal scrolling is unavailable or Shift is not held.
    • Automatically enables Shift + mousewheel horizontal scrolling across all process, service, network, handle, module, thread, memory, disk, and plugin tables.
  • Extended ListView (phlib/extlv.c):

    • Intercepts WM_MOUSEWHEEL in PhpExtendedListViewWndProc when MK_SHIFT is active.
    • Calculates scroll distance using SPI_GETWHEELSCROLLCHARS and dispatches WM_HSCROLL (SB_LINERIGHT / SB_LINELEFT) messages for horizontal scrolling.
  • Theme Engine (phlib/theme.c):

    • Added WM_HSCROLL and WM_MOUSEHWHEEL invalidation support to PhpThemeWindowACLUISubclassProc.

Resolves

@NotEnsoul
NotEnsoul requested review from dmex and jxy-s as code owners July 27, 2026 01:56
@dmex dmex self-assigned this Jul 28, 2026
@dmex dmex added the enhancement New feature or request label Jul 28, 2026
@dmex dmex linked an issue Jul 28, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FR: Scroll horizontally on Shift+MouseWheel

2 participants