Sfoglia il codice sorgente

fixes #2138 Cleaning and fixing some scrollbar issues

svn changeset:5612/svn branch:trunk
tags/6.7.0.beta1
Matti Tahvonen 15 anni fa
parent
commit
5d4b54cbbc

+ 30
- 0
src/com/itmill/toolkit/terminal/gwt/client/Util.java Vedi File

@@ -9,8 +9,11 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;

@@ -242,4 +245,31 @@ public class Util {
return detectedScrollbarSize;
}

/**
* Run workaround for webkits overflow auto issue.
*
* See: our buh #2138 and https://bugs.webkit.org/show_bug.cgi?id=21462
*
* @param elem
* with overflow auto
*/
public static void runWebkitOverflowAutoFix(final Element elem) {
// add max version if fix landes sometime to webkit
if (BrowserInfo.get().getWebkitVersion() > 0) {
DeferredCommand.addCommand(new Command() {
public void execute() {
// Dough, safari scoll auto means actually just a moped
elem.getStyle().setProperty("overflow", "hidden");
(new Timer() {
@Override
public void run() {
elem.getStyle().setProperty("overflow", "auto");
}
}).schedule(1);
}
});
}

}

}

+ 3
- 19
src/com/itmill/toolkit/terminal/gwt/client/ui/IAccordion.java Vedi File

@@ -10,7 +10,6 @@ import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Widget;
@@ -21,6 +20,7 @@ import com.itmill.toolkit.terminal.gwt.client.ICaption;
import com.itmill.toolkit.terminal.gwt.client.Paintable;
import com.itmill.toolkit.terminal.gwt.client.RenderSpace;
import com.itmill.toolkit.terminal.gwt.client.UIDL;
import com.itmill.toolkit.terminal.gwt.client.Util;

public class IAccordion extends ITabsheetBase implements
ContainerResizedListener {
@@ -161,24 +161,8 @@ public class IAccordion extends ITabsheetBase implements

client.runDescendentsLayout(item);

if (BrowserInfo.get().getWebkitVersion() > 0) {
final Element selectedTabContent = getSelectedStack()
.getContainerElement();
DeferredCommand.addCommand(new Command() {
public void execute() {
// Dough, safari scoll auto means actually just a moped
selectedTabContent.getStyle().setProperty("overflow",
"hidden");
(new Timer() {
@Override
public void run() {
selectedTabContent.getStyle().setProperty(
"overflow", "auto");
}
}).schedule(1);
}
});
}
Util.runWebkitOverflowAutoFix(getSelectedStack().getContainerElement());

}

/**

+ 3
- 19
src/com/itmill/toolkit/terminal/gwt/client/ui/IPanel.java Vedi File

@@ -6,12 +6,9 @@ package com.itmill.toolkit.terminal.gwt.client.ui;

import java.util.Set;

import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
@@ -306,23 +303,10 @@ public class IPanel extends SimplePanel implements Container,
}
}

if (BrowserInfo.get().getWebkitVersion() > 0) {
DeferredCommand.addCommand(new Command() {
public void execute() {
// Dough, safari scoll auto means actually just a moped
contentNode.getStyle().setProperty("overflow", "hidden");
(new Timer() {
@Override
public void run() {
contentNode.getStyle().setProperty("overflow",
"auto");
}
}).schedule(1);
}
});
}

client.runDescendentsLayout(this);

Util.runWebkitOverflowAutoFix(contentNode);

}

@Override

+ 4
- 0
src/com/itmill/toolkit/terminal/gwt/client/ui/ISplitPanel.java Vedi File

@@ -312,6 +312,10 @@ public class ISplitPanel extends ComplexPanel implements Container,

renderInformation.updateSize(getElement());

// fixes scrollbars sometimes seen on webkit 528.5, but not in Safari
// 3.1
Util.runWebkitOverflowAutoFix(secondContainer);

}

private void setFirstWidget(Widget w) {

+ 2
- 17
src/com/itmill/toolkit/terminal/gwt/client/ui/ITabsheet.java Vedi File

@@ -13,19 +13,18 @@ import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
import com.itmill.toolkit.terminal.gwt.client.BrowserInfo;
import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener;
import com.itmill.toolkit.terminal.gwt.client.ICaption;
import com.itmill.toolkit.terminal.gwt.client.Paintable;
import com.itmill.toolkit.terminal.gwt.client.RenderInformation;
import com.itmill.toolkit.terminal.gwt.client.RenderSpace;
import com.itmill.toolkit.terminal.gwt.client.UIDL;
import com.itmill.toolkit.terminal.gwt.client.Util;

public class ITabsheet extends ITabsheetBase implements
ContainerResizedListener {
@@ -394,21 +393,7 @@ public class ITabsheet extends ITabsheetBase implements

updateTabScroller();

if (BrowserInfo.get().getWebkitVersion() > 0) {
DeferredCommand.addCommand(new Command() {
public void execute() {
// Dough, safari scoll auto means actually just a moped
contentNode.getStyle().setProperty("overflow", "hidden");
(new Timer() {
@Override
public void run() {
contentNode.getStyle().setProperty("overflow",
"auto");
}
}).schedule(100);
}
});
}
Util.runWebkitOverflowAutoFix(contentNode);

}


Loading…
Annulla
Salva