Detection of wide/narrow state changes is now done on the basis of the
[mkws-moved-to-github.git] / src / mkws-core.js
index 4a48c48..20eab4d 100644 (file)
@@ -332,12 +332,23 @@ mkws.pagerNext = function(tname) {
     function resizePage() {
        var list = ["mkwsSwitch", "mkwsLang"];
 
-       var width = mkws.config.responsive_design_width;
-       var parent = $(".mkwsTermlists").parent();
-
-       if ($(window).width() <= width &&
-           parent.hasClass("mkwsTermlist-Container-wide")) {
-           log("changing from wide to narrow: " + $(window).width());
+       var targetWidth = mkws.config.responsive_design_width;
+        var width = $(window).width();
+
+        if (mkws.width === undefined) {
+            // No state change, since we have no previous state
+        } else if (mkws.width <= targetWidth && width > targetWidth) {
+            log("narrow -> wide");
+        } else if (mkws.width > targetWidth && width <= targetWidth) {
+            log("wide -> narrow");
+        } else if (width > targetWidth) {
+            log("already wide");
+        } else {
+            log("already narrow");
+        }
+
+       if (mkws.width > targetWidth && width <= targetWidth) {
+           log("changing from wide to narrow: " + width);
            $(".mkwsTermlist-Container-wide").hide();
            $(".mkwsTermlist-Container-narrow").show();
            for (var tname in mkws.teams) {
@@ -347,9 +358,8 @@ mkws.pagerNext = function(tname) {
                    $("." + list[i] + ".mkwsTeam_" + tname).hide();
                }
            }
-       } else if ($(window).width() > width &&
-                  parent.hasClass("mkwsTermlist-Container-narrow")) {
-           log("changing from narrow to wide: " + $(window).width());
+        } else if (mkws.width <= targetWidth && width > targetWidth) {
+           log("changing from narrow to wide: " + width);
            $(".mkwsTermlist-Container-wide").show();
            $(".mkwsTermlist-Container-narrow").hide();
            for (var tname in mkws.teams) {
@@ -360,6 +370,8 @@ mkws.pagerNext = function(tname) {
                }
            }
        }
+
+        mkws.width = width;
     };