Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement empty-area drag. #5860

Merged
merged 1 commit into from
Dec 25, 2020
Merged

Implement empty-area drag. #5860

merged 1 commit into from
Dec 25, 2020

Conversation

phoerious
Copy link
Member

Uses Qt 5.15's new QWindow::startSystemMove() to implement empty-area drag, which allows the user to click and drag any empty area on the menubar, toolbar, or tabbar to move the window around.

This was part of another futile attempt at implementing properly style CSDs on Windows. This time, I tested this new Qt feature for it: https://www.qt.io/blog/custom-window-decorations
Turns out, the feature is pretty useless for the thing it was designed for (https://bugreports.qt.io/browse/QTBUG-84466), but we can use it to implement empty-area drag without any custom window moving logic.

Type of change

  • ✅ New feature (change that adds functionality)

@phoerious phoerious added this to the v2.7.0 milestone Dec 22, 2020
@phoerious phoerious force-pushed the feature/empty-area-drag branch from 6d73dc7 to 9b21d88 Compare December 22, 2020 00:15
@droidmonkey
Copy link
Member

Fixed up the implementation to prevent crashing on close.

@phoerious
Copy link
Member Author

Okay, interesting. Never had any crashes and I thought the QPointer would take care of everything. But the fix looks good.

@droidmonkey
Copy link
Member

I didn't realize how much I like that feature

@phoerious
Copy link
Member Author

Yes, it was definitely missing and completes the UX when you think of the whole top part as one thing. Now we only need to find a way to adjust the titlebar colour on Windows.

@phoerious phoerious force-pushed the feature/empty-area-drag branch 2 times, most recently from d38c57d to 627e0aa Compare December 22, 2020 14:59
@phoerious
Copy link
Member Author

phoerious commented Dec 22, 2020

I fixed some interference with movable tabs on macOS and movable toolbars.

Uses Qt 5.15's new QWindow::startSystemMove() to implement empty-area
drag, which allows the user to click and drag any empty area on the
menubar, toolbar, or tabbar to move the window around.
@phoerious phoerious force-pushed the feature/empty-area-drag branch from 627e0aa to 3984739 Compare December 22, 2020 15:00
@droidmonkey droidmonkey merged commit 37dab85 into develop Dec 25, 2020
@droidmonkey droidmonkey deleted the feature/empty-area-drag branch December 25, 2020 18:42
@droidmonkey
Copy link
Member

Works perfectly

@phoerious phoerious mentioned this pull request Jan 7, 2021
phoerious added a commit that referenced this pull request Jan 12, 2021
Added

- Support Argon2id KDF [#5778]
- Support XMLv2 key files [#5798]

Changed

- Improve CSV Import/Export, include time fields and TOTP [#5346]
- Support empty area dragging of the application window [#5860]
- Display default Auto-Type sequence in preview pane [#5654]
- Remove strict length limit on generated passwords [#5748]
- Hide key file path by default when unlocking database [#5779]
- Document browser extension use with Edge in managed mode [#5692]
- Windows: Prevent clipboard history and cloud sync [#5853]
- macOS: Update the application icon to Big Sur styling [#5851]

Fixed

- Re-select previously selected entry on database unlock [#5559]
- Properly save special character choice in password generator [#5610]
- Fix crash in browser integration with multiple similar entries [#5653]
- Remove offset on username field in classic theme [#5788]
- Ensure entry history is copied when drag/dropping entries and groups [#5817]
- Close modal dialogs when database is locked [#5820]
- Prevent crash when KeeShare modifies an entry that is currently being edited [#5827]
- Improve preview of entry attributes [#5834]
- Always activate/focus database open dialog preventing mistype [#5878]
- Reports: fix calculation of average password length [#5862]
- Linux: Delay startup on login to correct tray icon issues [#5724]
aswild added a commit to aswild/keepassxc that referenced this pull request Jan 13, 2021
Release 2.6.3

Added

- Support Argon2id KDF [keepassxreboot#5778]
- Support XMLv2 key files [keepassxreboot#5798]

Changed

- Improve CSV Import/Export, include time fields and TOTP [keepassxreboot#5346]
- Support empty area dragging of the application window [keepassxreboot#5860]
- Display default Auto-Type sequence in preview pane [keepassxreboot#5654]
- Remove strict length limit on generated passwords [keepassxreboot#5748]
- Hide key file path by default when unlocking database [keepassxreboot#5779]
- Document browser extension use with Edge in managed mode [keepassxreboot#5692]
- Windows: Prevent clipboard history and cloud sync [keepassxreboot#5853]
- macOS: Update the application icon to Big Sur styling [keepassxreboot#5851]

Fixed

- Re-select previously selected entry on database unlock [keepassxreboot#5559]
- Properly save special character choice in password generator [keepassxreboot#5610]
- Fix crash in browser integration with multiple similar entries [keepassxreboot#5653]
- Remove offset on username field in classic theme [keepassxreboot#5788]
- Ensure entry history is copied when drag/dropping entries and groups [keepassxreboot#5817]
- Close modal dialogs when database is locked [keepassxreboot#5820]
- Prevent crash when KeeShare modifies an entry that is currently being edited [keepassxreboot#5827]
- Improve preview of entry attributes [keepassxreboot#5834]
- Always activate/focus database open dialog preventing mistype [keepassxreboot#5878]
- Reports: fix calculation of average password length [keepassxreboot#5862]
- Linux: Delay startup on login to correct tray icon issues [keepassxreboot#5724]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants