PDA

View Full Version : Problem with virtual wider Splitbar in TYPO3 4.6-dev (is an extjs problem)



kaystrobach
30 Sep 2011, 7:13 AM
Hello Developers,

in TYPO3 we use a BorderLayout in a Viewport until 4.5 we use ExtJS 3.3.x with the following code to add a virtual wider drag area around the splitbar.
This worked like a charm in chrome with extjs 3.3.

But now, after the update to extjs 3.4.0, it doesn't work anymore in chrome, but in firefox.



Ext.override(Ext.layout.BorderLayout.SplitRegion, {
render : function(ct, p) {
Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this, ct, p);


var ps = this.position;


this.splitEl = ct.createChild({
cls: "x-layout-split x-layout-split-" + ps, html: " ",
id: this.panel.id + '-xsplit'
});


if (this.enableChildSplit) {
this.splitChildEl = this.splitEl.createChild({
cls: 'x-layout-mini-wrapper'
});


}
if (this.collapseMode == 'mini') {
this.miniSplitEl = this.splitEl.createChild({
cls: "x-layout-mini x-layout-mini-" + ps, html: " "
});
this.miniSplitEl.addClassOnOver('x-layout-mini-over');
this.miniSplitEl.on('click', this.onCollapseClick, this, {stopEvent:true});
}


var s = this.splitSettings[ps];


if (this.enableChildSplit) {
this.split = new Ext.SplitBar(this.splitChildEl.dom, p.el, s.orientation);
} else {
this.split = new Ext.SplitBar(this.splitEl.dom, p.el, s.orientation);
}
this.split.tickSize = this.tickSize;
this.split.placement = s.placement;
this.split.getMaximumSize = this[s.maxFn].createDelegate(this);
this.split.minSize = this.minSize || this[s.minProp];
this.split.on("beforeapply", this.onSplitMove, this);
this.split.useShim = this.useShim === true;
this.maxSize = this.maxSize || this[s.maxProp];


if (p.hidden) {
this.splitEl.hide();
}


if (this.useSplitTips) {
this.splitEl.dom.title = this.collapsible ? this.collapsibleSplitTip : this.splitTip;
}
if (this.collapsible) {
this.splitEl.on("dblclick", this.onCollapseClick, this);
}
}
});

Additionally the splitbar with the icon is reduzed in size with some css:



.x-layout-mini-wrapper {
height: 100%;
left: -5px;
position: absolute;
width: 10px;
}
#typo3-module-menu-xsplit,
#typo3-navigationContainer-xsplit {
width: 0;
}




In Firefox, IE and Opera this works fluently, but in current Chrome the virtual drag area isn't functional, there is only on pixel drag sensitive.

I would like to get an idea how to solve that ;)

PS: Here is the ISSUE @ TYPO3.org, that provides some screenshots ans links to some patch ideas: http://forge.typo3.org/issues/27660

Thanks for any help
Kay

wm003
29 Dec 2011, 7:45 AM
Please try my fix here (http://www.sencha.com/forum/showthread.php?167936-Ext.dd.DragDropMgr-does-not-provide-correct-Region-for-Splitbars-outside-of-IE&p=702854)

i had a similar problem and maybe my fix also works for you.:)