Skip to content

Comments

Add events for the scroll wheel in Linux.#2365

Closed
SaVe-27 wants to merge 1 commit intoTomSchimansky:masterfrom
SaVe-27:scroll_linux
Closed

Add events for the scroll wheel in Linux.#2365
SaVe-27 wants to merge 1 commit intoTomSchimansky:masterfrom
SaVe-27:scroll_linux

Conversation

@SaVe-27
Copy link

@SaVe-27 SaVe-27 commented Apr 9, 2024

My project uses several widgets, however I notice that the scroll wheel does not work on Linux.

In these two files, I add the events to buttons 4 and 5 (along with MouseWheel for Windows and MacOS) and assign a value for each interaction with button 4 (or 5).

Warning

I warn everyone about adding more events with other buttons (1, 2 and 3): in this case, these events maybe affect the user experience with the scroll wheel on Linux, because they interact with the conditional in self._parent_canvas.(x|y )view.

Thank you.

@FedericoSpada
Copy link
Collaborator

Hi,
can you make your changes more similar to the ones made here? #2515
In particular:

  • Button-4 and Button-5 bindings are done only for Linux system;
  • xview_scroll() is called with -1/1 values instead of -10/10 (or maybe, can you justify why you used 10? Since I don't have Linux, I can't try for myself).

Finally, for CTkScrollbar, can you separate Button-4 and Button-5 bindings into 2 separate if-statements:

if sequence is None or sequence == "<Button-4>":
    self._canvas.bind("<Button-4>", self._mouse_scroll_event)
if sequence is None or sequence == "<Button-5>":
    self._canvas.bind("<Button-5>", self._mouse_scroll_event)

Thanks

FedericoSpada added a commit that referenced this pull request Jan 11, 2026
Implemented the MouseWheel scroll detection for the CTkSlider to update its value based on the new attribute scroll_step.
Added the management of MouseWheel scroll detection to CTkScrollbar, even when the command function is not provided. In this way, at least the widget is responsive.
Fixed MouseWheel scroll detection on CTkScrollbar that didn't work on Linux systems.
Fixes #2388, #2777 and replace #2365

Co-Authored-By: Saul Velazquez <141290146+save-27@users.noreply.github.com>
@FedericoSpada
Copy link
Collaborator

I've replicated the changes in another commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants