]> git.openstreetmap.org Git - rails.git/commitdiff
Pan map when showing/hiding sidebars depending on ltr/rtl
authorAnton Khorev <tony29@yandex.ru>
Thu, 22 Sep 2022 13:33:28 +0000 (16:33 +0300)
committerAnton Khorev <tony29@yandex.ru>
Thu, 22 Sep 2022 13:33:28 +0000 (16:33 +0300)
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.sidebar.js

index ffb2d7a2140f52199e28e4521cea68b5f6ed65c1..105b03ed694adfc238b02ea9b17d9a992759a87c 100644 (file)
@@ -300,12 +300,17 @@ L.OSM.Map = L.Map.extend({
   },
 
   setSidebarOverlaid: function (overlaid) {
+    var sidebarWidth = 350;
     if (overlaid && !$("#content").hasClass("overlay-sidebar")) {
       $("#content").addClass("overlay-sidebar");
-      this.invalidateSize({ pan: false })
-        .panBy([-350, 0], { animate: false });
+      this.invalidateSize({ pan: false });
+      if ($("html").attr("dir") !== "rtl") {
+        this.panBy([-sidebarWidth, 0], { animate: false });
+      }
     } else if (!overlaid && $("#content").hasClass("overlay-sidebar")) {
-      this.panBy([350, 0], { animate: false });
+      if ($("html").attr("dir") !== "rtl") {
+        this.panBy([sidebarWidth, 0], { animate: false });
+      }
       $("#content").removeClass("overlay-sidebar");
       this.invalidateSize({ pan: false });
     }
index f51aaa72829dfe74e2d26b1705f0372c406d24ec..7e72278e322711e51cd3d538eed0334bbd5ed01f 100644 (file)
@@ -17,6 +17,8 @@ L.OSM.sidebar = function (selector) {
   };
 
   control.togglePane = function (pane, button) {
+    var paneWidth = 250;
+
     current
       .hide()
       .trigger("hide");
@@ -25,12 +27,18 @@ L.OSM.sidebar = function (selector) {
       .removeClass("active");
 
     if (current === pane) {
+      if ($("html").attr("dir") === "rtl") {
+        map.panBy([-paneWidth, 0], { animate: false });
+      }
       $(sidebar).hide();
       current = currentButton = $();
     } else {
       $(sidebar).show();
       current = pane;
       currentButton = button || $();
+      if ($("html").attr("dir") === "rtl") {
+        map.panBy([paneWidth, 0], { animate: false });
+      }
     }
 
     map.invalidateSize({ pan: false, animate: false });