ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Anton Kovalenko <a_kovalenko@mtu-net.ru>
To: community@altlinux.ru
Subject: Re: [Comm] Re: Looking for app to minimize all opened windows
Date: Sat, 15 Feb 2003 22:54:12 +0300
Message-ID: <87n0kxcobf.fsf@lenin.home> (raw)
In-Reply-To: <20030215175302.GE15216@osdn.org.ua> (Michael Shigorin's message of "Sat, 15 Feb 2003 19:53:02 +0200")

>>>>> Michael Shigorin writes:

    > On Sat, Feb 15, 2003 at 12:19:56AM +0300, Pavel S. Khmelinsky wrote:
    >> Ищу программу под иксы для свертывания сразу всех окон. Хорошо
    >> бы она умел сворачивать окна как на текущем десктопе, так и на
    >> всех сразу.  Использую Window Maker.  Может кто что подскажет?
    > Эээ... если с двух раз не ответили -- значит, видимо, все хуже :)

Всё _ещё хуже_.

    > Значтак: "свернуть" в понятиях X11 -- это событие (event).

Если  имеется ввиду нечно  вроде UnmapNotify  или PropertyNotify
(WM_STATE)  --  да,  это  событие.  Но  здесь  оно  не  поможет:
единственное  его  предназначение  --  чтобы  WM  сообщал  нашей
прикладухе: "знаешь, а я тут твоё окно свернул"... 

Если мы и пошлём прикладухе _ЭТО_ через SendEvent, всё, чего мы
добьёмся -- прикладуха будет думать, что её свернули.


Так что  пользоваться нам надо не "посылкой  событий", а вызовом
XIconifyWindow. Вот пример (proof-of-concept) -- программка,
которая сворачивает окно с заданным id.

------- содержимое файла iconify.c -------
#include <X11/Xlib.h>
#include <stdlib.h>
int main (int argc, char **argv)
{   
    Display *dpy;
    if (argc!=2) {
       /* We need egg-zactly one arg */
       return 1;
    }
    dpy = XOpenDisplay(NULL); /* use $DISPLAY variable */
    XIconifyWindow (dpy, strtol(argv[1],0,0), 0 /* FIXME: it's screen num. */ );
    XCloseDisplay( dpy );
    return 0;
}
-----------------------------------------
Это можно откомпилировать командой 
    gcc -o iconify iconify.c -L/usr/X11R6/lib -lX11

А затем в окошке xterm запустить 
   ./iconify $WINDOWID

Окошко этого самого xterm, разумеется, должно свернуться

[...Мишины  рекомендации по поводу eventов пропускаю.
    Они очень подробные и полезные, но не для этой задачи...]

-- 
With Best Wishes, Anton Kovalenko /* http://kovalenko.webzone.ru */
#!/usr/bin/wish - best wish I have for you!


  reply	other threads:[~2003-02-15 19:54 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-14 21:19 [Comm] " Pavel S. Khmelinsky
2003-02-15 17:53 ` [Comm] " Michael Shigorin
2003-02-15 19:54   ` Anton Kovalenko [this message]
2003-02-15 20:51     ` Michael Shigorin
2003-02-15 23:03     ` Pavel S. Khmelinsky
2003-02-16  9:48       ` Anton Kovalenko
2003-02-16  9:54         ` Pavel S. Khmelinsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87n0kxcobf.fsf@lenin.home \
    --to=a_kovalenko@mtu-net.ru \
    --cc=community@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git