Bug #3652 » 0001-Fix-escape-handling-for-multiple-modeless-WDialogs.patch
src/Wt/WDialog | ||
---|---|---|
385 | 385 |
void create(); |
386 | 386 |
void onEscapePressed(); |
387 | 387 |
void onDefaultPressed(); |
388 |
void bringToFront(); |
|
388 | 389 | |
389 | 390 |
DialogCover *cover(); |
390 | 391 |
}; |
src/Wt/WDialog.C | ||
---|---|---|
66 | 66 | |
67 | 67 |
if (dialogs_.empty()) |
68 | 68 |
delete this; |
69 |
else |
|
70 |
scheduleRender(); |
|
69 | 71 |
} |
70 | 72 | |
71 | 73 |
virtual bool isExposed(WWidget *w) { |
... | ... | |
86 | 88 |
return dialog->id() == topDialogId_; |
87 | 89 |
} |
88 | 90 | |
91 |
void bringToFront(WDialog *dialog) { |
|
92 |
if (Utils::erase(dialogs_, dialog)) { |
|
93 |
dialogs_.push_back(dialog); |
|
94 |
scheduleRender(); |
|
95 |
} |
|
96 |
} |
|
97 | ||
89 | 98 |
protected: |
90 | 99 |
virtual void render(WFlags<RenderFlag> flags) { |
91 | 100 |
if (dialogs_.empty()) |
... | ... | |
397 | 406 |
} |
398 | 407 | |
399 | 408 |
if (!isModal()) |
400 |
titleBar()->clicked() |
|
401 |
.connect("jQuery.data(" + jsRef() + ", 'obj').bringToFront"); |
|
409 |
titleBar()->clicked().connect(this, &WDialog::bringToFront); |
|
402 | 410 | |
403 | 411 |
if ( (flags & RenderFull) && autoFocus_) |
404 | 412 |
impl_->setFirstFocus(); |
... | ... | |
627 | 635 |
return 0; |
628 | 636 |
} |
629 | 637 | |
638 |
void WDialog::bringToFront() |
|
639 |
{ |
|
640 |
doJavaScript("jQuery.data(" + jsRef() + ", 'obj').bringToFront()"); |
|
641 |
DialogCover *c = cover(); |
|
642 |
c->bringToFront(this); |
|
643 |
} |
|
644 | ||
630 | 645 |
} |
631 |
- |
- « Previous
- 1
- 2
- Next »