headerless window, undecoration

Steven J Abner <[email protected]> Fri, 11 Apr 2025 11:13:25 -0400
Newsgroups gmane.comp.freedesktop.xcb
Message-ID <[email protected]>
--=-Nvn/j9jmNO1SRCBtg5cx
Content-Type: text/plain; charset=us-ascii; format=flowed

 Stumped after weeks of trying, I'm reaching for some kind of hint, 
algorithm, anything to accomplish an undecorated window that behaves 
like a window such that it focuses, stacks just as a normal window. 
Resize, move, etc will be drawn in by a user that wants to create a 
non-supplied wm 'header' bar.
 Under gdk, I've created such an animal. I've tried to figure how they 
did it, but closest I've figured is they create an artificial topmost 
window. This still leaves me with how to not draw, and set a correct 
size. Also they used Motif.
 I've tried all the _NET_WM_WINDOW_TYPE_xxx(s), found that 
_NET_WM_STATE doesn't get set on undecorated. All remain as top of the 
stack.
 Closest I've come was using grab_button() for focus, but only works 
100% on one window manager, and left me trying to figure how to stack, 
leading back to reparent to an artificial window, which supports the 
reasoning of leaving event's window when entering titlebar area. Near 
as I can tell there is no way to not map a topmost and just map a 
child? Hadn't tried, so unverified :(
 Any pointers?
Steve

PS thank you Peter Harris, was very helpful and really cool link of 
info :)
And gdk version:


--=-Nvn/j9jmNO1SRCBtg5cx
Content-Type: image/png
Content-Disposition: attachment; filename=headerbar.png
Content-Transfer-Encoding: base64

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
bdonzufz151z20M9txM67hdeoV+/fmefffY//dM/PfXUUzNnzvR2gwVGiF4AABJvSURBVP+q8hri
Vq9pxpgxY84666zVq1ePGTPmnHPOyY6i9a/gMF9xxRWXX375Pffcc8ghhxx99NGda14pp/Ln7bff
ft11140dO7Z3796XX375th0bJ5xwwtSpUyufK+3q3O0NDQ0nnXSS122d65yH5XM+LcUqHLGXW7l0
4Q69d97gKGDPqtUf7bmXFApdjDcPovhzcf3Jqk4sAIAIfnP0EX7pZWrtbbff2U0llr32WvD++0cO
G7bB9RfmzeM99uh/4IHdt2Hx4rtFph5++IYrwl98saj1DwYN6m4RFwDcvezuqcHU+MgNsxdfKP6A
f3BG/01k32qEYRhFUTcJSqVSxzVs/+Borbv32FpbW1esWDF06FD/5+OPPz5u3Ljt08n7O0BEbrzx
xgULFtTX1//oRz/yIVZr7VNPPdWx2995553uXTdrbT7Ic7aA1/6y7P13g2FDN1xjPG/+C3vsyQce
1MXEdoWDv3qAMEgWoARm9jt5aQAAInbOH0/eDQMOOkj22uvB555rXbJkQBSxyMo0rRo4cMTJJ2On
LYk7M3jwmczjnnji583Nb+6441pmWLOmd48e++y556VEG85tdObMAWeOk3E/f/Dnb7a+uXbAWmDo
vbL3PlX7XDri0n646exbjU3asHm4siOb7I2ampoN9gLNO/CLAxFPOOGEX/7ylyeccEJlErFzh28y
OJnfo5wt46CDB+y1lzz37INLlrRG4QARTs3KgYOqTj5lRLFq09voZCcNCACAQi3iAECv360ZZNMR
hija7fjjK3/V+XIBZHNDE30bGm7sfHUzIxt9oe+Nu3XIXv757eokvLa2ti7fX6489s657WGVwXaC
tTZJks3fBUpEkiT5VFlyPhX19fVHHXVUfX19W1sbdNjBJ03TJEk2pwSfPt/0IGfLiApw/Im7dbiQ
CXrmTVhOfrtKEX8KAQOw38dSE5HfPtjlayI+D7TWXXZjRSgHQZD3cwVmds5heTfVTeInhz5VlpxP
y1FHHeWDjdmuSESVbt9k3kqWzXzHLifn84IFBAUJWRgJs1flvCfHzIiIsNGFJzmfI7mG6wgifqoJ
ttGjRwNAPie3lRk9erRXXZufJRcmOVsZRAQg/z44MxMBICCjFkSltHNus8KVOTk5OTk52x9ESpzL
tv8SC+W9KjUze58O8iN9c3JycnK+nCRxrLz7Bk4pgvIrW1rEvxUOInDAAXttk8oFQRdHaefk5OTk
5GwmSmuTGiQgRmDyJ4ITakJEP7EMtC2n8S+//PJt+Os5OTk5OV9qwiCorqnSWjOLMc4HJhFRizAg
oSKw+YRcTk5OTs6XEgFmK0opXVD+pRdnLCOSKp9csMmXwbvk5JO/E4Y9wrDH+edP+ey1bGxs3Hnn
nf3nhx566KGHHvrsZebk5OTk/N1TLBYdO5tavxFdEATZe3Kwkf0DN5OHHvoDAEyZcsnnsovP448/
ftxxx02bNi1JEn+mya233hpF0XnnnffZC8/JycnJ+XuFmRUhKmQHxhg/E4eoyFkp746/7cOVjz/+
+AknnHDuuedWV1dfe+2111xzTbFYPPfcc7d1vXJycnJytmtK7e2VlwW0zvY5cc6RILMDBOW2tY5r
bW19/fXXjzzySOiwP0i+q0VOTk5Oziax1hHq1JRfhGNEISLSAIAkzso2VyfPPPPMqFGjoiiaNm1a
HMdXXnklACxevPiOO+7Iw5U5OTk5Od3gHAubiiLzbw04Ye33VhZwKNt4rzkfqwQAr9L8qpOLLrpo
29YqJycnJ+dLgACS39KWAEQQBIAQ1m/QbM22jFeKyLPPPuuPS/acfPLJ27A+OTk5OTlfKtA5RkSi
7AQMRGT23psQCKHalp5cY2Pj7rvv3qdPn21Yh5ycnJycLymCAAAiYq0VEREHwEBIUI5dbtmc3NVX
XxOGPaZOvXP69N+EYY8f//iqLavfvHnzfKwyJycnJyfn07P+zE7/UpzfoBm/ceRhltlrvxdnzdwm
VQuCmj59+rzyyiu77bbbplPn5OTk5OR8EqXQKzXvsymFAADIJCIoArCNV1dOnDgx13A5OTk5OVtG
+aROAYDK2YeISCICgOIENnW4eE5OTk5OzvYKIhIAAgGqLFbJIuQdOKXUtq3dDTfcsG0rkJOTk5Pz
pUbK3pxSym9cKQLknTkn+aHgW8KAAQP+9re/fdpcP/nJT2688cZuEowcOfKtt976DPX6R2HL+j8n
J+fvD6RshywCABZERERgIBERBBGhLTpP7rHHnjj00FG9ew844ICRM2Y89TnWuPtTCB5++OFDDjmk
qqpq4MCB48ePf//99z/Hn65QX1//+uuvb0HGurq6jWVcu3bttGnTzj///G6y//CHP/QbvnTmkUce
+epXv1pTU7PPPvs8/vjjlestLS3f+c53qqurBw8ePHXq1E2m93z88cc1NTVjx47t8rdee+21UaNG
1dbWDh069Mc//nFra+smW/eFMmrUqN69eydJsvV/OicnZztHae03ZfYTciLCzIhIDIKgENQWzMg1
N6/73e9+f+utNy9aNP/iiy/47ne/P3/+h5+9rtOmTbv11ltFRERuvfXWadOmbZDgzjvvnDBhwsSJ
Ez/66KO33nrrtNNOu+222z7773ZmwYIFBx544Odb5u9+97tvfvObPXr06CbNcccd9+c//7mxsXGD
683Nzffee+9tt922bNmySy655JRTTvnggw/8V//6r/+6fPny+fPn33ffff/2b//20ksvdZ/ec/75
5x988MFd1iFJkmOPPXb06NGLFi2aPXt2z549/+d//mfLm/2ZWbBgwauvvtq/f//OqjonJyfHsQ2i
gAidcGqNiBCRoMCoIw8bNeqIQw8defAhB6Vpy2f5N2zYrvfdd/cWZJRPwszTp0/fe++999prrzvu
uMMfDlShvb29V69e06dPl07MmzfP648RI0Y88MAD/mL//v1vuOGGESNG9O7de+LEiUmSiMjPfvaz
b33rW5WMkyZNmjJlik9800037bnnnn369BGRXXbZ5bXXXhORt99++6CDDqqtrT3mmGNOP/30yy67
rFL4z372s4aGhh49epx66qlxHIvIt7/97Uq//+pXv9qgksccc8xdd91V+XPx4sWnnHJK3759d911
1yeeeKJyfezYsR2Tdcnw4cP/8Ic/iEiaptXV1S+++KK/fvbZZ5999tndpPc88MAD48ePv+GGG8aM
GdM58bvvvgsAvkUd6dy6ZcuWjR8/focddth5551vvvlmEbnhhhu+/e1vV7JceOGFF1xwQZcpN9aH
nfnJT35y4okn/ud//uexxx5budjlze2mzI1VoONNz8nJ+TISVgVBpP0/ICACpTCINBz+9a8d/vWv
HXr410aO/Opn0XALF87TWs+Z85fPRcndddddXsndeeedGyg576OsW7dug1zW2j322OOHP/xhU1PT
008/XV1d/cYbb4hI//7999133w8//PCjjz7ad999r732WhFZvnx5VVXVypUrRSSO4x122OH111/3
iUeOHLlgwQJfpldy1tphw4b9x3/8R3Nz86OPPqq17qjkjjzyyIULFy5evLihoaGilgYPHuy1Y2fq
6upmz57tPzvnDjzwwAkTJixbtmz+/PkXXXRRJdnFF1/sFcPGWLJkidb6b3/7m4jMnTsXAJqbm/1X
v/rVrw455JBu0otIU1PT8OHDFy1atDEl197e3r9//4svvvi9997b4BZ0bB0zjxw5cvLkyWvWrHn3
3XeHDx8+Y8aMBQsWFItFXx9r7YABA1555ZUuU3bThxuw66673n///fPnz9daL1u2zF/s8uZurMxu
KtDxpufk5HwZ0YEqVIW6oHQhUAUNCKhAKST/NXRYl7IFpGl6xhnnnHnm6Q0Ne2xxIRXuuOOOlpaW
K6+88qqrrmpra7vjjjs6frt69erq6urO4b433nhj6dKl119/fc+ePceOHXvKKafcd999/qsrr7xy
yJAh9fX1V1999e9//3sA6Nev31FHHeUTPPbYYwMGDDjggAN84quuumqXXXbpWPJf//rX5ubmK664
ora29sQTTzzmmGM6fnvVVVfttNNOgwYN+ta3vrU5iyCampoqlX/zzTfnzp3761//un///kOHDu24
dWdtbW1TU9PGCknT9J//+Z8nTJiw5557AoCfLasU27Nnz5aWlm7SA8Bll102ceLEurq6jf1EsVic
NWvWsmXLDj/88L59+06cOHH16tWdk7311lvvvvvuLbfc0rt37xEjRlx00UV//OMfd9lll/333//R
Rx8FgJkzZ1ZVVR1yyCFdptzMPvzzn/+8ZMmS448/fujQofvuu+/9999f+arzzd1Ymd1XYIObnpOT
8+UCiYxxSIqIELFYVfCbeRGiQiFgYdhCJWet/d73zqyqKt566399LnU977zzLrroIr825qKLLtrg
nJ0+ffq0tbVtIMQBYMmSJXV1dUEQ+D+HDh26ePFi/7kiv+rr65csWeI/T5gw4e677waAu++++/TT
T6+UM3jw4M4lDx48uPKWxQbSsG/fvv5DsVgslUqbbF3v3r0rlV+0aNFOO+0URVHnZOvWrevVq1eX
JVhrv/Od71RVVVVmImtqagCgUmxzc3NHI6Bz+r/85S8vv/zyJk94GDFixP33379ixYpXX331gw8+
OPvsszun+fjjj5uamqIoUkoR0fnnn79o0SIAOO2007zKuf/++0877bRuUsJm9OE999xz7LHH+mae
euqp99xzT+WrLm9ul2V2U4HONz0nJ+fLhTATITgGxxrBGRvqIAgCDUAiFgC2bMMT59z3v392W1vb
I488WFEwnwsbO4XggAMO6NWr14MPPriBzB00aFBjY6Mxxlfjww8/rEiujz/+2DtqCxYsGDRokL84
bty4iRMnPv30088///ydd95ZKafzzi8DBw5cvHixc87ruY8//rihoaH7ylfet+/MV77ylblz5x5+
+OEAsNNOOy1atChJks567t133+2yB5xz3/ve91pbW5944olKh9fX11dVVc2ZM+eII44AgDlz5lQ8
ti7Tv/HGG2+//XbH+1UoFOI43lidhw0bNmnSpMmTJ3dunfeWGhsbN+i38ePHX3LJJY2NjY888sgr
r7zSTcpNUiqVHnzwwXXr1nXM+Oabb+6zzz6wkZvbJd1UYJsfppiTk/MZQUT/5gADi5NCVHTOkQLy
h6ciIsCnfs6Z+ZxzfrBy5cqHH/5Dl+7IF0GxWLzxxhsvvfTSu+++e+XKlStXrnzkkUcuuOCC/fff
f8CAAVdccUVzc/Ozzz77wAMPeAcCAK6//voFCxZ8/PHH11577amnnuovaq1PP/30M8444/DDD+8m
agcABxxwQG1t7XXXXbdu3brHH3/86aef3mQl+/Xr9/bbb3cZAR43btyLL77oP++777677bbbpEmT
li9f/tFHH1188cX+epqmf/nLX44++ugN8jLzWWedtWLFiscee6xjhwdB8N3vfvfqq69etmzZrFmz
HnjggTPOOKOb9Oedd14lkO3n5DpruHfffff0009/7bXX2tvb58+fP3Xq1MpC046t22effXbeeedL
LrlkxYoVq1at+s1vfnP77bcDwI477jhq1KizzjpryJAhe+yxRzcpN8mjjz4aRVFlUYmIHHXUUb/9
7W/9t13e3C7Z4grk5OR8CRDxfohCQqE0SZgZQZF/MxwR8dNHKxctWnTffb9/8cWXevbsF4Y9wrDH
L3+5NaTGueeeO3369KlTp+6yyy57773373//+8mTJyulHnvssddff72urm7KlCl33XXX/vvv79Of
fPLJY8eO3Xfffffff//LLrusUs6ECRNWrlz5/e9/v/uf01o//PDDM2bM2GmnnaZNm3bSSSeFYdh9
ln//93+/8sorlVKd32343ve+98ILL/hZNER89NFHm5qaGhoaxowZ881vftOnefLJJw899NCddtpp
g7wLFy689957Z82aVVVV5W/aLbfc4r/6xS9+0a9fv6FDh5522mk33XST9xS7Sb9Jdt9993Hjxl14
4YU77rjjYYcdNnDgwLvuuqtz64jo0UcfXbFixd57773nnnu+/PLLFU1z2mmnPf/88xVTo5uU3XPP
PfeceeaZHfv83HPPve+++6y1sPGb25ktrkBOTs6XATQ2ZXEAoLUWAGZmEPzGN0YBoxPrnJs589lt
UrUgqPniCh8wYMDzzz+/1157df5qzpw5hx566PLly/1kz2Zy9NFHjx8//l/+5V+2uErXXHNNGIY/
+tGPNpbga1/72tSpU304LicnJydnkxQKoV9GKVje7gRABP8fIaULIrAl9F0AAAAASUVORK5CYII=

--=-Nvn/j9jmNO1SRCBtg5cx--