これは、ボタンにカスタムCSS(border-radius)があるためです。また、buttonMarkup関数は、border-radiusをデフォルトに設定します。したがって、現在の境界半径を保存し、ボタンを変更して、境界半径を復元する必要があります。
JS関数を次のように変更します。
function switchIcon() {
iconSwitched = !iconSwitched;
/* Store the objects */
var button = $('#buttonSwitch');
var parent = button.parent();
var sibling = button.siblings().filter('span').first();
/* Store the border-radius */
var br = button.css('border-radius');
var pr = parent.css('border-radius');
var sr = sibling.css('border-radius');
if (iconSwitched)
button.buttonMarkup({icon: "minus"});
else
button.buttonMarkup({icon: "add"});
/* Now, the border-radius has been set using the buttonMarkup function
* We need to restore it to our custom border-radius to get our custom radius back.
* Note that you may want to also set -webkit-border-radius
* and -moz-border-radius as well
*/
button.css('border-radius', br);
parent.css('border-radius', pr);
sibling.css('border-radius', sr);
/* Get rid of box shadow too */
parent.css('box-shadow', 'none');
};