2016-11-26 12 views
6

Jak mogę przenieść nowe okno GTK 3 na pierwszy plan na sierrach OSX? Każde otwarte okno (przy użyciu gtk-rs lub python) kończy się w tle jako pierwsze. Próbowałem:Nowe okno GTK 3 na pierwszym planie na OSX

  • set_modal(true)
  • set_keep_above(true)
  • present()

Nic nie wydaje się, aby pomóc i nie mogłem znaleźć żadnej informacji o błędzie w tym kierunku. Masz pomysł, jak to osiągnąć?

GTK jest zainstalowane poprzez homebrew:

[email protected] ~/code/rust (master)> brew info gtk+3 
gtk+3: stable 3.22.4 (bottled) 
Toolkit for creating graphical user interfaces 
http://gtk.org/ 
/usr/local/Cellar/gtk+3/3.22.4 (1,395 files, 70.0M) * 
    Poured from bottle on 2016-11-26 at 17:11:24 
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/gtk+3.rb 
==> Dependencies 
Build: pkg-config ✔ 
Required: gdk-pixbuf ✔, atk ✔, gobject-introspection ✔, libepoxy ✔, pango ✔, glib ✔, hicolor-icon-theme ✔ 
Recommended: gsettings-desktop-schemas ✔ 
Optional: jasper ✔ 
+0

Czy sprawdziłeś, czy twój kod działa na innej platformie, na przykład na Linuksie? – oldtechaa

+0

Głównym graczem jest twój menedżer okien, który decyduje, gdzie będą wyświetlane nowe okna. Czy sprawdziłeś ustawienia WM? – jcoppens

+0

Dobrze @jcoppens, czyli OSX. Nie wiem jak skonfigurować coś takiego dla OSX. – languitar

Odpowiedz

0

Wychodzisz na kończynie i kwestia ta kończy się szybko bez kodu przedstawionego. Więc opublikuję, jaki kod powinien wyglądać. Nie znaczy to, że tego nie próbowałaś. Po prostu próbuje pomóc.

use article::Article; 
use homepage; 
use gtk; 
use gtk::traits::*; 
use gdk::ffi::GdkRGBA; 
use pango; 

fn configure_window(window: &gtk::Window) { 
    window.set_title("Phoronix Reader"); 
    let (width, height) = (600, 500); 
    window.set_default_size(width, height); 
    window.connect_delete_event(|_,_| { 
     gtk::main_quit(); 
     gtk::signal::Inhibit(true) 
    }); 
} 

pub fn launch() { 
    gtk::init().unwrap_or_else(|_| panic!("Failed to initialize GTK.")); 

    let window = gtk::Window::new(gtk::WindowType::Toplevel).unwrap(); 
    configure_window(&window); 

    window.show_all(); 

    gtk::main(); 
} 
+0

Zasadniczo to zrobiłem. Mimo to okno nie pojawia się na wierzchu innych okien. – languitar

Powiązane problemy