Bir pencereyi XIconifyWindow
kullanarak tanımlamayı başardım, ancak daha sonra geri yüklemeyi başaramadım.Xlib ile bir pencere nasıl geri yüklenir?
XMapRaised (display, window);
Ve:
XMapWindow (display, window);
Ve: hayır başarı için
XClientMessageEvent ev;
std::memset (&ev, 0, sizeof ev);
ev.type = ClientMessage;
ev.window = window;
ev.message_type = XInternAtom(display, "WM_CHANGE_STATE", False);
ev.format = 32;
ev.data.l[0] = NormalState;
XSendEvent (display, RootWindow(display, XDefaultScreen(display)), False,
SubstructureRedirectMask |SubstructureNotifyMask, (XEvent*)&ev);
XFlush (display);
Aşağıdaki çalıştı. Debian Jessie'yi GNOME 3.14.0 ile kullanıyorum.
"NormalState" veri öğesiyle bir "WM_CHANGE_STATE" iletisi göndermeyi denediniz mi? (XMapRaised'in pencereyi doğru bir şekilde işaretlemeyeceğini düşünmese de, çağrıları temizlediğinden/sunucu için beklediğinden emin misiniz? Doğru üst düzey pencerede bunu aradığınızı ve ayrıldığınızdan emin oldun mu? Simge simgelenmiş/geri çekilmiş?) –
Hayır, ama şimdi denedim ve maalesef işe yaramıyor. Sadece bir pencere var, bu yüzden en üst düzey. Ayrıca "XFlush" i başarıyla eklemeyi denedim. Umarım, WM'ye özgü kodu eninde sonunda kullanmak zorunda değilimdir. –
Kodunuzun ilgili bölümlerini buradan kaydeder misiniz? Yaptığın çeşitli girişimler dahil mi? –