Forráskód Böngészése

Merge branch 'master' of git.superglue.it:superglue/editor

Michael 10 éve
szülő
commit
d847b39cab

+ 14 - 21
src/allplatforms/classes/TextEditor.js

@@ -206,7 +206,11 @@ SC.loadPackage({ 'TextEditor': {
 
                         initialColor: undefined,
                         setCallback: function(colorCode){
-                            editor.composer.commands.exec('fontColorStyle', colorCode );
+                            
+                            if ( editor.composer.commands.stateValue("fontColorStyle") !== colorCode ) {
+                                editor.composer.commands.exec('fontColorStyle', colorCode );
+                            }
+
                         }
 
                     });
@@ -266,34 +270,23 @@ SC.loadPackage({ 'TextEditor': {
 
                     document.querySelector('.wysihtml5-sandbox').contentWindow.addEventListener('mouseup', function(evt) {
                         if (!fired) {
-                            if (this.getSelection().type != 'Range') {
+                            if (this.getSelection().type == 'Range') {
                                                                 
-                                //$('#textShapeToolbar .colorpicker2').removeClass('active');
-                                tmpTextColor = "rgb(0,0,0)";
-
-                            } else {
-                                
                                 var currentFontColor = undefined;
 
-                                /*
-                                var sel = editor.composer.selection.getSelection();
-                                if (sel.rangeCount > 0) {
-                                    var range = sel.getRangeAt(0);
-                                    var parentElement = range.commonAncestorContainer;
-                                    if (parentElement.nodeType == 3) {
-                                        parentElement = parentElement.parentNode;
-                                    }
-                                    if (parentElement.style.color.length > 0) {
-                                        currentFontColor = parentElement.style.color;
-                                    }
+                                if ( editor.composer.commands.stateValue("fontColorStyle") ) {
+                                    currentFontColor = editor.composer.commands.stateValue("fontColorStyle");
                                 }
-                                */
 
                                 self.do('initColorpicker', {
 
                                     initialColor: currentFontColor,
                                     setCallback: function(colorCode){
-                                        editor.composer.commands.exec('fontColorStyle', colorCode );
+                                        
+                                        if ( editor.composer.commands.stateValue("fontColorStyle") !== colorCode ) {
+                                            editor.composer.commands.exec('fontColorStyle', colorCode );
+                                        }
+
                                     }
 
                                 });
@@ -627,7 +620,7 @@ SC.loadPackage({ 'TextEditor': {
                         colorpickerInputB.value = rgb.b;
                         
                         
-                        colorPickerConfig.setCallback.call(this, 'rgb('+rgb.r+', '+rgb.g+', '+rgb.b+')');
+                        colorPickerConfig.setCallback.call(this, 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
                     }
 
                 }

+ 21 - 0
src/allplatforms/libs/wysihtml5/wysihtml5.js

@@ -10266,6 +10266,8 @@ wysihtml5.Commands = Base.extend(
 			size = (typeof(size) == "object") ? size.size : size;
 			if (!(/^\s*$/).test(size)) {
 				wysihtml5.commands.formatInline.execWithToggle(composer, command, "span", false, false, "font-size:" + size+";", REG_EXP);
+				// SUPERGLUE HACK clean up to avoid wrong line heights
+				composer.cleanUp();
 			}
 		},
 
@@ -10418,6 +10420,25 @@ wysihtml5.Commands = Base.extend(
 
 		state: function(composer, command, value) {
 			return wysihtml5.commands.formatInline.state(composer, command, "span", false, false, "color", REG_EXP);
+		},
+		
+		stateValue: function(composer, command, props) {
+			var st = this.state(composer, command),
+				colorStr,
+				val = false;
+
+			if (st && wysihtml5.lang.object(st).isArray()) {
+				st = st[0];
+			}
+
+			if (st) {
+				colorStr = st.getAttribute('style');
+				if (colorStr) {
+					val = wysihtml5.quirks.styleParser.parseColor(colorStr, "color");
+					return wysihtml5.quirks.styleParser.unparseColor(val, props);
+				}
+			}
+			return false;
 		}
 	};
 })(wysihtml5);