diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-09-05 10:50:06 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2013-09-05 10:52:09 +0200 |
commit | 13badfb5ccd296faf480b19b2b33f7633f4085c5 (patch) | |
tree | 5db182786a27065de0902846c099a0fb6fb1d243 /vcl/unx | |
parent | 43b84bbba2519686eb6b0463f422bf695d2d74b9 (diff) |
lp#1204592: activate menues even earlier to reduce latency
Change-Id: I54dc06c1bcd708fb666813ec2d0ca79acba361a0
Diffstat (limited to 'vcl/unx')
-rw-r--r-- | vcl/unx/gtk/window/gloactiongroup.cxx | 8 | ||||
-rw-r--r-- | vcl/unx/gtk/window/gtksalframe.cxx | 14 |
2 files changed, 22 insertions, 0 deletions
diff --git a/vcl/unx/gtk/window/gloactiongroup.cxx b/vcl/unx/gtk/window/gloactiongroup.cxx index 78fecf09f9b1..19187a69e793 100644 --- a/vcl/unx/gtk/window/gloactiongroup.cxx +++ b/vcl/unx/gtk/window/gloactiongroup.cxx @@ -144,8 +144,15 @@ g_lo_action_group_query_action (GActionGroup *group, if (action == NULL) return FALSE; + if (enabled) + { + GtkSalFrame* pFrame = lo_group->priv->frame; + if (pFrame) { + pFrame->EnsureDbusMenuSynced(); + } *enabled = action->enabled; + } if (parameter_type) *parameter_type = action->parameter_type; @@ -193,6 +200,7 @@ g_lo_action_group_change_state (GActionGroup *group, const gchar *action_name, GVariant *value) { + SAL_INFO("vcl.unity", "g_lo_action_group_change_state on " << group ); g_return_if_fail (value != NULL); g_variant_ref_sink (value); diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx index 8eda04ae6df9..ac646281cb31 100644 --- a/vcl/unx/gtk/window/gtksalframe.cxx +++ b/vcl/unx/gtk/window/gtksalframe.cxx @@ -489,6 +489,9 @@ GtkSalFrame::GtkSalFrame( SystemParentData* pSysData ) GetGenericData()->ErrorTrapPush(); m_bDefaultPos = true; m_bDefaultSize = true; +#if defined(ENABLE_DBUS) && defined(ENABLE_GIO) + m_pLastSyncedDbusMenu = NULL; +#endif Init( pSysData ); } @@ -528,6 +531,17 @@ static void ObjectDestroyedNotify( gpointer data ) } } +#if defined(ENABLE_DBUS) && defined(ENABLE_GIO) +void GtkSalFrame::EnsureDbusMenuSynced() +{ + GtkSalMenu* pSalMenu = static_cast<GtkSalMenu*>(GetMenu()); + if(m_pLastSyncedDbusMenu != pSalMenu) { + m_pLastSyncedDbusMenu = pSalMenu; + static_cast<GtkSalMenu*>(pSalMenu)->Activate(); + } +} +#endif + static void hud_activated( gboolean hud_active, gpointer user_data ) { if ( hud_active ) |