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 <caol...@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(); }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits