It is gone now, maybe I was looking at an old version of the code? In the git history you can still see it on line 546.
On the road > Am 07.09.2023 um 01:38 schrieb dr_c...@me.com: > > So I read the code again, and I just wasn't able to find where I was > dividing twice. I set a rule that I only preformed division at the NSEvent > construction site (to ensure that all the math that happens up until that > point was surly in pixels. Would you mind showing me the line. I assume it > it's in XGServerEvent.m. I might just be tired, or I confused myself. Thanks! > >> On Sep 6, 2023, at 3:37 AM, Fred Kiefer <fredkie...@gmx.de> wrote: >> >> This looks a lot better, though I only looked at the back part. There are a >> few typos and at one place (mouse events) you are doing the division twice. >> >> Cheers, >> Fred >> >> On the road >> >>>> Am 06.09.2023 um 04:31 schrieb dr_c...@me.com: >>>> >>> Hello All, >>> >>> I just finished rebasing my code on the current libs-gui and libs-back and >>> cleaning it up so it follows the current indentation conventions for >>> GNUStep. I compiled it, and it all works (except for one bug that I am >>> trying to track down that may be unrelated). The links below should work >>> with the better re-based code. >>> >>> (1) libs-back >>> https://github.com/austintatiousness/libs-back/tree/improved-screen-maths >>> (2) libs-gui >>> https://github.com/austintatiousness/libs-gui/tree/improved-screen-maths >>> >>> Bug: >>> There is one bug that I am still trying to track down that I believe is >>> from GORM files or deferred windows. In a 2x scale factor, they display >>> still at half the height. No idea why. It might have to do with the order >>> the the screen gets attached to the window? Maybe they are deferred? >>> Something I notice was that when the affected windows are allocated and >>> first set up, the correct sizes are reported to libs-gui and libs-base (i >>> tracked this with a bunch of NSLogs), but at some points libs-base sends >>> another NSEvent with it half the size causing the window to resize to half >>> the size. Maybe there is a rect cached somewhere that it is using and math >>> is preformed on it to cut it in half. I just can't figure where the event >>> is originating form. >>> >>> Thanks for reading! >>> >>> >>> >>>> On Sep 5, 2023, at 9:17 AM, dr_c...@me.com wrote: >>>> >>>> You're not wrong it is currently messy code. I had tried so many different >>>> things before I fully understood the drawing system and the Back->GUI >>>> interactions. Though, I thought I did pull out all of the code that I used >>>> to mitigate the issue before as with my adjustments, they were no longer >>>> needed. It was a LOT of learning. I started on a copy that was a few weeks >>>> old, but I thought that I re-synced those changes in before I moved the >>>> code back in. May I didn't. >>>> >>>> So, what I will do is clone it again and add back each change so the code >>>> matches better and you can see the changes more clearly and try not to >>>> adjust any of the indentation. It might look like more changes were made >>>> when you do a code comparison because I had modified and changed back so >>>> many things and then back when I realized it wasn't needed. To be honest, >>>> in the end, it really ended up just being som minor changes in Back and >>>> changing how NSWindow adjusted the base decoration view and adding a new >>>> method to scale drawing. >>>> >>>> I will post an update soon to clean up some of the code to make the code >>>> comparison cleaner in both back and base. >>>> >>>> Thanks! >>>> >>>>> On Sep 5, 2023, at 3:37 AM, Fred Kiefer <fredkie...@gmx.de> wrote: >>>>> >>>>> I had a short look at your changes and sadly these don’t resemble the >>>>> clear idea you expressed in your mail. There are many leftovers from your >>>>> previous attempts to tackle the issue. You also missed out on the changes >>>>> that happened to GNUstep since you forked off your branch. A simple >>>>> rebase would help here. On the other hand, you are using an unmatched >>>>> indentation pattern and added plenty of empty newlines. Maybe it would be >>>>> best if you start anew from the current GNUstep code and just implement >>>>> your idea? >>>>> >>>>> Hope this helps, >>>>> Fred >>>>> >>>>> On the road >>>>> >>>>>> Am 05.09.2023 um 09:17 schrieb Fred Kiefer <fredkie...@gmx.de>: >>>>>> >>>>>> >>>>>> Hi, >>>>>> >>>>>> This approach sounds sensible to me. But as you said, it will take some >>>>>> more effort to spread it through the whole library, especially all the >>>>>> different backends. And there is also the case where GNUstep does the >>>>>> window decoration drawing. >>>>>> I am currently travelling and wont be able to review your code in detail >>>>>> before I am back home. But I will try to have a quick look to maybe >>>>>> point out some further difficulties. >>>>>> >>>>>> Cheers, >>>>>> Fred >>>>>> >>>>>> >>>>>> On the road >>>>>> >>>>>>> Am 05.09.2023 um 01:29 schrieb dr_c...@me.com: >>>>>>> >>>>>>> Hello Friends, >>>>>>> >>>>>>> As you may have read I have been working on getting some of the >>>>>>> ScreenFactor bugs squashed. One of my theories is that a lot of GNUStep >>>>>>> developers are assuming screen scaling of 1. This creates a problem >>>>>>> where the values coming in from NSEvent, NSScreen are in pixels and not >>>>>>> points. I noticed that apps like GWorkspace used the screen resolution >>>>>>> (in pixels) to generate its desktop and center its dock which cause the >>>>>>> dock and desktop items to disappear. Originally, I fixed this by going >>>>>>> in my version and dividing by the correct scale. I then noticed that >>>>>>> these little bugs were everywhere. I also noticed that sometimes the >>>>>>> NSString value of a NSRect saved to Plists were in pixels as well, >>>>>>> creating a problem when screen scaling would change. Suffices to say, I >>>>>>> wanted a fix that would allow all these other projects to display >>>>>>> correctly with out having to go to each one and divide by scale factor >>>>>>> for the offending views. >>>>>>> >>>>>>> There are two libraries that this affects (my version of the projects >>>>>>> are here) >>>>>>> (1) libs-back >>>>>>> https://github.com/austintatiousness/libs-back/tree/improved-screen-maths >>>>>>> (2) libs-gui >>>>>>> https://github.com/austintatiousness/libs-gui/tree/improved-screen-maths >>>>>>> >>>>>>> To fix this, I proposed that we allow AppKit to assume that all >>>>>>> geometry is in points instead of pixels according to the screen the >>>>>>> window is on. This required only some minor changes actually. >>>>>>> >>>>>>> 1) When libs-back constructs NSEvents that pertain to an NSWindow, it >>>>>>> needs to ensure that all the math is scaled by the screen factor of >>>>>>> that window. >>>>>>> 2) When libs-gui sends data to back, back knows that it will be in >>>>>>> points and fixes it. >>>>>>> 3) NSWindow needed some minor changes to its drawing routines because >>>>>>> the assumption is no longer that that decoration view (_wv) is scaled, >>>>>>> but instead a theoretical layer just below it is. So no longer do we to >>>>>>> a transform on the view, but instead just do a transform right before >>>>>>> drawing. You will see a method added to NSView - (NSAffineTransform*) >>>>>>> _baseMatrixForDrawing , that handles the math for each view so they >>>>>>> draw at the correct scale. >>>>>>> >>>>>>> When I finished fixing all of this, some of the other changes that I >>>>>>> had previously proposed were no longer needed. >>>>>>> >>>>>>> Some caveats: In my tests, I only changed the X11 code, I am only using >>>>>>> frames drawn by GNUSteap instead of the window manager. >>>>>>> >>>>>>> I have compiled and tested the code against GNUStep Desktop, and it all >>>>>>> is working great. There are still a few bug fixes (I cannot figure out >>>>>>> why items loaded from gorm sometimes are divided by the screen factor), >>>>>>> but some of the issues I encountered in other apps are now fixed when I >>>>>>> change my screen resolution. >>>>>>> >>>>>>> I would really love it if my code could be reviewed and possibly taken >>>>>>> into consideration to being added to the official reposatory. >>>>>>> >>>>>>> As it is right now, I'm not going to be using an old monitor for my >>>>>>> work, and I am working on a Swift bridge so I can port some of my >>>>>>> software. I will be using my version of the frameworks for this project >>>>>>> because unfortunately, as the bugs currently are, my ports wouldn't >>>>>>> work correctly. >>>>>>> >>>>>>> Lastly, I am hoping that I copied all the code back into my repository, >>>>>>> please let me know know if something doesn't build. >>>>>>> >>>>>>> Thanks! >>>> >>> >