Skip to content

Conversation

@ner216
Copy link

@ner216 ner216 commented Jan 16, 2026

This PR introduces a new panel visibility option called 'Intelligent (dodge all windows)'. It also renames the previous 'Intelligently hide panel' to 'Intelligent (dodge active window)'. The new option will make the panel hide if any window overlaps it, even if that window is not the active window. This option will stop the panel from popping up and down if the user is clicking between windows that may or may not cover the panel(such as if one window covers the panel and the other does not).

Changes:

  • cs_panel.py: Added the 'dodgeall' visibility option and label and renamed the 'intel' visibility option label.
  • panel.js: Implemented logic for the 'Intelligent (dodge all windows)' option in the _updatePanelVisibility function.

Testing:

  • I tested the new feature on a bare-metal system running Mint 22.3 Zena.
  • I tested functionality across multiple desktops as well as multiple monitors.
  • I verified that all options in the panel visibility drop-down menu still function and switch properly.

I copied the code to calculate window x/y as well as the code for determining if a window overlaps the panel from the original intelligent auto-hide case. I did this with the intention of keeping the code simple. Please let me know if there is a preferable or simpler approach. This is my first contribution to Cinnamon. I have tested this on bare metal and have not encountered any bugs, but I would appreciate a closer look at the logic to ensure that it aligns with the project's standards such as performance and code formatting.

@ner216 ner216 marked this pull request as draft January 17, 2026 04:10
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.

1 participant