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

Martin Gräßlin mgraesslin at kde.org
Wed Jul 2 06:10:33 UTC 2014



> On July 1, 2014, 10:15 p.m., David Edmundson wrote:
> > You know my feelings on this. 
> > I will rehash them here if you really want it public. 
> > 
> > >It's our task to provide the *best possible* user experience 
> > (emphasis mine)
> > 
> > before this patch:
> > http://imgur.com/RjtXN0n,VZBmD7G#1
> > 
> > after this patch:
> > http://imgur.com/RjtXN0n,VZBmD7G#0
> > 
> >
> 
> Thomas Lübking wrote:
>     I think you uploaded the same image twice.
>     
>     try with
>     ------- snip ~/.config/gtk-3.0/gtk.css --------------
>     .window-frame {box-shadow: none; margin: 0px; padding:0px}
>     --------- /snip ---------------------
>     
>     best possible experience does btw. not only cover the look, but also the users ability to control windows in a consistent way (and the CSD stuff is not even consistent within itself) and not cut off WM features reg. activation, shading, tabbing, mousebutton behavior, the context menu and whatnot.
>     On the bottomline, i agree with Martin that a (double)decorated window (without client side shadows) is currently as good as it gets.
>     Improvements beyond that inevitably require client side improvements (ie. a reasonable protocol for CSD)

@David: yes I'm certainly aware of how it looks. That's why we are discussing to remove the shadow.


- Martin


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


On July 1, 2014, 4:53 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, 4:53 p.m.)
> 
> 
> Review request for kwin, Plasma and Hugo Pereira Da Costa.
> 
> 
> 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/20140702/9471681e/attachment.html>


More information about the Plasma-devel mailing list