diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-11-14 16:23:00 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-11-14 16:28:00 +0000 |
commit | 2fdbe655bb63dd40fda9b684c5715f21fd5ab639 (patch) | |
tree | 646f19993c41e6b89b406d7240ff0d1d7421b605 /vcl | |
parent | 682899e313bb5a201289dfcfd30cc7caec0945a6 (diff) |
gtk3: scrollbar damage area one pixel too narrow/short
under default Ambience theme Ubuntu 16.04
tools rectangle strikes again, rejig to be left/top +
width/height rather than left/top + right/bottom
Change-Id: Id5274f068863cd5219a89142b392c9ca53a1694d
Reviewed-on: https://gerrit.libreoffice.org/30850
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/headless/svpgdi.cxx | 4 | ||||
-rw-r--r-- | vcl/inc/headless/svpgdi.hxx | 4 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkframe.cxx | 16 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx | 6 |
4 files changed, 14 insertions, 16 deletions
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx index f26a8d6733ea..1f861e7d8651 100644 --- a/vcl/headless/svpgdi.cxx +++ b/vcl/headless/svpgdi.cxx @@ -1359,7 +1359,9 @@ void SvpSalGraphics::releaseCairoContext(cairo_t* cr, bool bXorModeAllowed, cons if (pDamage) { - pDamage->damaged(pDamage->handle, nExtentsLeft, nExtentsTop, nExtentsRight, nExtentsBottom); + pDamage->damaged(pDamage->handle, nExtentsLeft, nExtentsTop, + nExtentsRight - nExtentsLeft, + nExtentsBottom - nExtentsTop); } } diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx index 3e7cba9807c5..4373d10b33ae 100644 --- a/vcl/inc/headless/svpgdi.hxx +++ b/vcl/inc/headless/svpgdi.hxx @@ -67,8 +67,8 @@ typedef struct _cairo_user_data_key cairo_user_data_key_t; enum PaintMode { OVERPAINT, XOR, INVERT }; typedef void (*damageHandler)(void* handle, - sal_Int32 nExtentsLeft, sal_Int32 nExtentsTop, - sal_Int32 nExtentsRight, sal_Int32 nExtentsBottom); + sal_Int32 nExtentsX, sal_Int32 nExtentsY, + sal_Int32 nExtentsWidth, sal_Int32 nExtentsHeight); struct VCL_DLLPUBLIC DamageHandler { diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index febf667bf418..3a1fb9a21fc1 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -969,12 +969,11 @@ GtkWidget *GtkSalFrame::getMouseEventWidget() const } static void damaged(void *handle, - sal_Int32 nExtentsLeft, sal_Int32 nExtentsTop, - sal_Int32 nExtentsRight, sal_Int32 nExtentsBottom) + sal_Int32 nExtentsX, sal_Int32 nExtentsY, + sal_Int32 nExtentsWidth, sal_Int32 nExtentsHeight) { GtkSalFrame* pThis = static_cast<GtkSalFrame*>(handle); - pThis->damaged(nExtentsLeft, nExtentsTop, - nExtentsRight, nExtentsBottom); + pThis->damaged(nExtentsX, nExtentsY, nExtentsWidth, nExtentsHeight); } void GtkSalFrame::InitCommon() @@ -2826,8 +2825,8 @@ cairo_t* GtkSalFrame::getCairoContext() const return cr; } -void GtkSalFrame::damaged(sal_Int32 nExtentsLeft, sal_Int32 nExtentsTop, - sal_Int32 nExtentsRight, sal_Int32 nExtentsBottom) const +void GtkSalFrame::damaged(sal_Int32 nExtentsX, sal_Int32 nExtentsY, + sal_Int32 nExtentsWidth, sal_Int32 nExtentsHeight) const { if (dumpframes) { @@ -2839,9 +2838,8 @@ void GtkSalFrame::damaged(sal_Int32 nExtentsLeft, sal_Int32 nExtentsTop, } gtk_widget_queue_draw_area(GTK_WIDGET(m_pFixedContainer), - nExtentsLeft, nExtentsTop, - nExtentsRight - nExtentsLeft, - nExtentsBottom - nExtentsTop); + nExtentsX, nExtentsY, + nExtentsWidth, nExtentsHeight); } // blit our backing cairo surface to the target cairo context diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx index e9250eda8c09..9377172cc639 100644 --- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx @@ -2010,8 +2010,6 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co clipRegion(cr); cairo_translate(cr, rControlRegion.Left(), rControlRegion.Top()); - Rectangle aDamageRect(rControlRegion); - long nX = 0; long nY = 0; long nWidth = rControlRegion.GetWidth(); @@ -2173,8 +2171,8 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co cairo_destroy(cr); // unref - if (!aDamageRect.IsEmpty()) - mpFrame->damaged(aDamageRect.Left(), aDamageRect.Top(), aDamageRect.Right(), aDamageRect.Bottom()); + if (!rControlRegion.IsEmpty()) + mpFrame->damaged(rControlRegion.Left(), rControlRegion.Top(), rControlRegion.GetWidth(), rControlRegion.GetHeight()); return true; } |