|
 |
f325b2 |
From c46d05caf360cfb43215e15d466016728d021c15 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
 |
f325b2 |
Date: Mon, 30 Nov 2015 14:03:34 +0000
|
|
 |
f325b2 |
Subject: [PATCH] Resolves: rhbz#1285380 get menus working under wayland
|
|
 |
f325b2 |
|
|
 |
f325b2 |
use GDK_WINDOW_TYPE_HINT_POPUP_MENU hint for menus
|
|
 |
f325b2 |
|
|
 |
f325b2 |
and set hints after widget is realized
|
|
 |
f325b2 |
|
|
 |
f325b2 |
and set gtk_window_set_transient_for menus too
|
|
 |
f325b2 |
|
|
 |
f325b2 |
then you get menus and tooltips apparently in the right place
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: Ib1046fb0872b9d8a5f80cc5f48828ef7f086b1a1
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
vcl/unx/gtk/window/gtksalframe.cxx | 17 ++++++++++-------
|
|
 |
f325b2 |
1 file changed, 10 insertions(+), 7 deletions(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx
|
|
 |
f325b2 |
index 8acdf8a..0053e5b 100644
|
|
 |
f325b2 |
--- a/vcl/unx/gtk/window/gtksalframe.cxx
|
|
 |
f325b2 |
+++ b/vcl/unx/gtk/window/gtksalframe.cxx
|
|
 |
f325b2 |
@@ -1401,6 +1401,15 @@ void GtkSalFrame::Init( SalFrame* pParent, sal_uLong nStyle )
|
|
 |
f325b2 |
if( m_pParent && m_pParent->m_pWindow && ! isChild() )
|
|
 |
f325b2 |
gtk_window_set_screen( GTK_WINDOW(m_pWindow), gtk_window_get_screen( GTK_WINDOW(m_pParent->m_pWindow) ) );
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+ if (m_pParent)
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ if (!(m_pParent->m_nStyle & SAL_FRAME_STYLE_PLUG))
|
|
 |
f325b2 |
+ gtk_window_set_transient_for( GTK_WINDOW(m_pWindow), GTK_WINDOW(m_pParent->m_pWindow) );
|
|
 |
f325b2 |
+ m_pParent->m_aChildren.push_back( this );
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ InitCommon();
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
// set window type
|
|
 |
f325b2 |
bool bDecoHandling =
|
|
 |
f325b2 |
! isChild() &&
|
|
 |
f325b2 |
@@ -1441,17 +1450,11 @@ void GtkSalFrame::Init( SalFrame* pParent, sal_uLong nStyle )
|
|
 |
f325b2 |
#endif
|
|
 |
f325b2 |
gtk_window_set_type_hint( GTK_WINDOW(m_pWindow), eType );
|
|
 |
f325b2 |
gtk_window_set_gravity( GTK_WINDOW(m_pWindow), GDK_GRAVITY_STATIC );
|
|
 |
f325b2 |
- if( m_pParent && ! (m_pParent->m_nStyle & SAL_FRAME_STYLE_PLUG) )
|
|
 |
f325b2 |
- gtk_window_set_transient_for( GTK_WINDOW(m_pWindow), GTK_WINDOW(m_pParent->m_pWindow) );
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
else if( (nStyle & SAL_FRAME_STYLE_FLOAT) )
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
- gtk_window_set_type_hint( GTK_WINDOW(m_pWindow), GDK_WINDOW_TYPE_HINT_UTILITY );
|
|
 |
f325b2 |
+ gtk_window_set_type_hint( GTK_WINDOW(m_pWindow), GDK_WINDOW_TYPE_HINT_POPUP_MENU );
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
- if( m_pParent )
|
|
 |
f325b2 |
- m_pParent->m_aChildren.push_back( this );
|
|
 |
f325b2 |
-
|
|
 |
f325b2 |
- InitCommon();
|
|
 |
f325b2 |
|
|
 |
f325b2 |
#if !GTK_CHECK_VERSION(3,0,0)
|
|
 |
f325b2 |
if( eWinType == GTK_WINDOW_TOPLEVEL )
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.5.0
|
|
 |
f325b2 |
|