A new control in the left end of the statusbar lets you quickly view and change the fill and stroke of the selected object(s).
* The two indicators, labelled "F:" (top) and "S:" (bottom), display fill and stroke of the selected object(s) correspondingly.
* Each indicator can display either a color/opacity swatch (the opacity shown here is the fill opacity or stroke opacity, not the master opacity) or a label specifying "N/A" (nothing selected), "None" (no fill/stroke), "Unset" (unset fill/stroke), "L Gradient", "R Gradient", "Pattern" (corresponding fill/stroke types), or "Different" (selected objects have different stroke types).
* Additionally, each indicator may be accompanied by one of two flags, "M" ("multiple", meaning there are two or more objects all with the _same_ fill/stroke) or "A" ("averaged", meaning there are two or more objects with flat color fill/stroke whose colors are averaged).
* Just as the Fill&Stroke dialog, the new control correctly displays the fill/stroke of the selected gradient handle or selected text fragment in the corresponding tools.
* Left-click on an indicator opens or activates the Fill&Stroke dialog with the corresponding tab selected.
* Right-click on an indicator opens a popup menu with the following commands:
** "Remove fill/stroke": Removes fill or stroke from the selected objects.
** "Last set color": Applies to the selected objects the fill/stroke color that was last applied to anything.
** "Last selected color": Applies to the selected objects the fill/stroke color that was last displayed in this indicator. (To easily copy fill/stroke color between objects: select source, select destination, apply "last selected color".)
** "Unset fill/stroke": Unsets fill or stroke from selected objects (useful for clone originals).
** "Edit fill/stroke...": Opens or activates the Fill&Stroke dialog with the corresponding tab selected.
* Middle-click on an indicator removes fill/stroke from selected objects; if it is already removed (i.e. if the indicator displays "None"), it does the same as the "Last set color" command from the popup menu. (In other words, it toggles between "None" and the last set color.)
The zoom field and the cursor coordinates indicator have been rearranged for compactness and moved to the right end of the statusbar.
== Implementation notes: ==
* There's no fixed pixel sizes for fonts used anywhere. Instead, the control uses a font size 70% of the current gtk default. I hope this works for most people, but I know there will be those who will find this font size too small, and others for whom it will be too large and pushing the vertical size of the statusbar. I want to hear your feedback on this.
* The new control is itself done in gtkmm, yet it uses an old GTK color preview widget, and fits nicely into the old GTK desktop widget. The Glibmm::wrap() and gobj() are all you need to combine GTK and gtkmm stuff freely. So, I may be missing something, but I really don't understand why you gtkmm guys do this --new-gui thing instead of just converting the existing desktop widget-by-widget.
* Despite lots of functionality, the new control is quite small in the code. That's because it reuses all the architectural concepts I've been slowly pushing in the last two years: desktop's current color, set and query style signals. With that in place, coding this entire control took just a couple days. It should also be easy to change or extend it.
* TODO: I also plan to add a master opacity spinbutton to this control.
-- bulia byak Inkscape. Draw Freely. http://www.inkscape.org