On Wed, Jul 30, 2025 at 07:00:18PM +0200 I heard the voice of
Frank Steiner, and lo! it spake thus:
>
> So, normal borders and ThreeDBorders are different kind of objects.
> Can someone explain that? And again, I'm afraid that cannot be changed?

The short answer is that non-ThreeD borders are just plain X window
borders.  We don't do anything with them ourselves, we just tell X to
put 'em on the windows (it's one of the 59 args to XCreateWindow()).
And fiddle with the coloring on focus changes (see
SetFocusVisualAttributes()).  Differences in screenshot etc are
presumably because of that; X put the border there, so it knows the
border isn't part of the window, it's just the border.

ThreeDBorders came way later (in 3.1), and don't involve X at all.  We
draw them ourselves (see PaintBorders()) with a buncha lines and
rectangle fills etc.  Bascially just drawing pixmaps in our window.
Which means they're not really "borders" as far as X is concerned,
it's just something we draw in our window, like anything else any
program draws in its window.


And hence all the mess of what borders do to window sizes and
positions and whatnot that fall out from that...


-- 
Matthew Fuller     (MF4839)   |  [email protected]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.

Reply via email to