[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 16:18:56 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 96fdd32c0246f898d0ce65362de55edf7ceb7b31
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Nov 22 09:27:03 2010 +0000

    2010-11-22  João Paulo Rechi Vita  <jprvita at profusion.mobi>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            Fix EWebLauncher zoom discretization
            https://bugs.webkit.org/show_bug.cgi?id=49810
    
            * EWebLauncher/main.c:
            (nearest_zoom_level_get):
            (zoom_level_set):
            (on_load_finished):
            (on_key_down):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72506 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 6edd932..4a016c1 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,16 @@
+2010-11-22  João Paulo Rechi Vita  <jprvita at profusion.mobi>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Fix EWebLauncher zoom discretization
+        https://bugs.webkit.org/show_bug.cgi?id=49810
+
+        * EWebLauncher/main.c:
+        (nearest_zoom_level_get):
+        (zoom_level_set):
+        (on_load_finished):
+        (on_key_down):
+
 2010-11-21  Sam Weinig  <sam at webkit.org>
 
         Rubber-stamped by Dan Bernstein.
diff --git a/WebKitTools/EWebLauncher/main.c b/WebKitTools/EWebLauncher/main.c
index 8ba58d8..c9f08d7 100644
--- a/WebKitTools/EWebLauncher/main.c
+++ b/WebKitTools/EWebLauncher/main.c
@@ -60,6 +60,7 @@
 #define MAX_ZOOM_LEVEL 13
 
 static int currentZoomLevel = DEFAULT_ZOOM_LEVEL;
+static float currentZoom = 1.0;
 
 // the zoom values are chosen to be like in Mozilla Firefox 3
 static int zoomLevels[] = {30, 50, 67, 80, 90,
@@ -183,7 +184,19 @@ print_history(Eina_List *list)
     }
 }
 
-static void
+static int
+nearest_zoom_level_get(float factor)
+{
+    int i, intFactor = (int)(factor * 100.0);
+    for (i = 0; zoomLevels[i] <= intFactor; i++) { }
+    printf("factor=%f, intFactor=%d, zoomLevels[%d]=%d, zoomLevels[%d]=%d\n",
+           factor, intFactor, i-1, zoomLevels[i-1], i, zoomLevels[i]);
+    if (intFactor - zoomLevels[i-1] < zoomLevels[i] - intFactor)
+        return i - 1;
+    return i;
+}
+
+static Eina_Bool
 zoom_level_set(Evas_Object *webview, int level)
 {
     float factor = ((float) zoomLevels[level]) / 100.0;
@@ -192,7 +205,7 @@ zoom_level_set(Evas_Object *webview, int level)
     evas_object_geometry_get(webview, &ox, &oy, NULL, NULL);
     cx = mx - ox;
     cy = my - oy;
-    ewk_view_zoom_animated_set(webview, factor, 0.5, cx, cy);
+    return ewk_view_zoom_animated_set(webview, factor, 0.5, cx, cy);
 }
 
 static void
@@ -284,6 +297,10 @@ on_load_finished(void *user_data, Evas_Object *webview, void *event_info)
     else
         info("Failed loading page: %d %s \"%s\", url=%s\n",
              err->code, err->domain, err->description, err->failing_url);
+
+    currentZoom = ewk_view_zoom_get(webview);
+    currentZoomLevel = nearest_zoom_level_get(currentZoom);
+    info("WebCore Zoom=%f, currentZoomLevel=%d\n", currentZoom, currentZoomLevel);
 }
 
 static void
@@ -557,12 +574,12 @@ on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
         info("Command::keyboard navigation toggle\n");*/
     } else if (!strcmp(ev->key, "F7")) {
         info("Zoom out (F7) was pressed.\n");
-        if (currentZoomLevel > MIN_ZOOM_LEVEL)
-            zoom_level_set(obj, --currentZoomLevel);
+        if (currentZoomLevel > MIN_ZOOM_LEVEL && zoom_level_set(obj, currentZoomLevel - 1))
+            currentZoomLevel--;
     } else if (!strcmp(ev->key, "F8")) {
         info("Zoom in (F8) was pressed.\n");
-        if (currentZoomLevel < MAX_ZOOM_LEVEL)
-            zoom_level_set(obj, ++currentZoomLevel);
+        if (currentZoomLevel < MAX_ZOOM_LEVEL && zoom_level_set(obj, currentZoomLevel + 1))
+            currentZoomLevel++;
     } else if (!strcmp(ev->key, "F9")) {
         info("Create new window (F9) was pressed.\n");
         Eina_Rectangle geometry = {0, 0, 0, 0};

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list