[gtk+] broadway: Make chrome work again



commit 6ef8589a512a7a45eb3de269992182f014b0575c
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Mar 29 00:23:41 2013 +0100

    broadway: Make chrome work again

 gdk/broadway/broadway.js |   42 ++++++++++++++----------------------------
 1 files changed, 14 insertions(+), 28 deletions(-)
---
diff --git a/gdk/broadway/broadway.js b/gdk/broadway/broadway.js
index 3f51e65..50a6b16 100644
--- a/gdk/broadway/broadway.js
+++ b/gdk/broadway/broadway.js
@@ -225,34 +225,16 @@ function flushSurface(surface)
            context.save();
            context.beginPath();
 
-           var minx;
-           var miny;
-           var maxx;
-           var maxy;
            for (var j = 0; j < cmd.rects.length; j++) {
                var rect = cmd.rects[j];
                context.rect(rect.x, rect.y, rect.w, rect.h);
-               if (j == 0) {
-                   minx = rect.x;
-                   miny = rect.y;
-                   maxx = rect.x + rect.w;
-                   maxy = rect.y + rect.h;
-               } else {
-                   if (rect.x < minx)
-                       minx = rect.x;
-                   if (rect.y < miny)
-                       miny = rect.y;
-                   if (rect.x + rect.w > maxx)
-                       maxx = rect.x + rect.w;
-                   if (rect.y + rect.h > maxy)
-                       maxy = rect.y + rect.h;
-               }
            }
            context.clip();
-           context.globalCompositeOperation = "copy";
-           context.drawImage(context.canvas,
-                             minx - cmd.dx, miny - cmd.dy, maxx - minx, maxy - miny,
-                             minx, miny, maxx - minx, maxy - miny);
+           // This seems to break chrome when src overlaps dest
+           // But source-over should be fine for rgb surfaces anyway
+           //context.globalCompositeOperation = "copy";
+           context.drawImage(surface.canvas,
+                             cmd.dx, cmd.dy);
            context.restore();
            break;
 
@@ -751,8 +733,12 @@ BinCommands.prototype.get_32 = function() {
 };
 BinCommands.prototype.get_image_url = function() {
     var size = this.get_32();
-    var png_blob = new Blob ([this.arraybuffer.slice (this.pos, this.pos + size)], {type:"image/png"});
-    var url = URL.createObjectURL(png_blob, {oneTimeOnly: true});
+    var png_blob = new Blob ([new Uint8Array (this.arraybuffer, this.pos, size)], {type:"image/png"});
+    var url;
+    if (window.webkitURL)
+       url = window.webkitURL.createObjectURL(png_blob);
+    else
+       url = window.URL.createObjectURL(png_blob, {oneTimeOnly: true});
     this.pos = this.pos + size;
     return url;
 };
@@ -2599,7 +2585,7 @@ function onMouseWheel(ev)
     var id = getSurfaceId(ev);
     var pos = getPositionsFromEvent(ev, id);
 
-    var offset = ev.detail ? ev.detail : ev.wheelDelta;
+    var offset = ev.detail ? ev.detail : -ev.wheelDelta;
     var dir = 0;
     if (offset > 0)
        dir = 1;
@@ -2669,12 +2655,12 @@ function login()
        var input = document.createElement("input");
        input.setAttribute("type", "password");
        div.appendChild(input);
+       input.focus ();
        input.onkeyup = function(e) {
-           if (e.keyCode === 13) {
+           if (e.keyCode === 13 && input.value != "") {
                inputSocket.send ("l" + input.value);
            }
        }
-       input.focus ();
        loginDiv = div;
     } else {
        alert ("Wrong password");


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]