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--