GTK игнорирует любой тип позиционирования окна - PullRequest
0 голосов
/ 29 мая 2018

Я пытался расположить заставку в центре экрана.В Windows такой запрос легко с помощью SetWindowPos и ​​немного геометрической арифметики.Я обнаружил, что диспетчер окон игнорирует все запросы на перемещение окна.Итак, мой вопрос: почему я вижу так много приложений с красивыми заставками по центру?Я начал с GTK_WINDOW_TOPLEVEL BTW и просто переключился на всплывающее окно, пробуя несколько вещей.Установка гравитации и положения не подводят, они просто игнорируются.Даже определенное в файле .glade, окно игнорируется.

{
    GtkWidget *pNewWindow = gtk_window_new(GTK_WINDOW_POPUP);
    gtk_window_move(GTK_WINDOW(pNewWindow), 0, 0);

    gtk_widget_show_all(pNewWindow);
    while (gtk_events_pending())
        gtk_main_iteration();
    gtk_widget_set_size_request(pNewWindow, width, height);
    gtk_window_set_decorated(GTK_WINDOW(pNewWindow), FALSE);
//  gtk_window_set_position(GTK_WINDOW(pNewWindow), GTK_WIN_POS_CENTER_ALWAYS);
    gtk_window_set_resizable(GTK_WINDOW(pNewWindow), FALSE);
//  gtk_window_set_gravity(GTK_WINDOW(pNewWindow), GDK_GRAVITY_CENTER);
    gtk_window_move(GTK_WINDOW(pNewWindow), 0, 0);
    while (gtk_events_pending())
        gtk_main_iteration();
    return pNewWindow;
}
...