On Tue, 17 Jan 2023 18:52:33 GMT, Thiago Milczarek Sayao <tsa...@openjdk.org> 
wrote:

>> This cleans size and positioning code, reducing special cases, code 
>> complexity and size.
>> 
>> Changes:
>> 
>> - cached extents: 28, 1, 1, 1 are old defaults - modern gnome uses different 
>> sizes. It does not assume any size because it varies - it does cache because 
>> it's unlikely to vary on the same system - but if it does occur, it will 
>> only waste a resize event.
>> - window geometry, min/max size are centralized in 
>> `update_window_constraints`;
>> - Frame extents (the window decoration size used for "total window size"):
>>     - frame extents are received in `process_property_notify`;
>>     - removed quirks in java code;
>>     - When received, call `set_bounds` again to adjust the size (to account 
>> decorations later received);
>> - Removed `activate_window` because it's the same as focusing the window. 
>> `gtk_window_present` will deiconify and focus it.
>> - `ensure_window_size` was a quirk - removed;
>> - `requested_bounds` removed - not used anymore;
>> - `window_configure` incorporated in `set_bounds` with `gtk_window_move` and 
>> `gtk_window_resize`;
>> - `process_net_wm_property` is a work-around for Unity only (added a check 
>> if Unity - but it can probably be removed at some point)
>> - `restack` split in `to_front()` and `to_back()` to conform to managed code;
>> - Set `gtk_window_set_focus_on_map` to FALSE because if TRUE the Window 
>> Manager changes the window ordering in the "focus stealing" mechanism - this 
>> makes possible to remove the quirk on `request_focus()`;
>> - Note:  `geometry_get_*` and `geometry_set_*` moved location but unchanged.
>
> Thiago Milczarek Sayao has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Revert "Remove duplicated set_events"
>   
>   This reverts commit 077b8df9238679e05b491f015b89670c9ca332a4.

I installed a new Ubuntu 20.04 VM.

This is the result with the print statements.


// this is the Java call to set the size based on Window (not content)
set_bounds -> w = 500, h = 300, cw = -1, ch = -1
// those are the values notified to java (frame extents not received yet)
notify window size -> w = 500, h = 300
notify view size -> cw = 500, ch = 300
// frame extents received, this is the call to set bounds to adjust decoration 
sizes
set_bounds -> w = 500, h = 300, cw = 500, ch = 263
// those are the values reported to java (note that h is now 263)
notify window size -> w = 500, h = 300
notify view size -> cw = 500, ch = 263
notify window size -> w = 500, h = 300
notify view size -> cw = 500, ch = 263
// this is the paint received from java - values are correct
paint -> 500, 263
paint -> 500, 263


The addition of the print statements made the glitch disappear.

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

PR: https://git.openjdk.org/jfx/pull/915

Reply via email to