summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk/window
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/unx/gtk/window')
-rw-r--r--vcl/unx/gtk/window/gtksalmenu.cxx22
1 files changed, 16 insertions, 6 deletions
diff --git a/vcl/unx/gtk/window/gtksalmenu.cxx b/vcl/unx/gtk/window/gtksalmenu.cxx
index 0c78997e9177..642f2b877fd5 100644
--- a/vcl/unx/gtk/window/gtksalmenu.cxx
+++ b/vcl/unx/gtk/window/gtksalmenu.cxx
@@ -202,6 +202,7 @@ GtkSalMenu::GtkSalMenu( sal_Bool bMenuBar ) :
GtkSalMenu::~GtkSalMenu()
{
+ // FIXME: Not sure if we need to unset X Properties.
if ( mpFrame ) {
GtkWidget *widget = GTK_WIDGET( mpFrame->getWindow() );
GdkWindow *gdkWindow = gtk_widget_get_window( widget );
@@ -241,7 +242,7 @@ GtkSalMenu::~GtkSalMenu()
sal_Bool GtkSalMenu::VisibleMenuBar()
{
- return sal_False;
+ return sal_True;
}
void GtkSalMenu::InsertItem( SalMenuItem* pSalMenuItem, unsigned nPos )
@@ -284,6 +285,16 @@ void GtkSalMenu::SetSubMenu( SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsig
}
}
+void updateNativeMenu( GtkSalMenu* pMenu );
+
+gboolean GenerateMenu(gpointer user_data) {
+ cout << "Generating menu..." << endl;
+ GtkSalMenu* pSalMenu = static_cast< GtkSalMenu* >( user_data );
+ updateNativeMenu( pSalMenu );
+
+ return TRUE;
+}
+
void GtkSalMenu::SetFrame( const SalFrame* pFrame )
{
mpFrame = static_cast<const GtkSalFrame*>( pFrame );
@@ -306,6 +317,10 @@ void GtkSalMenu::SetFrame( const SalFrame* pFrame )
// Try to publish the menu with the right bus data.
Freeze();
+
+ // Refresh the menu every second.
+ // This code is a workaround until required modifications in Gtk+ are available.
+// g_timeout_add( 1000, GenerateMenu, this );
}
}
@@ -391,11 +406,6 @@ void GtkSalMenu::GetSystemMenuData( SystemMenuData* pData )
{
}
-bool GtkSalMenu::ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, sal_uLong nFlags)
-{
- return TRUE;
-}
-
void updateNativeMenu( GtkSalMenu* pMenu ) {
if ( pMenu ) {
for ( sal_uInt16 i = 0; i < pMenu->GetItemCount(); i++ ) {