master ブランチでのコミットを取り込むのではなく、 master ブランチにある tiny_mce の関連ファイルに差し替える方針で対応します。
この場合、本チケットでの差分以外にも、別チケットで対応された差分が含まれることになります。
このチケットの元チケットの修正では、
- plugins/opSkinBasicPlugin/web/css/main.css
- web/js/decoration.js.src
- web/js/tiny_mce/*
と、大きく分けて 3 箇所が変更されています。 tiny_mce ディレクトリ内は多くのファイルの差分があります。
この修正を元チケットでする前の master ブランチの web/js/tiny_mce ディレクトリ内と、 stable-3.4.x の現時点での web/js/tiny_mce ディレクトリ内の差分は以下のものだけでした。
- web/js/tiny_mce/plugins/openpne/editor_plugin.js.src
$ diff -u 34x_editor_plugin.js.src master_editor_plugin.js.src
--- 34x_editor_plugin.js.src 2012-03-06 23:02:26.000000000 +0900
+++ master_editor_plugin.js.src 2012-03-06 22:57:32.000000000 +0900
@@ -55,7 +55,7 @@
for (var num in s.emoji) {
var emoji = s.emoji[num];
for (var i = emoji.start; i <= emoji.end; i++) {
- if (i == emoji.start || i % 25 == 0) {
+ if ((i - emoji.start) % 25 == 0) {
tr = DOM.add(tb, 'tr');
}
n = DOM.add(tr, 'td');
@@ -502,13 +502,8 @@
var newObj = editor.dom.create(tagname);
editor.dom.setAttribs(newObj, args);
+ editor.dom.replace(newObj, targetObj, true);
- if (tinymce.isIE) {
- newObj.innerHTML = targetObj.innerHTML;
- targetObj.parentNode.replaceChild(newObj, targetObj);
- } else {
- editor.dom.replace(newObj, targetObj, true);
- }
tagList = doc.getElementsByTagName(org_tagname);
}
s = editorDoc.innerHTML;
@@ -522,7 +517,7 @@
rep(/<\/?div>/gi,""); // for Safari
if (Prototype.Browser.IE) {
- rep(/<(\/?)op(b|u|s|i|font|large|small|color)/gi, '<$1op:$2');
+ rep(/<(\/?):?op(b|u|s|i|font|large|small|color)/gi, '<$1op:$2');
}
rep(/<br\s?\/?[^>]*>/gi,"\n\n");
上記の差分は、
- #2859 プレビューモードの絵文字パレットの右上にスペースがある
- #1306 IE7,8 tinyMCEで文字装飾が反映されない
のものです。つまり、この 2 つのチケットの修正を stable-3.4.x ブランチに取り込むことになります。
tiny_mce ディレクトリ外のファイルの差分は次のものです。
$ git di plugins/opSkinBasicPlugin/web/css/main.css
diff --git a/plugins/opSkinBasicPlugin/web/css/main.css b/plugins/opSkinBasicPlugin/web/css/main.css
index 97050ef..41049b6 100644
--- a/plugins/opSkinBasicPlugin/web/css/main.css
+++ b/plugins/opSkinBasicPlugin/web/css/main.css
@@ -1440,6 +1440,7 @@ div.activityBox div.box_list div.box_body ul.operation li {
* toolbar of opWidgetFormRichTextareaOpenPNE
*----------------------------------------------------------------------------*/
div.parts table.mceToolbar {
+ table-layout: auto;
width: auto;
}
$ git di web/js/decoration.js.src
diff --git a/web/js/decoration.js.src b/web/js/decoration.js.src
index 0145bde..2c70030 100644
--- a/web/js/decoration.js.src
+++ b/web/js/decoration.js.src
@@ -122,10 +122,13 @@ function op_mce_show_color_table(id, tagname)
Element.addClassName(table, 'disabledHideColorTable');
button_container.appendChild(table);
+ button_container.style.position = "relative";
+ button.style.display = "inline-block";
+ var buttonContainerPosition = Position.cumulativeOffset(button_container);
var buttonPosition = Position.cumulativeOffset(button);
- table.style.left = buttonPosition[0] + "px";
- table.style.top = buttonPosition[1] + button.offsetHeight + "px";
+ table.style.left = buttonPosition[0] - buttonContainerPosition[0] + "px";
+ table.style.top = buttonPosition[1] - buttonContainerPosition[1] + button.offsetHeight + "px";
}
function op_insert_str_to_selection(elm, str, start, end)