Resize; Rotate; and Breathe…

There have been many complaints about how resizing and rotating happens on widget handles. Hopefully most of those should be assuaged with the last few commits I’ve made.

Here’s what you used to get if you rotated an widget, moved off the widget (so the handles disappeared) and hovered over it again:

Resize; Rotate; and Breathe…

You’ll notice that the handle isn’t rotated, even though the widget is. Also, you’re expected to resize and rotate with a single button (which is the rotate symbol, despite the fact that you’re much more likely to want to resize than rotate the widget). There were also odd quirks with rotating where it would jump about when you released the mouse button or moved off the widget; and if you rotated it, released the mouse button then started rotating again (without leaving the widget), the widget would jump back to its “unrotated” state and start from there.

Well, now all that’s fixed:

Resize; Rotate; and Breathe…

There’s a separate resize button (it still maintains aspect ratio by default, because most widgets have an “ideal” ratio that they start with, but you can freely resize it with CTRL). The rotate button works as expected. And the handle starts at the same rotation as the applet.

Edit: A couple of things I meant to mention and forgot – this will be in 4.0.1, and the jagged edges do exist in the original, but are made worse by the scaling of the images (click on them to get full size).


27 Responses to “Resize; Rotate; and Breathe…”

  1. sdrawkcab-dept Says:


  2. KarPer Says:

    One Word: Awesome. 🙂

    Also, there should be some smoothing done to make the edges look less ragged. Or it could be that you captured the screenshot at a low resolution to keep the image size small…

  3. pedroleite Says:

    Well, a problem I see is the anti-aliasing, but this should be easy to fix.

  4. kwilliam Says:

    🙂 🙂 🙂 🙂
    Hurray! (Too bad that didn’t make it into 4.0.) Wonderful development. You Plasma guys do an awesome job.

  5. Marcus D. Hanwell Says:

    That looks great – massive improvement. It is polish like this that will make Plasma look absolutely awesome in the 4.1 release (already looking pretty good!)

  6. Thomas Says:

    Very nice. I’m just wondering: will it snap to perfectly horizontal or vertical or something like that for the pedantic among us who couldn’t bear to have to have a pixel step or two?

  7. Bernhard Says:

    Yeah… you’ve done again a very good job!

    Maybe these things can get backported into the 4.0.0 branch. Has this even been discussed yet on the panel-devel mailing list?

    With the best regards


  8. jospoortvliet Says:

    Nice work, though I’m personally not sure if the separate resize and rotate button are an improvement. I mean, really, I don’t know 😉

    I do know I don’t like the looks of rotated plasmoids – why is the anti-aliasing so horrible? According to a troll in a different but probably comparable situation, it’s due to the style painting he said:

  9. Aurélien Gâteau Says:

    Nice work. If I were to nitpick (and I usually do 🙂 ), I would suggest using another icon for the resize action. This one looks more like a move action.
    A nicer solution IMO (but I am not sure others will agree) would be to present the resize action as a size grip, like the one you can find on most dialogs. Even nicer would be to have it in the bottom right corner, where size grips are placed.

  10. Diederik van der Boor Says:

    Whoa. two visible improvements today in plasma that make a difference 🙂 thumbs up!

  11. James Says:

    Even nicer, would be if Ctrl-RMB worked to resize.

  12. Nisse Says:

    What also would be awesome is one handle in each corner, like in the old icons. Then the resize handles could be placed in the bottom right corner as suggested. Just a thought.
    Otherwise, great work!

  13. Jakob Petsovits Says:

    Aurelien: Indeed that’s the transform-move icon, but I guess they’re doing it because transform-scale is still missing in SVN. Would be interesting to know what happened to it after David Miller said to have it Nearly Done (TM).

  14. Thomas Zander Says:

    @Alex; have you thought about following the resize/move concepts that you can find in KOffice? Having a very different way to do this same action may not be the best thing for end users.

    @jospoortvliet: its due to antialiasing not being turned on for the plasoid outlines.
    Notice how the rotated text looks quite a bit better, its got AA on.

  15. nerowolfe Says:

    Great work! keep up!

    What about inversely rotating the resize/rotate/delete icons so that they always look straight?

  16. morphie Says:

    The first screenshot is tear-free, the second isn’t. Is that due to your change? Maybe that should be looked at then. 🙂

  17. randomguy3 Says:

    @kwilliam: it’ll be in 4.0.1

    @Aurélien Gâteau: transform-move was the only available icon in SVN that would look even remotely right

    A size grip would probably be better – that certainly won’t make it to the 4.0 branch, but I might see about having it in 4.1.

    @various people: the jagged edges get _much_ better if you view the images full size (by clicking on them)

  18. randomguy3 Says:

    @nerowolfe: that would cause all sorts of problems, and I’m not really sure it would be intuitive.

    @Thomas Zander: We went for maintaining aspect ratio by default for the reason I gave in the post. After we’d changed that, making the modifier key match seemed a little pointless. It’s worth bearing in mind that this isn’t a graphics program, and so a different style of interaction is probably to be expected.

  19. Hans Says:


    However, I agree with Thomas. The ‘maintain aspect ratio’ feature isn’t something I as a user would expect. It’s not only about graphic applications – my experience with computer GUIs says that “if I resize to the right/left, it becomes wider/narrower, and the height changes if I drag the cursor up/down”. I see this when I resize windows, in graphic programs as mentioned before, things like Kickoff etc. In Qt, widgets have an ideal size (as far as I know), but you still resize them ‘the normal way’ in Designer.

    I think many users will get annoyed with the keep aspect thing, and personally I don’t think I would figure out how to undo it. Someone would have to tell me, and until then, I would just think it was due to a limitation of Plasma.

    If the plasmoids would resize freely, I think many users will discover the ‘mar’ feature. Those who don’t will simply try to make it look as good as possible. And someday, hopefully, discover the cool “hidden” feature of Plasma.


  20. Nick Says:

    Nice job ! I’d just like to make an observation : as i see it, a rotation around the z-axis seems to take more space and the context of the widget is harder to read. The only use I can think for this rotation is to add aesthetic value and yes, this is really nice to have. Wouldn’t it be much better though if the plasmoids could be rotated around the x and y axis ? This could also be for aesthetic reasons, but on top of that it could result to more ergonomic use of the desktop space. This is not a whine of course, only a suggestion 🙂

  21. Pelican Lover Says:

    Wooo, back in corpus tomorrow!

  22. Torsten Rahn Says:

    From an artist point of view maintaining the aspect ratio is important. Because there are many cases where you _do_ _not_ _want_ to change the aspect ratio because it will look amateurish and I see lots of screenshots of artistically impaired users of KDE4 coming, if we allow easily to change the aspect ratio.

    Suggested solution: make the aspect ratio (only a bit) MAGNETIC, so that if the user “tries” somewhat to keep the aspect ratio then the resizing algorithm should “correct” the ratio. If the cursor position of the mouse is a bit too much off from the “correct” position then it should allow a free resize.

  23. morphie Says:

    @randomguy3: I viewed them full size. I’m talking about the full size versions….

  24. Sirius Says:

    What about using ctrl or shift combined with rotate to snap to every 1/8th of 360 degrees, but otherwise rotate freely?

  25. randomguy3 Says:

    @Torsten Rahn: we already do some “magnetic” sizing and rotating, so that could work quite well.

    @Sirius: worth considering

    @morphie: well, that’s lack of antialiasing, then. You’ll notice the handles don’t have jagged edges, only the applet background. Something to do with the SVG rendering.

  26. morphie Says:

    Yeah, ok, but then the question remains: why is there a noticable difference in antialiasing between the first and the second screenshot.

    Look, it’s great work you’ve done, but if it introduced aliasing, then that might need a fix.

  27. randomguy3 Says:

    @morphie: ok, I’ve figured it out: it’s down to how the background is drawn. I’ve been playing with the clock, and rotating it causes jagged edges that disappeared when the applet handles were gone (so the applet knew what its transform was) and the minute changed (so the clock updated and was redrawn).

    The difference between the first screenshot and the second is when the screenshot was taken – in the first one the background had a chance to redraw, but in the second it didn’t.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: