Browse Source

fixes #2138 Cleaning and fixing some scrollbar issues

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

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

import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;


import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM; 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.Element;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;


return detectedScrollbarSize; 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 View File

import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element; 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.ClickListener;
import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.Paintable; import com.itmill.toolkit.terminal.gwt.client.Paintable;
import com.itmill.toolkit.terminal.gwt.client.RenderSpace; import com.itmill.toolkit.terminal.gwt.client.RenderSpace;
import com.itmill.toolkit.terminal.gwt.client.UIDL; import com.itmill.toolkit.terminal.gwt.client.UIDL;
import com.itmill.toolkit.terminal.gwt.client.Util;


public class IAccordion extends ITabsheetBase implements public class IAccordion extends ITabsheetBase implements
ContainerResizedListener { ContainerResizedListener {


client.runDescendentsLayout(item); 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 View File



import java.util.Set; import java.util.Set;


import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM; 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.Element;
import com.google.gwt.user.client.Event; 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.SimplePanel;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
} }
} }


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); client.runDescendentsLayout(this);

Util.runWebkitOverflowAutoFix(contentNode);

} }


@Override @Override

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



renderInformation.updateSize(getElement()); 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) { private void setFirstWidget(Widget w) {

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

import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event; 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.ClickListener;
import com.google.gwt.user.client.ui.ComplexPanel; import com.google.gwt.user.client.ui.ComplexPanel;
import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; 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.ContainerResizedListener;
import com.itmill.toolkit.terminal.gwt.client.ICaption; import com.itmill.toolkit.terminal.gwt.client.ICaption;
import com.itmill.toolkit.terminal.gwt.client.Paintable; import com.itmill.toolkit.terminal.gwt.client.Paintable;
import com.itmill.toolkit.terminal.gwt.client.RenderInformation; import com.itmill.toolkit.terminal.gwt.client.RenderInformation;
import com.itmill.toolkit.terminal.gwt.client.RenderSpace; import com.itmill.toolkit.terminal.gwt.client.RenderSpace;
import com.itmill.toolkit.terminal.gwt.client.UIDL; import com.itmill.toolkit.terminal.gwt.client.UIDL;
import com.itmill.toolkit.terminal.gwt.client.Util;


public class ITabsheet extends ITabsheetBase implements public class ITabsheet extends ITabsheetBase implements
ContainerResizedListener { ContainerResizedListener {


updateTabScroller(); 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…
Cancel
Save