Bug #3677 » 0001-Raise-WDialog-to-front-on-mousedown-not-click.patch
src/Wt/WDialog | ||
---|---|---|
void create();
|
||
void onEscapePressed();
|
||
void onDefaultPressed();
|
||
void bringToFront();
|
||
void bringToFront(const WMouseEvent &e);
|
||
DialogCover *cover();
|
||
};
|
src/Wt/WDialog.C | ||
---|---|---|
}
|
||
if (!isModal())
|
||
titleBar()->clicked().connect(this, &WDialog::bringToFront);
|
||
titleBar()->mouseWentDown().connect(this, &WDialog::bringToFront);
|
||
if ( (flags & RenderFull) && autoFocus_)
|
||
impl_->setFirstFocus();
|
||
... | ... | |
return 0;
|
||
}
|
||
void WDialog::bringToFront()
|
||
void WDialog::bringToFront(const WMouseEvent &e)
|
||
{
|
||
doJavaScript("jQuery.data(" + jsRef() + ", 'obj').bringToFront()");
|
||
DialogCover *c = cover();
|
||
c->bringToFront(this);
|
||
if (e.button() == WMouseEvent::LeftButton &&
|
||
e.modifiers() == KeyboardModifier::NoModifier) {
|
||
doJavaScript("jQuery.data(" + jsRef() + ", 'obj').bringToFront()");
|
||
DialogCover *c = cover();
|
||
c->bringToFront(this);
|
||
}
|
||
}
|
||
}
|
src/js/WDialog.js | ||
---|---|---|
};
|
||
if (titlebar) {
|
||
titlebar.onmousedown = function(event) {
|
||
$(titlebar).mousedown(function(event) {
|
||
var e = event||window.event;
|
||
if (e.which !== 1) {
|
||
return;
|
||
}
|
||
WT.capture(titlebar);
|
||
var pc = WT.pageCoordinates(e);
|
||
dsx = pc.x;
|
||
dsy = pc.y;
|
||
titlebar.onmousemove = handleMove;
|
||
};
|
||
});
|
||
titlebar.onmouseup = function(event) {
|
||
titlebar.onmousemove = null;
|