diff --git a/ChangeLog b/ChangeLog
index 78c751ba00..c4c9d1f2e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,7 @@ phpMyAdmin - ChangeLog
- bug #4178 Quick edit for BIT type does not work
- bug #2760 Warn about incomplete exports
- bug #4190 Fractional seconds cause row update even if the value is not changed
+- bug #4170 Overflow scroll for table grid is not a good solution
4.1.1.0 (2013-12-17)
- bug #4154 Error using UNION query
diff --git a/js/makegrid.js b/js/makegrid.js
index 1426d27476..46fefbf748 100644
--- a/js/makegrid.js
+++ b/js/makegrid.js
@@ -567,8 +567,8 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
$(g.cEdit).find('.edit_area').empty().hide();
// reposition the cEdit element
$(g.cEdit).css({
- top: $cell.offset().top,
- left: $cell.offset().left
+ top: $cell.position().top,
+ left: $cell.position().left
})
.show()
.find('.edit_box')
@@ -729,10 +729,6 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
// append a null checkbox
$editArea.append('
Null:
');
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
-
var $checkbox = $editArea.find('.null_div input');
// check if current
is NULL
if ($td.is('.null')) {
@@ -831,10 +827,6 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
$editArea.find('span.curr_value').change(function () {
$(g.cEdit).find('.edit_box').val($(this).text());
});
-
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
}); // end $.post()
$editArea.show();
@@ -842,10 +834,6 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
$(g.cEdit).find('.edit_box').val($(this).val());
});
g.isEditCellTextEditable = true;
-
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
}
else if ($td.is('.enum')) {
//handle enum fields
@@ -869,19 +857,12 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
$editArea.removeClass('edit_area_loading');
$editArea.append(data.dropdown);
$editArea.append('
' + g.cellEditHint + '
');
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
}); // end $.post()
$editArea.show();
$editArea.find('select').live('change', function (e) {
$(g.cEdit).find('.edit_box').val($(this).val());
});
-
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
}
else if ($td.is('.set')) {
//handle set fields
@@ -906,19 +887,12 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
$editArea.removeClass('edit_area_loading');
$editArea.append(data.select);
$editArea.append('
' + g.cellEditHint + '
');
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
}); // end $.post()
$editArea.show();
$editArea.find('select').live('change', function (e) {
$(g.cEdit).find('.edit_box').val($(this).val());
});
-
- if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
- $editArea.addClass('edit_area_right');
- }
}
else if ($td.is('.truncated, .transformed')) {
if ($td.is('.to_be_saved')) { // cell has been edited
@@ -1045,6 +1019,9 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
$editArea.append('
' + g.cellEditHint + '
');
}
}
+ if ($(g.cEdit).offset().left + $editArea.outerWidth() > $(document.body).width()) {
+ $editArea.addClass('edit_area_right');
+ }
if ($editArea.children().length > 0) {
$editArea.show();
}
@@ -1753,7 +1730,7 @@ function PMA_makegrid(t, enableResize, enableReorder, enableVisib, enableGridEdi
});
// attach to global div
- $(g.gDiv).after(g.cEdit);
+ $(g.gDiv).append(g.cEdit);
// add hint for grid editing feature when hovering "Edit" link in each table row
if (PMA_messages.strGridEditFeatureHint !== undefined) {
diff --git a/js/navigation.js b/js/navigation.js
index 13ca3aaa48..8a3bc951ed 100644
--- a/js/navigation.js
+++ b/js/navigation.js
@@ -749,6 +749,8 @@ var ResizeHandler = function () {
this.getPos = function (event) {
var pos = event.pageX;
var windowWidth = $(window).width();
+ var windowScroll = $(window).scrollLeft();
+ pos = pos - windowScroll;
if (this.left != 'left') {
pos = windowWidth - event.pageX;
}
diff --git a/themes/original/css/common.css.php b/themes/original/css/common.css.php
index daac8d6542..b511b16bda 100644
--- a/themes/original/css/common.css.php
+++ b/themes/original/css/common.css.php
@@ -2100,11 +2100,6 @@ fieldset .disabled-field td {
width: 100%;
}
-form#resultsForm > .data {
- overflow-x: auto;
- overflow-y: hidden;
-}
-
.cDrop {
left: 0;
position: absolute;
diff --git a/themes/pmahomme/css/common.css.php b/themes/pmahomme/css/common.css.php
index 0b05cd242d..5105d1db7f 100644
--- a/themes/pmahomme/css/common.css.php
+++ b/themes/pmahomme/css/common.css.php
@@ -87,11 +87,6 @@ h2 a img {
width: 100%;
}
-form#resultsForm > .data {
- overflow-x: auto;
- overflow-y: hidden;
-}
-
#table_results td.data {
border-right: 1px solid #bbb;
}