| | |
| | | bool eventFilter(QObject *obj, QEvent *event) override { |
| | | switch (event->type()) { |
| | | case QEvent::Paint: { |
| | | auto e = static_cast<QPaintEvent *>(event); |
| | | auto pe = static_cast<QPaintEvent *>(event); |
| | | QPainter painter(widget); |
| | | QRect rect = e->rect(); |
| | | QRegion region = e->region(); |
| | | void *a[3] = { |
| | | QRect rect = pe->rect(); |
| | | QRegion region = pe->region(); |
| | | void *args[] = { |
| | | &painter, |
| | | &rect, |
| | | ®ion, |
| | | }; |
| | | ctx->virtual_hook(AbstractWindowContext::DrawBordersHook, a); |
| | | ctx->virtual_hook(AbstractWindowContext::DrawBordersHook, args); |
| | | return true; |
| | | } |
| | | default: |
| | |
| | | needPaintBorder) { |
| | | d->paintFilter = std::make_unique<WidgetPaintFilter>(w, d->context.get()); |
| | | } |
| | | |
| | | if (d->context->key() == "win32") { |
| | | w->setContentsMargins(0, 1, 0, 0); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |