From: Alex Morozov <alex@idisys.iae.nsk.su> To: Sisyphus Mailing List <sisyphus@altlinux.ru> Cc: Konstantin Volckov <goldhead@altlinux.ru>, Alexey Morozov <morozov@novosoft.ru> Subject: [sisyphus] Possible problems with Sisyphus XFree86 build Date: Wed, 28 Nov 2001 05:50:48 +0600 (NOVT) Message-ID: <Pine.LNX.4.10.KSI2mu3.10111280504330.10811-200000@idisys.iae.nsk.su> (raw) [-- Attachment #1: Type: TEXT/PLAIN, Size: 3260 bytes --] В общем, оговорюсь сразу, возможно, наблюдаемый мною глюк специфичен только для моей машины, т.к. у меня все еще не ALT что-нибудь, а компот из бывшего Mdk8 + апдейты из 8.1 + множество альтовых пакетов. Впрочем, насколько я себе представляю механику процесса, в "pure ALT" должно быть точно также. Суть проблемы: в билдах XF86-libs от ALT (и, видимо, Mdk8) не работают какие-то (пока не знаю какие) механизмы, позволяющие успешно функционировать вызову gtk_socket_steal (захват/swallow произвольно выбранного "рутового" виджета внутрь GtkSocket). Приложенный steal-xwin.c должен продемонстрировать проблему. Для демонстрации сначала соберите его (cc -o steal-win steal-win.c `gtk-config --cflags --libs`) Потом сделайте следующее: запустите, например, xeyes, с помощью xprop (или sawfish-client, rep/rep-gtk рулиз :-)) выясните, каков XID у окна xeyes (xprop пишет это в строчке вида WM_CLIENT_LEADER(WINDOW): window id # 0x1400007 ), только не забудьте пересчитать hexadecimal в decimal (например, так: printf "%d\n" 0x1400007 (вместо 0x1400007 - то, что написал вам xprop)) После этого можете запускать steal-xwin: ./steal-xwin <xid> 100 100 В идеале вы должны получить глазки, затолканные внутрь появившегося окошечка, потаскайте его по экрану, чтобы убедиться, что они действительно затолкались, а не просто положены сверху :-)... Информация к размышлению для Константина Волчкова: а ALTовых и Mdk'шных либах у меня этот фокус не срабатывает (немного по-разному, но не суть), а вот на RHовых (от RH-7.2, простое копирование libX11.so.*, libXt.so.* libXext.so.* из их rpm'а поверх рабочих либ) - все Ok, даже ничего при этом (Xserver, приложения) при этом не ломается. Я так думаю, опять какие-нить новомодные патчи, а? :-). Кстати, а расскажите, зачем в ALTовой дистрибуции XFree присутствуют хаки имени XFree86-4.0.2-emacs_key.patch и XFree86-4.0.99.1-winkey-alt-meta.patch? Грязные же хаки, и, к тому же, я надеюсь, мало кому действительно необходимые? Есть же способ с рантаймовой модификацией модификаторов, если на то пошло?... А то, блин, давишь <LWIN> она кажет тебе Meta_L, давишь следом x, она и кажет тебе ... х... Я пока понял, что за ... Интересно, о каких пользователях emacs'а призван заботиться этот патч? :-) Извините, если напрасно побеспокоил публику, и у всех все работает. В любом случае, дайте мно, пожалуйста, знать. К сожалению, как я уже говорил, доступ к этому ящику у меня сейчас нерегулярный и неудобный. а переносить его лень, поэтому черкните пару строчек на morozov@novosoft.ru, если у кого-то заработает (ну, или Константин, Вы, найдете решение). С уважением, Алексей Морозов. P.S. Да, в gnome-libs от ALT надо, похоже, апдейтить мой zvtkbdhack. В соответствии с постановлениями партии и правительства Home и End более не обозначаются через \033[1~ и \033[4~. Для End на моем Mdk использьзуется \0330F, а вот для Home что-то еще, не знаю пока что... Впрочем, на соседней фряшке, Home/End в xterm/xterm-color какие-то свои ,особенные.... "Заколебал ты!"... Взялся бы кто-нить, привел в соответствие termcap/terminfo и написал большими буквами, опуская матерные слова: ЕСЛИ ВЫ ПИШЕТЕ ОЧЕРЕДНОЙ XTERM, помните: ПРАВИЛЬНАЯ РАСКЛАДКА - ВОТ ТАКАЯ... И список... P.S.S. Прошу прощения за многословность,5:45am :-) [-- Attachment #2: Type: TEXT/PLAIN, Size: 1752 bytes --] /* steal-xwin.c */ #include <gtk/gtk.h> #include <stdlib.h> int main (int argc, char *argv[]) { GtkWidget *win, *vbox, *scrolled_win, *sock, *label; guint32 xwin_id; gint width, height; gtk_init (&argc, &argv); if (argc != 4) { g_print ("usage: %s <xwin id> <width> <height>\n", argv[0]); exit (1); } xwin_id = atoi (argv[1]); g_print ("%d\n", xwin_id); width = atoi (argv[2]); height = atoi (argv[3]); win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_policy(GTK_WINDOW (win), TRUE, FALSE, FALSE); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (win), vbox); scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (vbox), scrolled_win, TRUE, TRUE, 0); sock = gtk_socket_new (); gtk_widget_set_usize (sock, width, height); gtk_scrolled_window_add_with_viewport ( GTK_SCROLLED_WINDOW (scrolled_win), sock); gtk_widget_realize (sock); gtk_socket_steal (GTK_SOCKET (sock), xwin_id); gtk_viewport_set_shadow_type ( GTK_VIEWPORT (GTK_BIN(scrolled_win)->child), GTK_SHADOW_NONE); gtk_widget_set_usize ( GTK_BIN(scrolled_win)->child, width, height); label = gtk_label_new ("stolen xwin"); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); gtk_widget_show_all (win); gtk_main (); return 0; }
next reply other threads:[~2001-11-27 23:50 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2001-11-27 23:50 Alex Morozov [this message] 2001-11-28 9:33 ` Alexander Bokovoy
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=Pine.LNX.4.10.KSI2mu3.10111280504330.10811-200000@idisys.iae.nsk.su \ --to=alex@idisys.iae.nsk.su \ --cc=goldhead@altlinux.ru \ --cc=morozov@novosoft.ru \ --cc=sisyphus@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 Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git