eoakley / artifacthelper

Helps you pick cards in draft mode on Valve's Artifact game. Made with Python.
GNU General Public License v3.0
39 stars 9 forks source link

Overlay postition depends on launch window position #2

Closed BudgieInWA closed 5 years ago

BudgieInWA commented 5 years ago

When I switching from the Launch Window to the overlay, the window doesn't move and so the overlay is offset towards the bottom right (depending on the position of the original window). These screenshots demonstrate it.

Notice the position of the top left corner of the launch window: artifacthelper launch window

Notice the the overlay is starting at that same location: artifacthelper overlay

(Also of note, the overlay is in the screenshot, so it covers up the names of some cards which aren't recognised. The overlay in this position would actually cause the right_border to fail, but I hard coded that during theses tests.)

If I move the Launch Window, launch the Overlay, then close the Overlay, the Launch Window does return to its hard coded size/location.


It looks like this root.geometry() call is failing to set the position. No matter what numbers I put in place of (100, 0), the overlay origin is always the same as the top left of the launch window.

As a workaround I position the launch window at (100, 0) on line 280 and don't move it.

Miojo commented 5 years ago

Helo BudgieInWA , Thanks for the input.

The issue seems to be related to tkinter .

What resolution is your monitor? Are you building the code locally or using the Installer? If building locally what is your python version?

Miojo commented 5 years ago

New version has a button to drag the overlay, it will help with this issue while we can't pinpoint the error.

BudgieInWA commented 5 years ago

Are you building the code locally or using the Installer?

I am using installer v0.6 and editing pkgs/artifact_helper.py etc. in place.

My monitor is 1920 * 1080.

eoakley commented 5 years ago

Please give it another shot on the latest release.

If you still have problems, open a new issue with the following:

Thanks for the help

BudgieInWA commented 5 years ago

It is strange that root.geometry('+x+y') works for the dragging but not while the overlay is being constructed. In any case, I can run root.geometry('+100+0') when the scan button is clicked and it repositions the window correctly!

Maybe this particular bug can be worked around by adding if outOfPosition(root): root.geometry(...) to the scan button. Maybe the overlay should always be exactly root.geometry("{}x{}+{}+{}".format(screen_width, screen_height, 0, 0))` with the position of the banner and cards positioned relative to the card bounding box. If that was true, #10 could still be used to locate the cards on screen, but without moving the window.