<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Xlib и _NET_WM_STATE [C]]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=20435&amp;type=atom" />
	<updated>2012-02-23T08:24:12Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=20435</id>
		<entry>
			<title type="html"><![CDATA[Re: Xlib и _NET_WM_STATE [C]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=253319#p253319" />
			<content type="html"><![CDATA[<p>Решил сам, упростив конструкцию до:<br /></p><div class="codebox"><pre><code> if (a != None) {
    Atom prop = XInternAtom(display, &quot;_NET_WM_STATE_SKIP_TASKBAR&quot;, True);
    XChangeProperty(display, window, a, XA_ATOM, 32, PropModeAppend, (unsigned char *) &amp;prop, 1);
    Atom prop1 = XInternAtom(display, &quot;_NET_WM_STATE_SKIP_PAGER&quot;, True);
    XChangeProperty(display, window, a, XA_ATOM, 32, PropModeAppend, (unsigned char *) &amp;prop1, 1);
    Atom prop2 = XInternAtom(display, &quot;_NET_WM_STATE_ABOVE&quot;, True);
    XChangeProperty(display, window, a, XA_ATOM, 32, PropModeAppend, (unsigned char *) &amp;prop2, 1);
    }</code></pre></div><p> И начав вызывать до показа окна.</p>]]></content>
			<author>
				<name><![CDATA[Cynic]]></name>
				<uri>https://linuxforum.ru/profile.php?id=8009</uri>
			</author>
			<updated>2012-02-23T08:24:12Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=253319#p253319</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Xlib и _NET_WM_STATE [C]]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=252984#p252984" />
			<content type="html"><![CDATA[<p>День добрый, господа. Возникла проблемка, при программировании под чистый xlib. Значится по мере выполнения задачи возникла потребность - спрятать приложение из pager и так называемой панели задач, а так же постоянно держать форму поверх остальных окон. Долгое гугление и вдумчивое курение документации - навели меня на написание следующих строк:<br /></p><div class="codebox"><pre><code>//убираемся из панели задач и pager
    Atom a = XInternAtom(display, &quot;_NET_WM_STATE&quot;, True);
    if (a != None) {
    Atom prop = XInternAtom(display, &quot;_NET_WM_STATE_SKIP_TASKBAR&quot;, True);
    XChangeProperty(display, window, a, XA_ATOM, 32, PropModeAppend, (unsigned char *) &amp;prop, 1);
    }
    a = XInternAtom(display, &quot;_NET_WM_STATE&quot;, True);
    if (a != None) {
    Atom prop = XInternAtom(display, &quot;_NET_WM_STATE_SKIP_PAGER&quot;, True);
    XChangeProperty(display, window, a, XA_ATOM, 32, PropModeAppend, (unsigned char *) &amp;prop, 1);
    }
    //типа stay on top.
    a = XInternAtom(display, &quot;_NET_WM_STATE&quot;, True);
    if (a != None) {
    Atom prop = XInternAtom(display, &quot;_NET_WM_STATE_ABOVE&quot;, True);
    XChangeProperty(display, window, a, XA_ATOM, 32, PropModeAppend, (unsigned char *) &amp;prop, 1);
    }</code></pre></div><p>Все бы хорошо, однако - по непонятной причине - второй блок if - отрабатывает вообще рандомно, а третий - такое ощущение, что не отрабатывает вовсе. Тоесть - форма по только ей понятной причине: пропадает из панели задач, абсолютно случайно при н-м запуске пропадает из pager, а состояние поверх всех окон - пропадает при любом изменении фокуса. В браузер ткнулся, и все - форма уже не видна. Может быть - у кого нибудь уже есть опыт реализации подобной задачи, и он подскажет, что я таки делаю не так, и главное - как надо?</p>]]></content>
			<author>
				<name><![CDATA[Cynic]]></name>
				<uri>https://linuxforum.ru/profile.php?id=8009</uri>
			</author>
			<updated>2012-02-22T08:33:36Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=252984#p252984</id>
		</entry>
</feed>
