[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - vcl/inc vcl/unx
Miklos Vajna (via logerrit)
logerrit at kemper.freedesktop.org
Tue Apr 16 11:41:52 UTC 2019
vcl/inc/unx/gtk/gtkgdi.hxx | 2 +-
vcl/unx/gtk/salnativewidgets-gtk.cxx | 28 +++++++++++++++++++---------
2 files changed, 20 insertions(+), 10 deletions(-)
New commits:
commit eeb9e6bfdb6f8d4e3edbd142c8ef129421d4b93f
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Fri Apr 12 15:59:38 2019 +0200
Commit: Luboš Luňák <l.lunak at collabora.com>
CommitDate: Tue Apr 16 13:41:08 2019 +0200
tdf#97822 vcl opengl gtk2: fix missing list node widget
OpenGL just sets GtkSalGraphics::bNeedPixmapPaint to true, and the
problem is specific to that flag (can be also enabled via
SAL_GTK_USE_PIXMAPPAINT=1).
Most other widgets are painted correctly in the GL case as they pass
around a drawable explicitly; do the same for ControlType::ListNode as
well in the GL case. The non-GL case still needs to go via the pixmap
render macros to have correct position, leave that unchanged.
(cherry picked from commit fb9c7e31f888a301fecb5257635e12ce7b907d14)
Change-Id: Ia82a6772e357b434d706e58664be3a8427e91669
Reviewed-on: https://gerrit.libreoffice.org/70762
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
diff --git a/vcl/inc/unx/gtk/gtkgdi.hxx b/vcl/inc/unx/gtk/gtkgdi.hxx
index ee42a2baf433..bc49983d3848 100644
--- a/vcl/inc/unx/gtk/gtkgdi.hxx
+++ b/vcl/inc/unx/gtk/gtkgdi.hxx
@@ -384,7 +384,7 @@ protected:
bool NWPaintGTKSlider( ControlPart nPart,
const tools::Rectangle& rControlRectangle,
ControlState nState, const ImplControlValue& aValue );
- bool NWPaintGTKListNode(
+ bool NWPaintGTKListNode( GdkDrawable* gdkDrawable,
const tools::Rectangle& rControlRectangle,
ControlState nState, const ImplControlValue& aValue );
};
diff --git a/vcl/unx/gtk/salnativewidgets-gtk.cxx b/vcl/unx/gtk/salnativewidgets-gtk.cxx
index c95016c712d1..7868f835187e 100644
--- a/vcl/unx/gtk/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/salnativewidgets-gtk.cxx
@@ -1018,7 +1018,7 @@ bool GtkSalGraphics::DoDrawNativeControl(
}
else if( (nType == ControlType::ListNode) && (nPart == ControlPart::Entire) )
{
- return NWPaintGTKListNode( aCtrlRect, nState, aValue );
+ return NWPaintGTKListNode( pDrawable, aCtrlRect, nState, aValue );
}
else if( (nType == ControlType::ListNet) && (nPart == ControlPart::Entire) )
{
@@ -3345,7 +3345,18 @@ bool GtkSalGraphics::NWPaintGTKTooltip(
return true;
}
+namespace
+{
+void NWPaintGTKListNodeReal(SalX11Screen nXScreen, GdkDrawable* gdkDrawable, GtkStateType stateType,
+ gint w, int h, GtkExpanderStyle eStyle)
+{
+ gtk_paint_expander(gWidgetData[nXScreen].gTreeView->style, gdkDrawable, stateType, nullptr,
+ gWidgetData[nXScreen].gTreeView, "treeview", w / 2, h / 2, eStyle);
+}
+}
+
bool GtkSalGraphics::NWPaintGTKListNode(
+ GdkDrawable* gdkDrawable,
const tools::Rectangle& rControlRectangle,
ControlState nState, const ImplControlValue& rValue )
{
@@ -3375,16 +3386,15 @@ bool GtkSalGraphics::NWPaintGTKListNode(
break;
}
+ if (GtkSalGraphics::bNeedPixmapPaint)
+ {
+ NWPaintGTKListNodeReal(m_nXScreen, gdkDrawable, stateType, w, h, eStyle);
+ return true;
+ }
+
BEGIN_PIXMAP_RENDER( aRect, pixDrawable )
{
- gtk_paint_expander( gWidgetData[m_nXScreen].gTreeView->style,
- pixDrawable,
- stateType,
- nullptr,
- gWidgetData[m_nXScreen].gTreeView,
- "treeview",
- w/2, h/2,
- eStyle );
+ NWPaintGTKListNodeReal(m_nXScreen, pixDrawable, stateType, w, h, eStyle);
}
END_PIXMAP_RENDER( aRect )
More information about the Libreoffice-commits
mailing list