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
All dialogs and windows of NVDA should be centered on the screen #3148
Comments
Comment 1 by jteh on 2013-04-13 00:11 It'd be good if you can give an example of one dialog that is centred and displays correctly and one that doesn't. That way, we might have a chance of figuring this out. Note that Mick and I are both totally blind, so someone else with sight would be much better suited to look at this if possible. |
Comment 3 by k_kolev1985 on 2013-04-13 07:24 Yes, WX may have the ability to handle such situations, but it seams not to work as it should. For example, it seams not to be able to split labels of controls on 2 or more lines if necessary and if the labels in question are too long, the width of the dialog gets too long, causing its right side to be partially hidden. Well, it is not easy to explain for me, unfortunately. To understand it, the person probably have to be able to see it. Hope that someone at least partially sighted can help in this situation. |
Comment 4 by nvdakor on 2013-05-06 22:21 |
Comment 5 by nvdakor on 2013-05-06 22:44
|
Comment 6 by nvdakor on 2013-05-06 22:52
|
Comment 7 by nishimotz on 2013-10-06 15:35
|
Comment 8 by k_kolev1985 on 2014-09-11 17:29 If I'm not mistaking, current "next" snapshots are using WX Python 3.0.1, witch is newer than the version used before (maybe it was 2.7.x). I don't know if from that or from some other change, but now the placement of the NVDA dialogs and windows is more ordered. The dialogs for download and update/installation progress of NVDA are centered on the screen. The ones with the settings, for updates notifications and donation prompt are not however - they are (maybe intentionally) top-left aligned, with a small offset from the top and left edges of the screen. Although from my point of view (I think all dialogs should be centered) this is not the best solution, it is much better than it was before (when I did the report). So, it is an improvement. |
Comment 9 by driemer.riemer@... on 2014-09-11 20:13 |
Comment 10 by nvdakor (in reply to comment 8) on 2014-10-01 03:46
I can confirm this- all dialogs except a few standard WX dialogs are aligned more towards top left of the screen (observed in next branch with WXPython 3.0.1 installed, not to be confused with actual Python which is still 2.7.x). To confirm this, try:
The desktop object, being the top shell object, returns the actual screen resolution of the screen you are using (in my case, 1600x1200). The second line returns the coordinates of the foreground (top-level) window in pixels. As I described in a previous comment, a centered window should have differing readings to make it appear centered. I think our next order of business is to go through the list of skewed dialogs (see comment 6) and see what's causing this behavior (and I think a completely blind developer can come up with a solution, given if he or she can keep track of pixel coordinate readings). |
Comment 11 by nvdakor (in reply to comment 7) on 2014-10-01 03:56
@nishimotz]: Can you see if your patch works in t3763 branch in source code form, and do you know if WXPython provides a more convenient method to center the settings dialog (itself inheriting WX.Dialog) without going through the hack described above? |
Comment 12 by nvdakor (in reply to comment 9) on 2014-10-01 04:43
From source code testing, self.Center() doesn't help if you use it with WXPython 3.0.1. If I add:
in gui.settingsDialogs, the result becomes a dialog that is positioned at the top left corner of the screen. The patch submitted in comment 7 is a hack that indeed works, but it works only in source code form, but as soon as I install the official next snapshot, settings dialogs are again skewed to the top left corner of the screen, which isn't really ideal. |
Comment 13 by jteh on 2014-10-01 04:43 To find the dialogs that need this, just search for wx.Dialog. These can be found in all of these files:
|
Comment 14 by nishimotz on 2014-10-01 08:16 |
Comment 15 by nishimotz on 2014-10-02 13:58
is a fork from the next (i.e. wxPython 3.0-based) branch. Most of the dialogs which @jteh mentioned were fixed and confirmed. I have just added
at the end of their init methods. |
Comment 16 by jteh (in reply to comment 15) on 2014-10-02 22:30
For future reference, branches should never be based on next, as next can never be merged into master. It's okay to base a branch on another topic branch if it depends on that code; e.g. this could be based on t3763 which is the wxPython 3 upgrade. Don't worry about it for this case; I should be able to cherry-pick/rebase your branch. |
Comment 17 by nishimotz on 2014-10-30 13:59
is based on master branch revision 1c590c2, manually cherry-picked from previous work. Thank you. |
Comment 18 by James Teh <jamie@... on 2014-11-06 06:53
|
Comment 19 by James Teh <jamie@... on 2014-11-06 06:53
Changes:
|
Comment 20 by jteh on 2014-11-07 02:35 |
Comment 21 by k_kolev1985 on 2014-11-10 11:12 |
Comment 22 by James Teh <jamie@... on 2014-11-11 03:59
|
Comment 23 by nishimotz on 2014-11-11 11:22
|
Comment 24 by jteh on 2014-11-11 12:19 |
Comment 25 by nishimotz on 2014-11-11 12:38 |
Comment 26 by Michael Curran <mick@... on 2014-12-02 01:23
Changes:
|
Comment 27 by mdcurran on 2014-12-02 01:23 |
Reported by k_kolev1985 on 2013-04-12 15:11
At present, most dialogs and windows of NVDA seam to be scattered around the screen. Some of them are in the center and are fully visible, but some of them begin from the center and due to their wideness or height, are partially hidden on the right or bottom. The low screen resolution (on my screen is 800x600) also helps for that issue to occur. I see that on the left and top of the screen there is enough space for those dialogs and windows to fit fully in the screen horizontally or vertically (even with 800x600 screen resolution), but it seams that those dialogs and windows are set to have a specific offset (in pixels maybe) from the top and left, witch in some cases is too much.
I have a program for manage of windows witch has a command to position a window in the center of the screen. When I execute that command for those problematic NVDA windows and dialogs, they fit perfectly in the screen (even with my low resolution). So basically, I think that the NVDA windows and dialogs should have a position attribute with a "center" value, so they are centered on the screen when spawned from NVDA (if that is possible to implement).
Blocking #2192
The text was updated successfully, but these errors were encountered: