Skip to content

fix(frame): add widget end inset for edge widgets when Frame is enabled#2600

Closed
ultherego wants to merge 1 commit into
AvengeMedia:masterfrom
ultherego:fix/frame-widget-end-inset
Closed

fix(frame): add widget end inset for edge widgets when Frame is enabled#2600
ultherego wants to merge 1 commit into
AvengeMedia:masterfrom
ultherego:fix/frame-widget-end-inset

Conversation

@ultherego

Copy link
Copy Markdown

Description

When Frame is enabled, edge widgets on both ends of the bar had no inset from the frame corners — _frameLeftInset/_frameRightInset (horizontal bar) and _frameTopInset/_frameBottomInset (vertical bar) fell back to 0 when no adjacent bar was present, causing widgets to sit flush against the frame.
Fixed by introducing _frameEndInset = frameThickness + frameBarEndInset as the fallback value. Also added a Widget End Inset slider in Settings → Frame → Border (default 0, range 0–20px) so users can add extra padding on top of frameThickness.

Type of change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that changes existing behavior)
  • Refactor / internal cleanup
  • Documentation
  • Other

Related issues

Fixes #2597

Screenshots / video

Checklist

  • My code follows the conventions in CONTRIBUTING.md
  • I have tested my changes locally
  • New user-facing strings are wrapped in I18n.tr() with translator context, reusing existing terms where possible
  • Go changes: ran make fmt, added/updated tests, make test passes, and go mod tidy is clean
  • QML changes: ran make lint-qml with no new warnings
  • I have opened a corresponding pull request in dlx-docs to document any new behaviors: https://github.com/AvengeMedia/DankLinux-Docs

@Purian23 Purian23 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together.
Couple things here, I think starting at 0 should be nearly edge to edge as some people will want the overlap. Then you can set a default wherever it lines up to the frame corners as it is now.

It breaks entirely when adding a 2nd or 3rd bar and becomes unresponsive. Removing the bars doesn't reload it and it stays unresponsive until dms restart. These are some of the items I was telling you were tricky that takes a bit more implementation to get correct.

Also the click targets are pretty far off on each end. Some may prefer it, but the defaults should work on the launcher button for example.

I am also in a refactor of the entire frame currently, but this would be a good addition once everything is worked out.

@ultherego

Copy link
Copy Markdown
Author

Thanks for taking a look. In that case, it makes sense to wait for the Frame refactor — this commit can serve as a reference for the future implementation, as you mentioned. I'll close this PR for now and revisit once the refactor is done.

@Purian23 Purian23 marked this pull request as draft June 8, 2026 15:02
@Purian23

Copy link
Copy Markdown
Collaborator

Closing this out as I implemented in another direction via: ad32af6 - Though to note, sometimes framemode can still set incorrectly on the live switch from Standalone to Framemode, I could not fully nail it down. But now we have dedicated setting options in every mode to mitigate.

Thanks for the assist!

@Purian23 Purian23 closed this Jun 23, 2026
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.

Connected frame: bar widget inset lost after restart (Edge Spacing ignored with Frame on)

2 participants