On Thu, 27 Aug 2026 12:53:25 GMT, Michael Strauß <[email protected]> wrote:

>> Thiago Milczarek Sayao has updated the pull request with a new target base 
>> due to a merge or a rebase. The pull request now contains 43 commits:
>> 
>>  - Merge branch 'master' into 8354943_v2
>>  - mapped = true for popups
>>  - Do not block sent configure events, as doing so breaks screen-change 
>> detection.
>>  - - Restore gdk_event_request_motions (it's needed even without event 
>> compression)
>>    - Remove cursor unref (it's aready de-referenced on gdk_window_set_cursor)
>>    - Improve XComposite message
>>  - Remove configurable delays
>>  - Fix test
>>  - Xorg fixes
>>  - Revert "Rewrite WrongStageFocusWithApplicationModalityTest because it 
>> fails intermittently"
>>    
>>    This reverts commit c6b9dd745e5d762adb89a3b596e53b0d8a790d7f.
>>  - Rewrite WrongStageFocusWithApplicationModalityTest because it fails 
>> intermittently
>>  - Use existing verbose flag for GTK
>>  - ... and 33 more: https://git.openjdk.org/jfx/compare/58a7bea2...969ed5f3
>
> modules/javafx.graphics/src/main/native-glass/gtk/glass_window.cpp line 940:
> 
>> 938:     if (xSet && gravity_x > 0 && dx != 0) {
>> 939:         x -= gravity_x * static_cast<float>(dx);
>> 940:         if (x < 0) x = 0;
> 
> Why is `x` (and `y`) clamped to zero? Couldn't a monitor to the left of the 
> primary monitor have negative coordinates?

Yes, fixed it.

> modules/javafx.graphics/src/main/native-glass/gtk/glass_window.cpp line 1472:
> 
>> 1470:     if (frame_type == TITLED && (initial_wmf & GDK_FUNC_MINIMIZE)) {
>> 1471:         if (!enabled) {
>> 1472:             remove_wmf(GDK_FUNC_MINIMIZE);
> 
> If we are here, it means that `initial_wmf` contains `GDK_FUNC_MINIMIZE`. 
> However, both `remove_wmf()` and `add_wmf()` check `initial_wmf`, which makes 
> this entire operation a no-op:
> 
> if (initial_wmf & wmf) return;
> 
> 
> Maybe we need a different approach here, for example:
> 
> if (!enabled) {
>     current_wmf = static_cast<GdkWMFunction>(
>         static_cast<int>(current_wmf) & ~static_cast<int>(GDK_FUNC_MINIMIZE));
> } else {
>     current_wmf = static_cast<GdkWMFunction>(
>         static_cast<int>(current_wmf) | static_cast<int>(initial_wmf & 
> GDK_FUNC_MINIMIZE));
> }
> 
> gdk_window_set_functions(gdk_window, current_wmf);

Fixed it, but will only work on older window managers such as xfwm4. Modern 
mutter (gnome) or kwin (kde) will ignore the request.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/2139#discussion_r3944646763
PR Review Comment: https://git.openjdk.org/jfx/pull/2139#discussion_r3944645887

Reply via email to