Today is an exciting day for GNOME 3.0! Why? Invisible borders have landed! What does this mean for you? One pixel borders are no longer! No more pixel hunting! The last remnants of the cursor accuracy kingdom have been tore down! Pointer precision, you are —
Let me draw you a picture.
In GNOME3 before today, if I wanted to conveniently resize a window, I had to hunt for one-pixel borders. I would finally get my mouse positioned right on the border, and then carefully click…
and then miss… So, it’s not surprising people are upset about this. Now, you can go outside the actual visible part of the window, and still resize it!
Now, you have as much space in the world to resize your windows: we extend the resizable area to outside of the actual window. Additionally, the mount of area that is available to resize is a user preference, and completely customizable! That is, the green area in the picture below is completely customizable by a gconf setting.
The way I did this was by making every X window a little larger, and use Owen’s existing shaping code to hide the excess area around the borders. This means that toolkits that use the parent window’s size to find their visible extents are now going to break. Use the _NET_FRAME_EXTENTS X atom as a replacement.
Oh, and since I’m using Owen’s existing shaping code, and that uses an 8-bit mask to hide the shaped region, this made it quite a bit easier to add a feature that people have been begging for for a little while: antialiased borders. This hasn’t landed quite yet, but it should be coming soon enough!
Next time, I’ll talk about SweetTooth some more!