From c3931df2ae06edf48983c5e629ba2c1b12721400 Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Thu, 7 Apr 2016 16:24:27 -0700 Subject: [PATCH 01/10] Fix shadow block init on headless workspaces. --- core/connection.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/connection.js b/core/connection.js index 89b4aef27..8f32d746b 100644 --- a/core/connection.js +++ b/core/connection.js @@ -543,7 +543,9 @@ Blockly.Connection.prototype.disconnect = function() { } else { throw 'Child block does not have output or previous statement.'; } - blockShadow.initSvg(); + if (blockShadow.initSvg) { + blockShadow.initSvg(); + } blockShadow.render(false); } From d269f70f953fc5d5aef3090c9caa22a8cfd3716b Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Thu, 7 Apr 2016 17:07:02 -0700 Subject: [PATCH 02/10] Don't fire 'click' events when opening bubbles. Fix groups on context menu deletes. --- core/events.js | 9 +++++++++ core/widgetdiv.js | 2 -- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/core/events.js b/core/events.js index bc301ddbe..ee401c99e 100644 --- a/core/events.js +++ b/core/events.js @@ -145,6 +145,15 @@ Blockly.Events.filter = function(queueIn, forward) { event1.newValue = event2.newValue; queue.splice(j, 1); j--; + } else if (event1.type == Blockly.Events.UI && + event2.element == 'click' && + (event1.element == 'commentOpen' || + event1.element == 'mutatorOpen' || + event1.element == 'warningOpen')) { + // Merge change events. + event1.newValue = event2.newValue; + queue.splice(j, 1); + j--; } } } diff --git a/core/widgetdiv.js b/core/widgetdiv.js index 804b4fa6b..817d15bac 100644 --- a/core/widgetdiv.js +++ b/core/widgetdiv.js @@ -82,7 +82,6 @@ Blockly.WidgetDiv.show = function(newOwner, rtl, dispose) { Blockly.WidgetDiv.DIV.style.top = xy.y + 'px'; Blockly.WidgetDiv.DIV.style.direction = rtl ? 'rtl' : 'ltr'; Blockly.WidgetDiv.DIV.style.display = 'block'; - Blockly.Events.setGroup(true); }; /** @@ -98,7 +97,6 @@ Blockly.WidgetDiv.hide = function() { Blockly.WidgetDiv.dispose_ && Blockly.WidgetDiv.dispose_(); Blockly.WidgetDiv.dispose_ = null; goog.dom.removeChildren(Blockly.WidgetDiv.DIV); - Blockly.Events.setGroup(false); } }; From bb2214581c1bc4dc0aaf967751a08370edd691dd Mon Sep 17 00:00:00 2001 From: Neil Fraser Date: Fri, 8 Apr 2016 18:40:20 -0700 Subject: [PATCH 03/10] Corrections to ms. --- demos/code/msg/ms.js | 4 ++-- demos/plane/generated/ms.js | 6 +++--- demos/plane/xlf/translated_msgs_ms.xlf | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/demos/code/msg/ms.js b/demos/code/msg/ms.js index f3801cd0b..87ee8deef 100644 --- a/demos/code/msg/ms.js +++ b/demos/code/msg/ms.js @@ -3,7 +3,7 @@ var MSG = { blocks: "Blok", linkTooltip: "Simpan dan pautkan kepada blok.", runTooltip: "Jalankan aturcara yang ditetapkan oleh blok-blok di dalam ruang kerja.", - badCode: "Ralat atur cara:\n%1", + badCode: "Ralat aturcara:\n%1", timeout: "Takat maksimum lelaran pelaksanaan dicecah.", trashTooltip: "Buang semua Blok.", catLogic: "Logik", @@ -20,5 +20,5 @@ var MSG = { linkAlert: "Kongsikan blok-blok anda dengan pautan ini:\n\n%1", hashError: "Maaf, '%1' tidak berpadanan dengan sebarang aturcara yang disimpan.", xmlError: "Fail simpanan anda tidak dapat dimuatkan. Jangan-jangan ia dicipta dengan versi Blockly yang berlainan?", - badXml: "Ralat ketika menghuraian XML:\n%1\n\nPilih 'OK' untuk melucutkan suntingan anda atau 'Batal' untuk bersambung menyunting XML-nya." + badXml: "Ralat ketika menghuraikan XML:\n%1\n\nPilih 'OK' untuk melucutkan suntingan anda atau 'Batal' untuk bersambung menyunting XML-nya." }; diff --git a/demos/plane/generated/ms.js b/demos/plane/generated/ms.js index 3641f6eaa..1a9a447da 100644 --- a/demos/plane/generated/ms.js +++ b/demos/plane/generated/ms.js @@ -5,7 +5,7 @@ if (typeof planepage == 'undefined') { var planepage = {}; } planepage.messages = function(opt_data, opt_ignored, opt_ijData) { - return '
Baris: %1baris (%1)Baris kelas pertama: %1baris kelas pertama (%1)Baris kelas ke-2: %1baris kelas ke-2 (%1)Tempat duduk: %1?tempat duduk =
'; + return '
Baris: %1baris (%1)Baris kelas pertama: %1baris kelas pertama (%1)Baris kelas kedua: %1baris kelas kedua (%1)Tempat duduk: %1?tempat duduk =
'; }; @@ -21,10 +21,10 @@ planepage.start = function(opt_data, opt_ignored, opt_ijData) { output += 'Sebuah kapal terbang mempunyai sebilangan baris tempat duduk penumpang. Setiap baris mengandungi empat tempat duduk.'; break; case 2: - output += 'Sebuah kapal terbnag mempunyai tempat duduk di kokpit (untuk juruterbang dan pembantunya) dan sebilangan baris tempat duduk penumpang. Setiap baris mengandungi empat tempat duduk.'; + output += 'Sebuah kapal terbang mempunyai tempat duduk di kokpit (untuk juruterbang dan pembantunya) dan sebilangan baris tempat duduk penumpang. Setiap baris mengandungi empat tempat duduk.'; break; case 3: - output += 'Sebuah kapal terbnag mempunyai tempat duduk di kokpit (untuk juruterbang dan pembantunya) dan sebilangan baris tempat duduk penumpang kelas pertama dan kelas kedua. Setiap baris kelas pertama mengandungi empat tempat duduk. Setiap baris kelas pertama mengandungi lima tempat duduk.'; + output += 'Sebuah kapal terbang mempunyai tempat duduk di kokpit (untuk juruterbang dan pembantunya) dan sebilangan baris tempat duduk penumpang kelas pertama dan kelas kedua. Setiap baris kelas pertama mengandungi empat tempat duduk. Setiap baris kelas pertama mengandungi lima tempat duduk.'; break; } output += '

Wujudkan formula (di bawah) yang mengira jumlah tempat duduk di dalam kapal terbang sedangkan baris-barisnya diubah (di atas).

- + @@ -40,10 +40,10 @@   PHP   - Dart -   Lua   + Dart +   XML