New resize borders

Part of my work at Canonical involves implementing new ways to make the existing user interface beautiful, usable and accessible at the same time. One of the things that has been done recently in the theme was to make the window border size quite small, so that you don’t have large visually distracting borders on your application.

This, unfortunately, meant that grabbing said borders was actually very difficult because they were so small, and with a conventional mouse they were easy to miss. Which led to people filing bug 160311 “Resizing windows by grabbing borders is difficult”.

The general consensus here was to find a way to keep the borders out of the way of the user, but still give the user some space to grab the window for resizing in an accessible and usable way. This is also beneficial for touchscreens where you don’t really have the same kind of precision as you do with a mouse pointer, but you don’t want the clutter of making the border finger-friendly.

The result is that we are now going to land a new libdecoration which allows a semantic difference between the visible window border and the frame input window, and also changes withing the metacity theme spec and unity-window-decorator. And it is quite a nice touch to use.

Have a look at this video here to see how they work (embedding is broken at the moment)

13 thoughts on “New resize borders

  1. I would have thought a solution already existed: Alt+Right-drag (not sure if Compiz defaults to middle-drag). Or for that matter, just have a corner grip consistently enforced in GTK+ apps.

    1. Indeed, they both do. However dragging windows by the sides is still difficult and the most intuitive way of resizing a window.

  2. The fact is, resizing is/was difficult even if some border is in place. You have to be extremely precise to get the pointer to change to resizing mode.

    I wonder: this “virtual” extended frame, how many pixel around the window we are talking about? Will it be available only for border-less windows?

    1. It requires a compositing manager. I have patches in metacity to make this work, but it only exports the theme values – the actual implementation is in the compiz decorators.

      1. how and where is this defined in a given metacity theme?

        i would like to add this to my metacity theme ( i modify my themes), and hopefully this isn’t Unity only…?

        as i am using gnome 3 + compiz (latest git, built today). i am using gtk-window-manager with a modified metabox theme. I would like to add the necessary code to my theme, as i am Mac-style (1 or zero pixels for left/right/bottom of decorations).

        any help would be great 🙂

        i just need to know what needs to be defined in a metacity .xml…

Leave a comment