From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: community@altlinux.ru Subject: Re: [Comm] Re: Looking for app to minimize all opened windows From: Anton Kovalenko Date: Sat, 15 Feb 2003 22:54:12 +0300 In-Reply-To: <20030215175302.GE15216@osdn.org.ua> (Michael Shigorin's message of "Sat, 15 Feb 2003 19:53:02 +0200") Message-ID: <87n0kxcobf.fsf@lenin.home> User-Agent: Gnus/5.090011 (Oort Gnus v0.11) Emacs/21.2 (i386-debian-linux-gnu) References: <3E4D5D7C.6060806@yauza.ru> <20030215175302.GE15216@osdn.org.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Sender: community-admin@altlinux.ru Errors-To: community-admin@altlinux.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: community@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: >>>>> 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 #include 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!