[Libreoffice-commits] core.git: vcl/inc vcl/unx
Caolán McNamara
caolanm at redhat.com
Thu Feb 25 12:57:32 UTC 2016
vcl/inc/unx/gtk/gtkframe.hxx | 3 +++
vcl/unx/gtk3/gtk3gtkframe.cxx | 12 ++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
New commits:
commit 7f39d6831e03cbea408ff499df1c5b120d825cee
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Feb 24 21:22:15 2016 +0000
gtk3: put all of our existing toplevel stuff inside a GtkGrid
so we can optionally insert a native menubar above it all
Change-Id: Ib8486d7164493db79c868715a2aef209d7472c01
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index f6da61e..a530214 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -171,6 +171,9 @@ class GtkSalFrame : public SalFrame
SalX11Screen m_nXScreen;
GtkWidget* m_pWindow;
+#if GTK_CHECK_VERSION(3,0,0)
+ GtkGrid* m_pTopLevelGrid;
+#endif
GtkEventBox* m_pEventBox;
GtkFixed* m_pFixedContainer;
GdkWindow* m_pForeignParent;
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index a2c7f9d..3322b2a 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -833,6 +833,8 @@ GtkSalFrame::~GtkSalFrame()
gtk_widget_destroy( GTK_WIDGET( m_pFixedContainer ) );
if( m_pEventBox )
gtk_widget_destroy( GTK_WIDGET(m_pEventBox) );
+ if( m_pTopLevelGrid )
+ gtk_widget_destroy( GTK_WIDGET(m_pTopLevelGrid) );
{
SolarMutexGuard aGuard;
#if defined ENABLE_GMENU_INTEGRATION
@@ -986,10 +988,15 @@ void GtkSalFrame::InitCommon()
m_aDamageHandler.handle = this;
m_aDamageHandler.damaged = ::damaged;
+ m_pTopLevelGrid = GTK_GRID(gtk_grid_new());
+ gtk_container_add(GTK_CONTAINER(m_pWindow), GTK_WIDGET(m_pTopLevelGrid));
+
m_pEventBox = GTK_EVENT_BOX(gtk_event_box_new());
gtk_widget_add_events( GTK_WIDGET(m_pEventBox),
GDK_ALL_EVENTS_MASK );
- gtk_container_add( GTK_CONTAINER(m_pWindow), GTK_WIDGET(m_pEventBox) );
+ gtk_widget_set_vexpand(GTK_WIDGET(m_pEventBox), true);
+ gtk_widget_set_hexpand(GTK_WIDGET(m_pEventBox), true);
+ gtk_grid_attach(m_pTopLevelGrid, GTK_WIDGET(m_pEventBox), 0, 0, 1, 1);
// add the fixed container child,
// fixed is needed since we have to position plugin windows
@@ -1092,7 +1099,7 @@ void GtkSalFrame::InitCommon()
);
// show the widgets
- gtk_widget_show_all( GTK_WIDGET(m_pEventBox) );
+ gtk_widget_show_all(GTK_WIDGET(m_pTopLevelGrid));
// realize the window, we need an XWindow id
gtk_widget_realize( m_pWindow );
@@ -3421,6 +3428,7 @@ void GtkSalFrame::signalDestroy( GtkWidget* pObj, gpointer frame )
{
pThis->m_pFixedContainer = nullptr;
pThis->m_pEventBox = nullptr;
+ pThis->m_pTopLevelGrid = nullptr;
pThis->m_pWindow = nullptr;
pThis->InvalidateGraphics();
}
More information about the Libreoffice-commits
mailing list