Перейти к содержанию

Создание окна StayOnTop


Гость

Рекомендуемые сообщения

Как сделать диалоговое окно чтобы оно всегда было на верху (не

перекрывалось другими окнами).

Пишу на gtk 1.2 но я так понимаю средствами gtk/gdk этого не сделать (я по крайней мере не нашел).

Подскажите плз как это X-ами сделать.

И еще при создании root окна приложения в заголовок окна добавляются кнопки "свернуть" и "развернуть" очень бы хотелось иметь возможность их заблокировать.

Ссылка на комментарий
Поделиться на другие сайты

У меня так написано:

void
gtk_window_set_keep_above (GtkWindow *window,
			   gboolean   setting)
{
  GtkWidget *widget;
  GtkWindowPrivate *priv;
  GdkWindow *toplevel;

  g_return_if_fail (GTK_IS_WINDOW (window));

  widget = GTK_WIDGET (window);
  priv = GTK_WINDOW_GET_PRIVATE (window);

  priv->above_initially = setting;
  if (setting)
    priv->below_initially = FALSE;

  if (window->frame)
    toplevel = window->frame;
  else
    toplevel = widget->window;

  if (toplevel != NULL)
    gdk_window_set_keep_above (toplevel, setting);
} 

То есть, просто вызывается gdk_window_set_keep_above, которая у меня выглядит так:

void
gdk_window_set_keep_above (GdkWindow *window, gboolean setting)
{
  g_return_if_fail (GDK_IS_WINDOW (window));

  if (GDK_WINDOW_DESTROYED (window))
    return;

  if (GDK_WINDOW_IS_MAPPED (window))
    {
      if (setting)
	gdk_wmspec_change_state (FALSE, window,
				 gdk_atom_intern ("_NET_WM_STATE_BELOW", FALSE),
				 GDK_NONE);
      gdk_wmspec_change_state (setting, window,
			       gdk_atom_intern ("_NET_WM_STATE_ABOVE", FALSE),
			       GDK_NONE);
    }
  else
    gdk_synthesize_window_state (window,
    				 setting ? GDK_WINDOW_STATE_BELOW : GDK_WINDOW_STATE_ABOVE,
				 setting ? GDK_WINDOW_STATE_ABOVE : 0);
} 

Кстати, насчет кнопочек:

void gdk_window_set_decorations(GdkWindow *window, GdkWMDecoration decorations);

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...