]> git.eshelyaron.com Git - emacs.git/commitdiff
Update Android port
authorPo Lu <luangruo@yahoo.com>
Sun, 9 Jul 2023 02:05:08 +0000 (10:05 +0800)
committerPo Lu <luangruo@yahoo.com>
Sun, 9 Jul 2023 02:05:08 +0000 (10:05 +0800)
* java/org/gnu/emacs/EmacsDrawPoint.java (perform): Don't fill
an extra pixel.
* java/org/gnu/emacs/EmacsService.java (onCreate): Make sure
scaledDensity is always at least 160 dpi.

java/org/gnu/emacs/EmacsDrawPoint.java
java/org/gnu/emacs/EmacsService.java

index de8ddf09cc4d9616dbf0e1d60d01f69d9e52748f..6a1cb744d60a7d97bba907b8d35993a40f0f99d4 100644 (file)
@@ -25,7 +25,10 @@ public final class EmacsDrawPoint
   perform (EmacsDrawable drawable,
           EmacsGC immutableGC, int x, int y)
   {
-    EmacsDrawRectangle.perform (drawable, immutableGC,
+    /* Use EmacsFillRectangle instead of EmacsDrawRectangle, as the
+       latter actually draws a rectangle one pixel wider than
+       specified.  */
+    EmacsFillRectangle.perform (drawable, immutableGC,
                                x, y, 1, 1);
   }
 }
index 62fd27402860dae33a9c304a5fece8b306909b77..f484e2c9ca3f4cf72346225b84f1b8081da2b556 100644 (file)
@@ -225,6 +225,17 @@ public final class EmacsService extends Service
                     * pixelDensityX);
     resolver = getContentResolver ();
 
+    /* If the density used to compute the text size is lesser than
+       160, there's likely a bug with display density computation.
+       Reset it to 160 in that case.
+
+       Note that Android uses 160 ``dpi'' as the density where 1 point
+       corresponds to 1 pixel, not 72 or 96 as used elsewhere.  This
+       difference is codified in PT_PER_INCH defined in font.h.  */
+
+    if (scaledDensity < 160)
+      scaledDensity = 160;
+
     try
       {
        /* Configure Emacs with the asset manager and other necessary
@@ -240,7 +251,9 @@ public final class EmacsService extends Service
 
        Log.d (TAG, "Initializing Emacs, where filesDir = " + filesDir
               + ", libDir = " + libDir + ", and classPath = " + classPath
-              + "; fileToOpen = " + EmacsOpenActivity.fileToOpen);
+              + "; fileToOpen = " + EmacsOpenActivity.fileToOpen
+              + "; display density: " + pixelDensityX + " by "
+              + pixelDensityY + " scaled to " + scaledDensity);
 
        /* Start the thread that runs Emacs.  */
        thread = new EmacsThread (this, new Runnable () {