Closed mentlerd closed 1 month ago
Is this really a native macOS feature? None of my Windows allow for that by default. I'm using the Rectangle app though that adds gestures like that which seems to work fine on ImHex as well. Are you using a tool like that as well maybe?
Is this really a native macOS feature? None of my Windows allow for that by default. I'm using the Rectangle app though that adds gestures like that which seems to work fine on ImHex as well. Are you using a tool like that as well maybe?
It is, you can find the setting here:
On the other hand I was not aware that there are multiple options here. The code now handles them all: https://github.com/WerWolv/ImHex/pull/1689/commits/66223e09dd8f4b2f028c01c2e1331b4739e852dd
While testing I have also found a couple of small bugs relating to window resizing/minimizing. Squashed those too. I'll update the PR description in a moment
Attention: Patch coverage is 0%
with 9 lines
in your changes are missing coverage. Please review.
Project coverage is 1.51%. Comparing base (
666dc7d
) to head (a62127a
).
Files | Patch % | Lines |
---|---|---|
main/gui/source/window/window.cpp | 0.00% | 9 Missing :warning: |
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Problem description
Problem 1
In borderless mode ImHex disables the standard macOS titlebar rendering and input processing. As a result double clicking the titlebar does not trigger the native macOS behavior set in
System Settings -> Desktop & Dock -> Double-click a window's title bar to [Zoom/Minimize/Do nothing]
.Problem 2
The ImHex window shows up as blank/transparent when de-minimizing it from the dock.
Problem 3
Widgets experience ghost hover inputs from the past position of the cursor during live resizing.
Implementation description
ImGui elements consume input events in the order they are drawn. As a result by "drawing" an
InvisibleButton
over the content area of the titlebar we can catch unprocessed clicks in the titlebar area. Connecting this button's double clicks to the native window is then a trivial endeavour.The blank windows was caused by the rendering stack clearing the GL buffer, but proceeding to draw nothing in it. I have short circuited this path.
Ghost hover inputs were squelched by consistently moving the ImGui cursor to
0, 0
during a live resize. The OS will dispatch a cursor positioning event once the resizing ends, restoring normal behavior.Screenshots
N/A
Additional things
N/A