[Libreoffice-commits] core.git: 3 commits - vcl/inc vcl/source vcl/unx

Caolán McNamara caolanm at redhat.com
Fri Feb 26 21:38:52 UTC 2016


 vcl/inc/salmenu.hxx                 |    1 
 vcl/inc/unx/gtk/gtkframe.hxx        |    3 
 vcl/inc/unx/gtk/gtksalmenu.hxx      |   12 ++
 vcl/source/app/salvtables.cxx       |    4 
 vcl/source/window/menubarwindow.cxx |    2 
 vcl/unx/gtk/a11y/atklistener.cxx    |    1 
 vcl/unx/gtk/gtksalframe.cxx         |    4 
 vcl/unx/gtk/gtksalmenu.cxx          |  159 ++++++++++++++++++++++++++++++------
 vcl/unx/gtk3/gtk3gtkframe.cxx       |    6 -
 9 files changed, 159 insertions(+), 33 deletions(-)

New commits:
commit 1724081f6363fb2b97523a2c5edb1424d7959f8b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Feb 26 21:34:57 2016 +0000

    gtk3+wayland: gnome#762756 hack around keyboard focus
    
    Change-Id: I6be61592a16660d62be583e082ffcf5b1907770f

diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx
index 0220aa4..f3ec501 100644
--- a/vcl/unx/gtk/gtksalmenu.cxx
+++ b/vcl/unx/gtk/gtksalmenu.cxx
@@ -559,6 +559,22 @@ void GtkSalMenu::ShowCloseButton(bool bShow)
 #endif
 }
 
+#if GTK_CHECK_VERSION(3,0,0)
+//hack-around https://bugzilla.gnome.org/show_bug.cgi?id=762756
+static void ReturnFocus(GtkMenuShell *, gpointer pWidget)
+{
+    GtkWidget* pTopLevel = static_cast<GtkWidget*>(pWidget);
+    GdkWindow *window = gtk_widget_get_window(pTopLevel);
+    GdkEvent *fevent = gdk_event_new(GDK_FOCUS_CHANGE);
+
+    fevent->focus_change.type = GDK_FOCUS_CHANGE;
+    fevent->focus_change.window = GDK_WINDOW(g_object_ref(window));
+    fevent->focus_change.in = TRUE;
+    gtk_widget_send_focus_change(pTopLevel, fevent);
+    gdk_event_free(fevent);
+}
+#endif
+
 void GtkSalMenu::CreateMenuBarWidget()
 {
 #if GTK_CHECK_VERSION(3,0,0)
@@ -573,6 +589,7 @@ void GtkSalMenu::CreateMenuBarWidget()
     gtk_widget_insert_action_group(pMenuBarWidget, "win", mpActionGroup);
     gtk_widget_set_hexpand(GTK_WIDGET(pMenuBarWidget), true);
     gtk_grid_attach(GTK_GRID(mpMenuBarWidget), pMenuBarWidget, 0, 0, 1, 1);
+    g_signal_connect(G_OBJECT(pMenuBarWidget), "deactivate", G_CALLBACK(ReturnFocus), mpFrame->getWindow());
 
     gtk_widget_show_all(mpMenuBarWidget);
 #endif
commit 3ae6c7fcbe14f7a425fa1db2cb388b12848be65b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Feb 25 13:42:02 2016 +0000

    gtk3: add a menubar close button
    
    the css foo is modeled on the similiar gedit close buttons
    in its tabs
    
    Change-Id: I7af32ad0434a49c52eea215f797c502be7f96dac

diff --git a/vcl/inc/salmenu.hxx b/vcl/inc/salmenu.hxx
index d7930bb..0145547 100644
--- a/vcl/inc/salmenu.hxx
+++ b/vcl/inc/salmenu.hxx
@@ -75,6 +75,7 @@ public:
     virtual void SetAccelerator( unsigned nPos, SalMenuItem* pSalMenuItem, const vcl::KeyCode& rKeyCode, const OUString& rKeyName ) = 0;
     virtual void GetSystemMenuData( SystemMenuData* pData ) = 0;
     virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, FloatWinPopupFlags nFlags);
+    virtual void ShowCloseButton(bool bShow);
     virtual bool AddMenuBarButton( const SalMenuButtonItem& ); // return false if not implemented or failure
     virtual void RemoveMenuBarButton( sal_uInt16 nId );
     virtual void Update() {}
diff --git a/vcl/inc/unx/gtk/gtksalmenu.hxx b/vcl/inc/unx/gtk/gtksalmenu.hxx
index 0309058..b88aec8 100644
--- a/vcl/inc/unx/gtk/gtksalmenu.hxx
+++ b/vcl/inc/unx/gtk/gtksalmenu.hxx
@@ -46,6 +46,7 @@ private:
     bool                            mbMenuBar;
     bool                            mbUnityMode;
     GtkWidget*                      mpMenuBarWidget;
+    GtkWidget*                      mpCloseButton;
     Menu*                           mpVCLMenu;
     GtkSalMenu*                     mpParentSalMenu;
     GtkSalFrame*                    mpFrame;
@@ -106,10 +107,11 @@ public:
     virtual void                Update() override;  // Update this menu only.
     void                        UpdateFull();       // Update full menu hierarchy from this menu.
 
-    void CreateMenuWidget();
-    void DestroyMenuWidget();
+    void CreateMenuBarWidget();
+    void DestroyMenuBarWidget();
 
-    virtual bool                ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, FloatWinPopupFlags nFlags) override;
+    virtual bool ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, FloatWinPopupFlags nFlags) override;
+    virtual void ShowCloseButton(bool bShow) override;
 };
 
 class GtkSalMenuItem : public SalMenuItem
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index c540eef5..c135cdf 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -135,6 +135,10 @@ bool SalMenu::ShowNativePopupMenu(FloatingWindow *, const Rectangle&, FloatWinPo
     return false;
 }
 
+void SalMenu::ShowCloseButton(bool)
+{
+}
+
 bool SalMenu::AddMenuBarButton( const SalMenuButtonItem& )
 {
     return false;
diff --git a/vcl/source/window/menubarwindow.cxx b/vcl/source/window/menubarwindow.cxx
index 8954513..99daa75 100644
--- a/vcl/source/window/menubarwindow.cxx
+++ b/vcl/source/window/menubarwindow.cxx
@@ -213,6 +213,8 @@ void MenuBarWindow::ShowButtons( bool bClose, bool bFloat, bool bHide )
 {
     aCloseBtn->ShowItem(IID_DOCUMENTCLOSE, bClose);
     aCloseBtn->Show(bClose || !m_aAddButtons.empty());
+    if (pMenu->mpSalMenu)
+        pMenu->mpSalMenu->ShowCloseButton(bClose);
     aFloatBtn->Show( bFloat );
     aHideBtn->Show( bHide );
     Resize();
diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx
index f2c50c4..0220aa4 100644
--- a/vcl/unx/gtk/gtksalmenu.cxx
+++ b/vcl/unx/gtk/gtksalmenu.cxx
@@ -26,6 +26,7 @@
 
 #include <sal/log.hxx>
 #include <window.h>
+#include <svids.hrc>
 
 // FIXME Copied from framework/inc/framework/menuconfiguration.hxx to
 // avoid circular dependency between modules. It should be in a common
@@ -429,6 +430,7 @@ GtkSalMenu::GtkSalMenu( bool bMenuBar ) :
     mbMenuBar( bMenuBar ),
     mbUnityMode ( false ),
     mpMenuBarWidget( nullptr ),
+    mpCloseButton( nullptr ),
     mpVCLMenu( nullptr ),
     mpParentSalMenu( nullptr ),
     mpFrame( nullptr ),
@@ -450,7 +452,7 @@ GtkSalMenu::~GtkSalMenu()
 {
     SolarMutexGuard aGuard;
 
-    DestroyMenuWidget();
+    DestroyMenuBarWidget();
 
     if (mpMenuModel)
         g_object_unref(mpMenuModel);
@@ -495,7 +497,69 @@ void GtkSalMenu::SetSubMenu( SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsig
     pItem->mpSubMenu = pGtkSubMenu;
 }
 
-void GtkSalMenu::CreateMenuWidget()
+#if GTK_CHECK_VERSION(3,0,0)
+static void CloseMenuBar(GtkWidget *, gpointer pMenu)
+{
+    Application::PostUserEvent(static_cast<MenuBar*>(pMenu)->GetCloseButtonClickHdl());
+}
+#endif
+
+void GtkSalMenu::ShowCloseButton(bool bShow)
+{
+#if GTK_CHECK_VERSION(3,0,0)
+    assert(mbMenuBar);
+    MenuBar *pVclMenuBar = static_cast<MenuBar*>(mpVCLMenu);
+    if (!bShow)
+    {
+        if (mpCloseButton)
+            gtk_widget_destroy(mpCloseButton);
+        return;
+    }
+
+    mpCloseButton = gtk_button_new();
+    g_signal_connect(mpCloseButton, "clicked", G_CALLBACK(CloseMenuBar), pVclMenuBar);
+
+    gtk_button_set_relief(GTK_BUTTON(mpCloseButton), GTK_RELIEF_NONE);
+    gtk_button_set_focus_on_click(GTK_BUTTON(mpCloseButton), false);
+
+    GtkStyleContext *pButtonContext = gtk_widget_get_style_context(GTK_WIDGET(mpCloseButton));
+
+    GtkCssProvider *pProvider = gtk_css_provider_new();
+    const gchar data[] = "* { "
+      "padding: 0;"
+      "margin-left: 8px;"
+      "margin-right: 8px;"
+      "min-width: 18px;"
+      "min-height: 18px;"
+      "}";
+    gtk_css_provider_load_from_data(pProvider, data, -1, nullptr);
+    gtk_style_context_add_provider(pButtonContext,
+                                   GTK_STYLE_PROVIDER(pProvider),
+                                   GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+    gtk_style_context_add_class(pButtonContext, "flat");
+    gtk_style_context_add_class(pButtonContext, "small-button");
+
+    GIcon* icon = g_themed_icon_new_with_default_fallbacks("window-close-symbolic");
+    GtkWidget* image = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
+    gtk_widget_show(image);
+    g_object_unref(icon);
+
+    OUString sToolTip(VclResId(SV_HELPTEXT_CLOSEDOCUMENT));
+    gtk_widget_set_tooltip_text(mpCloseButton,
+        OUStringToOString(sToolTip, RTL_TEXTENCODING_UTF8).getStr());
+
+    gtk_widget_set_valign(mpCloseButton, GTK_ALIGN_CENTER);
+
+    gtk_container_add(GTK_CONTAINER(mpCloseButton), image);
+    gtk_grid_attach(GTK_GRID(mpMenuBarWidget), GTK_WIDGET(mpCloseButton), 1, 0, 1, 1);
+    gtk_widget_show_all(mpCloseButton);
+#else
+    (void)bShow;
+#endif
+}
+
+void GtkSalMenu::CreateMenuBarWidget()
 {
 #if GTK_CHECK_VERSION(3,0,0)
     GtkGrid* pGrid = mpFrame->getTopLevelGridWidget();
@@ -507,13 +571,14 @@ void GtkSalMenu::CreateMenuWidget()
 
     GtkWidget *pMenuBarWidget = gtk_menu_bar_new_from_model(mpMenuModel);
     gtk_widget_insert_action_group(pMenuBarWidget, "win", mpActionGroup);
+    gtk_widget_set_hexpand(GTK_WIDGET(pMenuBarWidget), true);
     gtk_grid_attach(GTK_GRID(mpMenuBarWidget), pMenuBarWidget, 0, 0, 1, 1);
 
     gtk_widget_show_all(mpMenuBarWidget);
 #endif
 }
 
-void GtkSalMenu::DestroyMenuWidget()
+void GtkSalMenu::DestroyMenuBarWidget()
 {
 #if GTK_CHECK_VERSION(3,0,0)
     if (mpMenuBarWidget)
@@ -567,7 +632,10 @@ void GtkSalMenu::SetFrame(const SalFrame* pFrame)
 
 #if GTK_CHECK_VERSION(3,0,0)
     if (!mbUnityMode)
-        CreateMenuWidget();
+    {
+        DestroyMenuBarWidget();
+        CreateMenuBarWidget();
+    }
 #endif
 }
 
@@ -821,9 +889,9 @@ void GtkSalMenu::EnableUnity(bool bEnable)
     if (bUnityMode != bEnable)
     {
         if (!bEnable)
-            CreateMenuWidget();
+            CreateMenuBarWidget();
         else
-            DestroyMenuWidget();
+            DestroyMenuBarWidget();
         bUnityMode = bEnable;
     }
 }
commit 800704e0c46f6f86f6a18a477ba4b6f313c5693a
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Feb 25 12:48:54 2016 +0000

    gtk3: native gtk menubar
    
    Change-Id: Ibb75aa3eae99e499e1c2026c41b0bf51d7f8cf31

diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index a530214..cf97011 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -376,6 +376,9 @@ public:
     GtkWidget*  getWindow() const { return m_pWindow; }
     GtkFixed*   getFixedContainer() const { return m_pFixedContainer; }
     GtkWidget*  getMouseEventWidget() const;
+#if GTK_CHECK_VERSION(3,0,0)
+    GtkGrid*    getTopLevelGridWidget() const { return m_pTopLevelGrid; }
+#endif
     GdkWindow*  getForeignParent() const { return m_pForeignParent; }
     GdkNativeWindow getForeignParentWindow() const { return m_aForeignParentWindow; }
     GdkWindow*  getForeignTopLevel() const { return m_pForeignTopLevel; }
diff --git a/vcl/inc/unx/gtk/gtksalmenu.hxx b/vcl/inc/unx/gtk/gtksalmenu.hxx
index 1697d0b..0309058 100644
--- a/vcl/inc/unx/gtk/gtksalmenu.hxx
+++ b/vcl/inc/unx/gtk/gtksalmenu.hxx
@@ -44,7 +44,8 @@ private:
     std::vector< GtkSalMenuItem* >  maItems;
 
     bool                            mbMenuBar;
-    bool                            mbMenuVisibility;
+    bool                            mbUnityMode;
+    GtkWidget*                      mpMenuBarWidget;
     Menu*                           mpVCLMenu;
     GtkSalMenu*                     mpParentSalMenu;
     GtkSalFrame*                    mpFrame;
@@ -100,11 +101,14 @@ public:
     void                        DispatchCommand( gint itemId, const gchar* aCommand );
     void                        Activate( const gchar* aMenuCommand = nullptr );
     void                        Deactivate( const gchar* aMenuCommand );
-    void                        Display( bool bVisible );
+    void                        EnableUnity(bool bEnable);
     bool                        PrepUpdate();
     virtual void                Update() override;  // Update this menu only.
     void                        UpdateFull();       // Update full menu hierarchy from this menu.
 
+    void CreateMenuWidget();
+    void DestroyMenuWidget();
+
     virtual bool                ShowNativePopupMenu(FloatingWindow * pWin, const Rectangle& rRect, FloatWinPopupFlags nFlags) override;
 };
 
diff --git a/vcl/unx/gtk/a11y/atklistener.cxx b/vcl/unx/gtk/a11y/atklistener.cxx
index 86b663a..d94970e 100644
--- a/vcl/unx/gtk/a11y/atklistener.cxx
+++ b/vcl/unx/gtk/a11y/atklistener.cxx
@@ -143,7 +143,6 @@ void AtkListener::updateChildList(
                  m_aChildList.resize(std::min(nChildren2, n));
                  break;
              }
-             OSL_ASSERT(m_aChildList[n].is());
          }
      }
 }
diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx
index a0a7e58..3e9d51a 100644
--- a/vcl/unx/gtk/gtksalframe.cxx
+++ b/vcl/unx/gtk/gtksalframe.cxx
@@ -721,7 +721,7 @@ void on_registrar_available( GDBusConnection * /*connection*/,
     if ( pSalMenu != nullptr )
     {
         GtkSalMenu* pGtkSalMenu = static_cast<GtkSalMenu*>(pSalMenu);
-        pGtkSalMenu->Display( true );
+        pGtkSalMenu->EnableUnity(true);
         pGtkSalMenu->UpdateFull();
     }
 }
@@ -742,7 +742,7 @@ void on_registrar_unavailable( GDBusConnection * /*connection*/,
 
     if ( pSalMenu ) {
         GtkSalMenu* pGtkSalMenu = static_cast< GtkSalMenu* >( pSalMenu );
-        pGtkSalMenu->Display( false );
+        pGtkSalMenu->EnableUnity(false);
     }
 }
 #endif
diff --git a/vcl/unx/gtk/gtksalmenu.cxx b/vcl/unx/gtk/gtksalmenu.cxx
index 92f32b9..f2c50c4 100644
--- a/vcl/unx/gtk/gtksalmenu.cxx
+++ b/vcl/unx/gtk/gtksalmenu.cxx
@@ -33,6 +33,8 @@
 const sal_uInt16 START_ITEMID_WINDOWLIST    = 4600;
 const sal_uInt16 END_ITEMID_WINDOWLIST      = 4699;
 
+static bool bUnityMode = false;
+
 /*
  * This function generates the proper command name for all actions, including
  * duplicated or special ones.
@@ -77,17 +79,7 @@ static gchar* GetCommandForItem( GtkSalMenuItem* pSalMenuItem, gchar* aCurrentCo
 
 bool GtkSalMenu::PrepUpdate()
 {
-    bool bMenuVisibility;
-
-    //get top level visibility
-    const GtkSalMenu* pMenu = this;
-    do
-    {
-        bMenuVisibility = pMenu->mbMenuVisibility;
-        pMenu = pMenu->mpParentSalMenu;
-    } while (pMenu);
-
-    return bMenuVisibility && mpMenuModel && mpActionGroup;
+    return mpMenuModel && mpActionGroup;
 }
 
 /*
@@ -386,8 +378,6 @@ bool GtkSalMenu::ShowNativePopupMenu(FloatingWindow* pWin, const Rectangle& /*rR
         nTime = gtk_get_current_event_time();
     }
 
-    Display(true);
-
     mpFrame = static_cast<GtkSalFrame*>(pWin->ImplGetWindowImpl()->mpRealParent->ImplGetFrame());
 
     GLOActionGroup* pActionGroup = g_lo_action_group_new(static_cast<gpointer>(mpFrame));
@@ -437,7 +427,8 @@ bool GtkSalMenu::ShowNativePopupMenu(FloatingWindow* pWin, const Rectangle& /*rR
 
 GtkSalMenu::GtkSalMenu( bool bMenuBar ) :
     mbMenuBar( bMenuBar ),
-    mbMenuVisibility( false ),
+    mbUnityMode ( false ),
+    mpMenuBarWidget( nullptr ),
     mpVCLMenu( nullptr ),
     mpParentSalMenu( nullptr ),
     mpFrame( nullptr ),
@@ -459,6 +450,8 @@ GtkSalMenu::~GtkSalMenu()
 {
     SolarMutexGuard aGuard;
 
+    DestroyMenuWidget();
+
     if (mpMenuModel)
         g_object_unref(mpMenuModel);
 
@@ -467,7 +460,7 @@ GtkSalMenu::~GtkSalMenu()
 
 bool GtkSalMenu::VisibleMenuBar()
 {
-    return mbMenuBar && mbMenuVisibility;
+    return mbMenuBar;
 }
 
 void GtkSalMenu::InsertItem( SalMenuItem* pSalMenuItem, unsigned nPos )
@@ -502,6 +495,35 @@ void GtkSalMenu::SetSubMenu( SalMenuItem* pSalMenuItem, SalMenu* pSubMenu, unsig
     pItem->mpSubMenu = pGtkSubMenu;
 }
 
+void GtkSalMenu::CreateMenuWidget()
+{
+#if GTK_CHECK_VERSION(3,0,0)
+    GtkGrid* pGrid = mpFrame->getTopLevelGridWidget();
+    mpMenuBarWidget = gtk_grid_new();
+
+    gtk_widget_set_hexpand(GTK_WIDGET(mpMenuBarWidget), true);
+    gtk_grid_insert_row(pGrid, 0);
+    gtk_grid_attach(pGrid, mpMenuBarWidget, 0, 0, 1, 1);
+
+    GtkWidget *pMenuBarWidget = gtk_menu_bar_new_from_model(mpMenuModel);
+    gtk_widget_insert_action_group(pMenuBarWidget, "win", mpActionGroup);
+    gtk_grid_attach(GTK_GRID(mpMenuBarWidget), pMenuBarWidget, 0, 0, 1, 1);
+
+    gtk_widget_show_all(mpMenuBarWidget);
+#endif
+}
+
+void GtkSalMenu::DestroyMenuWidget()
+{
+#if GTK_CHECK_VERSION(3,0,0)
+    if (mpMenuBarWidget)
+    {
+        gtk_widget_destroy(mpMenuBarWidget);
+        mpMenuBarWidget = nullptr;
+    }
+#endif
+}
+
 void GtkSalMenu::SetFrame(const SalFrame* pFrame)
 {
     SolarMutexGuard aGuard;
@@ -539,10 +561,14 @@ void GtkSalMenu::SetFrame(const SalFrame* pFrame)
     }
 
     // Generate the main menu structure.
-    if (mbMenuVisibility)
-        UpdateFull();
+    UpdateFull();
 
     g_lo_menu_insert_section( pMenuModel, 0, nullptr, mpMenuModel );
+
+#if GTK_CHECK_VERSION(3,0,0)
+    if (!mbUnityMode)
+        CreateMenuWidget();
+#endif
 }
 
 const GtkSalFrame* GtkSalMenu::GetFrame() const
@@ -790,15 +816,15 @@ void GtkSalMenu::Deactivate( const gchar* aMenuCommand )
     }
 }
 
-void GtkSalMenu::Display( bool bVisible )
+void GtkSalMenu::EnableUnity(bool bEnable)
 {
-    mbMenuVisibility = bVisible;
-
-    if (mbMenuBar)
+    if (bUnityMode != bEnable)
     {
-        bool bVCLMenuVisible = !bVisible;
-        MenuBar* pMenuBar = static_cast<MenuBar*>(mpVCLMenu);
-        pMenuBar->SetDisplayable(bVCLMenuVisible);
+        if (!bEnable)
+            CreateMenuWidget();
+        else
+            DestroyMenuWidget();
+        bUnityMode = bEnable;
     }
 }
 
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 3322b2a..d340c50 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -734,7 +734,7 @@ void on_registrar_available( GDBusConnection * /*connection*/,
     if ( pSalMenu != nullptr )
     {
         GtkSalMenu* pGtkSalMenu = static_cast<GtkSalMenu*>(pSalMenu);
-        pGtkSalMenu->Display( true );
+        pGtkSalMenu->EnableUnity(true);
         pGtkSalMenu->UpdateFull();
     }
 }
@@ -755,7 +755,7 @@ void on_registrar_unavailable( GDBusConnection * /*connection*/,
 
     if ( pSalMenu ) {
         GtkSalMenu* pGtkSalMenu = static_cast< GtkSalMenu* >( pSalMenu );
-        pGtkSalMenu->Display( false );
+        pGtkSalMenu->EnableUnity(false);
     }
 }
 #endif
@@ -3068,7 +3068,7 @@ gboolean GtkSalFrame::signalKey( GtkWidget*, GdkEventKey* pEvent, gpointer frame
     if( !aDel.isDeleted() && pThis->m_pIMHandler )
         pThis->m_pIMHandler->updateIMSpotLocation();
 
-    return true;
+    return false;
 }
 
 gboolean GtkSalFrame::signalDelete( GtkWidget*, GdkEvent*, gpointer frame )


More information about the Libreoffice-commits mailing list