コード例 #1
0
ファイル: metacity-window-demo.c プロジェクト: GNOME/metacity
static void
set_gtk_window_struts (GtkWidget  *window,
                       int         left,
                       int         right,
                       int         top,
                       int         bottom)
{
  GtkWidget *widget;

  widget = GTK_WIDGET (window);

  g_object_set_data (G_OBJECT (window), "meta-strut-left",
                     GINT_TO_POINTER (left));
  g_object_set_data (G_OBJECT (window), "meta-strut-right",
                     GINT_TO_POINTER (right));
  g_object_set_data (G_OBJECT (window), "meta-strut-top",
                     GINT_TO_POINTER (top));
  g_object_set_data (G_OBJECT (window), "meta-strut-bottom",
                     GINT_TO_POINTER (bottom));

  g_signal_handlers_disconnect_by_func (G_OBJECT (window),
                                        on_realize_set_struts,
                                        NULL);

  g_signal_connect_after (G_OBJECT (window),
                          "realize",
                          G_CALLBACK (on_realize_set_struts),
                          NULL);

  if (gtk_widget_get_realized (widget))
    set_gdk_window_struts (gtk_widget_get_window (widget),
                           left, right, top, bottom);
}
コード例 #2
0
ファイル: marco-window-demo.c プロジェクト: Samsagax/marco
static void
on_realize_set_struts (GtkWindow *window,
                       gpointer   data)
{
  int left;
  int right;
  int top;
  int bottom;

  g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (window)));

  left = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-left"));
  right = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-right"));
  top = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-top"));
  bottom = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (window), "meta-strut-bottom"));

  set_gdk_window_struts (gtk_widget_get_window (GTK_WIDGET (window)),
                         left, right, top, bottom);
}