Results 1 to 7 of 7

Thread: Client Side Decoration Improvements Land In GTK+

  1. #1
    Join Date
    Jan 2007
    Posts
    15,627

    Default Client Side Decoration Improvements Land In GTK+

    Phoronix: Client Side Decoration Improvements Land In GTK+

    Matthias Clasen landed a few client-side decoration improvements on Sunday night for the GTK tool-kit...

    http://www.phoronix.com/vr.php?view=MTU2OTE

  2. #2
    Join Date
    Jan 2011
    Posts
    426

    Default

    So with Wayland, itís GTK that defines the way windows are handled, and not the window manager?

  3. #3

    Default

    Quote Originally Posted by stqn View Post
    So with Wayland, itís GTK that defines the way windows are handled, and not the window manager?
    Wayland clients are required to be able to provide client side decorations. This is the preferred mode of operation but the last discussion I saw about xdg-shell, which provides desktop app specific protocol for Wayland clients, was that applications also have to respect the request to run with no CSD. This allows for the compositor to draw the decorations instead. By the current design you shouldn't see much difference.

    Martin Graesslin, the kwin maintainer, has a good list of reasons why he does not like CSD. He has some good points but I think the issues he mentioned will be fixed via the distribution providing consistent themes across toolkits, additions to xdg-shell, and better common glue libraries between compositors.

  4. #4
    Join Date
    Jun 2011
    Posts
    840

    Default

    Quote Originally Posted by stqn View Post
    So with Wayland, itís GTK that defines the way windows are handled, and not the window manager?
    Well, they wrote CSD for Wayland - but in actuality, if you are using Gnome-3.10 (and not using Wayland), then you are already using CSD on X.org (for some core-gnome apps; Nautilus, Gnome-control-center, tweak-tool, etc).

    Client-Side decorations in Gnome are provided by gtkheaderbar; https://developer.gnome.org/gtk3/3.10/GtkHeaderBar.html ... it's very similar to gtkbox (which is essentially a toolbar-type widget, that can include buttons, etc), except with gtkheaderbar you can have things like a close-button / talk to the WM.

    ... on a general note: i hope they fix the gtkheaderbar theming issue, where (in gnome-tweak-tool, for example) they use 2 gtkheaderbar(s), and while the second one themes properly - the first one doesn't respect my gtk3/CCS settings/theming - note the top-left window (gnome-tweak-tool) and it's ugly grey, vertical line that should be the same color as the headerbar (#222222);



    Unfortunately, since I am not a Gnome-Shell user and I can't turn off CSD in Gnome, I am in the process of modding my theme && making sure that all CSD apps use Server-side decorations. (since, Compiz won't draw shadows on CSD windows, afaict). I'd also like to remove the gtkheaderbar close-buttons, but it looks like i would need to patch every app since it is defined in an apps code, not globally :\ - https://developer.gnome.org/gtk3/3.1...w-close-button ... lame.

    well, maybe this year nvidia will release an EGL driver that works with Wayland - then i won't need to hack around gnome's poor integration. ie: some gtk3 apps use SSD, while other core apps use CSD, while gtk2 uses SSD... then, gtk2 + gtk3 themes rarely (if ever) actually match in terms of theming... annoying stuff.

    on the bright-side (once things settle down), it will be nice to not have the window decoration be rendered separately from the window contents - which inherently causes ugly-clipping / aliasing (a particularly noticable example would be KDE or Compiz + wobbly windows.)

  5. #5
    Join Date
    Sep 2008
    Location
    Seattle, WA, US
    Posts
    121

    Default

    Quote Originally Posted by stqn View Post
    So with Wayland, itís GTK that defines the way windows are handled, and not the window manager?
    By default I guess you would say? Evidently, there is nothing keeping you from writing a compositor (closest to a WM that wayland has, default demo compositor is weston) that does server-side decorations. Thank goodness, cause CSD is just gross. Hope someone makes one (or hopefully several) before wayland becomes hard to avoid.

  6. #6
    Join Date
    Aug 2012
    Location
    Pennsylvania, United States
    Posts
    1,934

    Default

    Quote Originally Posted by stqn View Post
    So with Wayland, itís GTK that defines the way windows are handled, and not the window manager?
    Actually in Wayland its up to the window manager to decide that :P Last I checked Kwin's idea was going to be to expose a config option that allows "All clients use CSD's", "All Clients use SSD's, but if the app provides a custom CSD then let it go ahead and use it" or "All clients use SSD's no matter what."

    If anyone can post a citation to a change of plans please do, because that info came from a Blog post of Martin's from awhile back, so things may have changed in the interim.

  7. #7

    Default

    Quote Originally Posted by Ericg View Post
    but if the app provides a custom CSD then let it go ahead and use it" or "All clients use SSD's no matter what."

    If anyone can post a citation to a change of plans please do, because that info came from a Blog post of Martin's from awhile back, so things may have changed in the interim.
    The discussion was titled "Thoughts about decoration information in the xdg_shell":
    http://lists.freedesktop.org/archive...er/012004.html

    From the above discussion I believe the consensus was that the compositor will just tell the client if it wants the client to display it's own CSD or not.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •