Review Request 119062: Add a script to enforce window decorations for GTK windows

Thomas Lübking thomas.luebking at gmail.com
Tue Jul 1 14:48:31 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119062/#review61397
-----------------------------------------------------------


To reduce the visual issue (shadows) we could seek to inject 

~/.config/gtk-3.0/gtk.css
.window-frame {box-shadow: none; margin: 0px; padding:0px}
/*GtkWindow {  -GtkWindow-decoration-button-layout: "close:"; }*/

ie. figure whether we can extend the paths from where gtk-3 reads itss css.

Another way (requires core change) would be to allow cropping a client (and export that to scripts)

- Thomas Lübking


On July 1, 2014, 2:10 p.m., Martin Gräßlin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119062/
> -----------------------------------------------------------
> 
> (Updated July 1, 2014, 2:10 p.m.)
> 
> 
> Review request for kwin and Plasma.
> 
> 
> Repository: kwin
> 
> 
> Description
> -------
> 
> Add a script to enforce window decorations for GTK windows
> 
> This is going to be a controversal change. It enforces KWin decorations
> on all client side decorated windows from GTK+. Unfortunately we are
> caught between a rock and a hard place. Keeping the status quo means
> having broken windows and a more or less broken window manager due to
> GTK+ including the shadow in the windows. This is no solution.
> Enforcing server side decorations visually breaks the windows. This is
> also no solution. So why do it?
> 
> It's our task to provide the best possible user experience and KWin is
> a window manager which has always done great efforts to fix misbehaving
> windows. One can think of the focus stealing prevention, the window rules
> and lately the scripts. The best possible window management experience is
> our aim. This means we cannot leave the users with the broken windows
> from GTK.
> 
> The issues we noticed were reported to GTK+ about 2 months ago and we are
> working on improving the situation. Unfortunately several issues are not
> yet addressed and others will only be addressed in the next GTK+ release.
> We are working on improving the NETWM spec (see [1]) to ensure that the
> client side decorated windows are not in a broken state. This means the
> enforcment is a temporary solution and will be re-evaluated with the next
> GTK release. I would prefer to not have to do such a change, if some of
> the bugs were fixed or GTK+ would not use client-side-decos on wms not
> yet supporting those all of this would be a no issue.
> 
> For a complete list of the problems caused by GTK's decos see bug [2] and
> the linked bug reports from there.
> 
> The change is done in a least inversive way in KWin. We just check for
> the property _GTK_FRAME_EXTENTS and create a Q_PROPERTY in Client for it.
> If we add support for the frame extents in future we would also need
> this. So it's not a change just for enforcing the decoration.
> 
> The actual enforcing is done through a KWin script so users can still
> disable it.
> 
> [1] https://mail.gnome.org/archives/wm-spec-list/2014-June/msg00002.html
> [2] https://bugzilla.gnome.org/show_bug.cgi?id=729721
> 
> 
> Diffs
> -----
> 
>   atoms.h d52223504a78909efa7c18d7e96feebec8f3cb21 
>   atoms.cpp 576e85f0c0e865721a1b513af9d1ad1bfdb580ea 
>   client.h 8e41e203d01b41fdd918c35fb3dc9353d7e41774 
>   client.cpp 608e6a8435ad9bc7d86ff813038023648e6b7b1e 
>   events.cpp 514eecc69d81136d8975155e0fbb3fef39d3a346 
>   manage.cpp fbdf19570418e412cdadb54f36cf94e5da24db4f 
>   scripts/CMakeLists.txt feeb288250407f5f2bd4b3ea878f21640ebb7d20 
>   scripts/enforcedeco/contents/code/main.js PRE-CREATION 
>   scripts/enforcedeco/metadata.desktop PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/119062/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Martin Gräßlin
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140701/c2fbff83/attachment.html>


More information about the Plasma-devel mailing list