Для прямоугольника - да, удобнее. А вот хотя бы круга или треугольника - какой курсор показывать на resize? Для чуть более сложной фигуры эта техника может вообще оказаться нереальной/невыполнимой. Зачем же обещать это пользователю?
Если говорить о haтdles, то обычно возникают др. проблемы. Напр: есть 10 (или больше айтемов каждый из которых может иметь handles). Пользователь выбрал все 10. - у всех показать handles или как?
Др. ситуация: один из айтемов полностью перекрыт другими. Как пользователь сможет выбрать перекрытый? Должны ли показываться handles если айтем выбран но перекрыт?
Когда фигура сложнее прямоугольника, там появляется много других проблем и функциональность "ручек" там не самая большая проблема. Многоугольник или свободную кривую вообще не понятно как редактировать с помощью ручек. Можно редактировать с использованием сплайнов для сглаживания, можно без, можно вообще использовать NURB-сплайны, тогда ручки вообще будут лежать вне граней и т.д. В данной задаче у меня ничего сложнее прямоугольника редактировать не требуется. Слишком обобщать, универсализировать и абстрагировать бывает наоборот вредно.
Сейчас у меня при выборе рамки ее zValue устанавливается больше, чем zValue всех остальных, поэтому он автоматом выходит на передний план. Но естественно, что если одна рамка полностью перекрыта другой рамкой, то перекрытую не получится вытащить, не отодвинув ту, которая перекрывает. При перекрытии "ручки" перекрытых рамок не скрываю, всё прозрачно, а зачем их скрывать? Вообще сейчас я ручки убираю только если isResizable == false.