From 74cc3fbc17235f5c0010c363342a9a9adaf85c4e Mon Sep 17 00:00:00 2001 From: Maxim Monastirsky Date: Tue, 21 Jul 2015 10:58:39 +0300 Subject: tdf#36796 Status updates for custom shapes buttons We're dealing here with 2 bugs: 1. Single shape buttons (like rectangle, ellipse etc.) don't get the pressed state when active. The cause is that all commands of the same kind (Basic Shapes, Symbol Shapes etc.) are handled as one internally, allowing only one type of status updates. It used to transport the current active shape, but it was changed to a boolean value in the fix for i#41753, and since then used for the pressed state of the group buttons. 2. The pressed state of a group button shows always, even when a user activates a shape from a place other than the drop-down of that button. But in this case the image of the group button doesn't update with the current shape, thus confusing the user on what is currently active. The cause here is that we use (since i#41753) the XSubToolbarController interface to update the last selected function (instead of the old-style status based update), and ToolBarManager notifies a controller about a new selection only if it was made from a particular toolbar that the controller claimed to use in the getSubToolbarName method. Since 7352a7c17875e5adcc4226c45f4a03e11c44ff49 there is a similar regression for other group buttons in sd (like lines, 3D Objects and other), with the same cause. This is also fixed now. Change-Id: Ida074a001ff78bf5bd5bcb8151516daa6e27cbce --- sd/source/ui/inc/fuconcs.hxx | 1 + 1 file changed, 1 insertion(+) (limited to 'sd/source/ui/inc/fuconcs.hxx') diff --git a/sd/source/ui/inc/fuconcs.hxx b/sd/source/ui/inc/fuconcs.hxx index 63c6b71a28f8..5e253a2813ac 100644 --- a/sd/source/ui/inc/fuconcs.hxx +++ b/sd/source/ui/inc/fuconcs.hxx @@ -46,6 +46,7 @@ public: virtual void Activate() SAL_OVERRIDE; void SetAttributes( SdrObject* pObj ); + OUString GetShapeType() const; virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle) SAL_OVERRIDE; -- cgit