LINUX.ORG.RU

gtk_popup_menu и fvwm


0

1

есть такой простенький код

#include <gtk/gtk.h>

int main ()
{
  GtkWidget *m, *i;
  
  gtk_init (0, NULL);
  
  m = gtk_menu_new ();
  
  i = gtk_menu_item_new_with_label ("test1");
  gtk_widget_show (i);
  gtk_menu_shell_append (GTK_MENU_SHELL (m), i);
  g_signal_connect (i, "activate", gtk_main_quit, NULL);
  
  i = gtk_menu_item_new_with_label ("test2");
  gtk_widget_show (i);
  gtk_menu_shell_append (GTK_MENU_SHELL (m), i);
  g_signal_connect (i, "activate", gtk_main_quit, NULL);
  
  i = gtk_menu_item_new_with_label ("test3");
  gtk_widget_show (i);
  gtk_menu_shell_append (GTK_MENU_SHELL (m), i);
  g_signal_connect (i, "activate", gtk_main_quit, NULL);
  
  gtk_menu_popup (GTK_MENU (m), NULL, NULL, NULL, NULL, 0,
                  gtk_get_current_event_time ());

  gtk_main ();
  
  return 0;  
}

собираю, запускаю - все нормально, менюшка показывается. пытаюсь зацепить эту же програмулинку на комбинацию клавиш в fvwm - и по нулям, меню нет.

Mouse 2 R A Exec exec $[HOME]/a.out

причем, если запускать Exec из FvwmConsole или при помощи FvwmCommand - все нормально, все показывается. также не наблюдается проблем, если основное окно имеет тип GTK_WINDOW_TOPLVEL.

привязки к виджету и попытки подпихнуть рутовое окно в через gdk_window_set_group() или gdk_window_set_transient_for() не помогли.

подозреваю, что если слепить обычное окно без обрамления и прочих пейджеров/таскбаров и подпихнуть его менюхе в качестве parent-а - все будет работать. но подобный вариант уж очень хаком пахнет, потому пока ищу другие решения

★★★★★

>пытаюсь зацепить эту же програмулинку на комбинацию клавиш в fvwm - и по нулям, меню нет.

Занятно. У меня сам процесс запускается, и их уже с десяток висит, если по хоткею запускать.

подозреваю, что если слепить обычное окно без обрамления и прочих пейджеров/таскбаров и подпихнуть его менюхе в качестве parent-а - все будет работать. но подобный вариант уж очень хаком пахнет, потому пока ищу другие решения

А вот в этом не вижу ничего плохого, учитывая что fvwm умеет персональные настройки декораций и всего остального для приложений, и эта фича как раз юзается повсеместно

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

И вообще, для меню в fvwm я использовал бы либо его собственное, либо dmenu Ж)

yoghurt ★★★★★
()
Ответ на: комментарий от ipc

> Еще можно модуль FvwmGtk взять

его и пилю

ananas ★★★★★
() автор топика
Ответ на: комментарий от yoghurt

> Занятно. У меня сам процесс запускается, и их уже с десяток висит, если по хоткею запускать.

это gtk_main отрабатывает

ananas ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.