Gdk Window set_decorations(0) crashing gnome-shell



Hi Gtk mailing list,

I have a Gdk question (I couldn't find a Gdk mailing list so I assumed
this was the one).

I'm trying to write something (for gnome-shell) that removes
decorations from a window.
I'm using gobject introspection and in particular the Javascript interface.

I get the current ('active') window via:

    curwin = Gdk.Screen.get_default().get_active_window()

It points to a terminal window (I can tell because curwin.unmaximize()
and curwin.maximize() work on it).
Then I try to remove its window decoration:

    curwin.set_decorations(0)

Instead of the decorations being removed, the window disappears
entirely and as far as I can tell the application has quit (can't find
it in `ps aux` any more).
Confirming my suspicions, if I have a process like vim running in the
terminal I get the usual popup 'There is a running process, are you
sure you want to quit' dialog. If I select 'Cancel' on this the window
is still disappeared, but I can get it back via

    curwin.show()

So - how can I do set_decorations(0) without it killing the
application? No error messages in dmesg, Xorg.log or the gnome-shell
are reported.
Gnome-shell uses mutter (based on metacity) as its window manager.

Alternatively, I can use
curwin.set_decorations(Gdk.WMDecoration.BORDER) to draw *just* the
window's border (I really just want to remove the title bar). This
works when the window is not maximised, but when the window is
maximised the title bar is still visible (but there is just no text
there)! I'd like the title bar to be gone when the window is
maximised.

Alternatively, I know I that if curwin were a Gtk window, I could use
`curwin.set_decorated(false)`. However, how do I get the
currently-focused window (or a list of all windows currently open)
with Gtk when the windows all have different applications e.t.c.

Thank you very much for any insights you have!


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]