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
8260528: Clean glass-gtk sizing and positioning code #915
Conversation
Merge master
Merge from jfx
merge from jfx
Merge upstream
Merge from upstream
Update from master
Merge from upstream
Merge with main
Merge master
Merge master
Update from jfx
Pull from origin
Merge master
👋 Welcome back tsayao! A progress list of the required criteria for merging this PR into |
|
9fb69ec
to
bfdb4ad
Compare
It's now ready for a re-review. Black header is gone, iconify tests pass. |
I can confirm that the black header area is fixed on 20.04. I'll do some final testing and code review soon. |
I ran a full set of headful tests on both Ubuntu 20.04 and 22.04. The only remaining problem I see is a new failure on one test on both platforms:
That test passes without the patch from this PR. |
It's working now, but I found out that calling With the current solution it is working, but it does send extra |
I can confirm that this fixes the window order test without introducing new test failures. It looks ready for final testing and review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have finished my testing. All looks good, with one problem seen on Ubuntu 16.04 that warrants a P4 follow-up bug (which we may or may not care to fix).
The following test fails consistently on Ubuntu 16.04 with this patch:
DeiconifiedWithChildTest > testDeiconifiedPosition FAILED
java.lang.AssertionError: Child window was moved expected:<343.0> but was:<333.0>
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.failNotEquals(Assert.java:835)
at org.junit.Assert.assertEquals(Assert.java:555)
at test.javafx.stage.DeiconifiedWithChildTest.testDeiconifiedPosition(DeiconifiedWithChildTest.java:99)
I also reviewed the code changes, and they look good (although I did leave one question for you to consider).
Display *display = GDK_DISPLAY_XDISPLAY(gdk_window_get_display(gdk_window)); | ||
Atom rfeAtom = XInternAtom(display, "_NET_REQUEST_FRAME_EXTENTS", True); | ||
static Atom rfeAtom = XInternAtom(display, "_NET_REQUEST_FRAME_EXTENTS", False); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If display could be different for two Windows, then making this static would not be the right thing to do. I don't think it can, so this is probably OK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Atoms are per server, so I also think it's ok.
@johanvos Can you re-review this when you have time? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I looked at the diffs, and re-did my tests. All working as expected on Ubuntu 22.04.
@tsayao This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 5 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
/integrate |
Going to push as commit 0c03a41.
Your commit was automatically rebased without conflicts. |
This cleans size and positioning code, reducing special cases, code complexity and size.
Changes:
update_window_constraints
;process_property_notify
;set_bounds
again to adjust the size (to account decorations later received);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 inset_bounds
withgtk_window_move
andgtk_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 into_front()
andto_back()
to conform to managed code;Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jfx.git pull/915/head:pull/915
$ git checkout pull/915
Update a local copy of the PR:
$ git checkout pull/915
$ git pull https://git.openjdk.org/jfx.git pull/915/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 915
View PR using the GUI difftool:
$ git pr show -t 915
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jfx/pull/915.diff
Webrev
Link to Webrev Comment