Support (fallback) app menu in SSD

We now allow "appmenu" in the button layout to make synchronizing it
with GTK+'s client-side decorations easier, but as some people tweak
their settings to get in-window app menus even when using the shell,
actually pop up the app menu when the button is activated.

https://bugzilla.gnome.org/show_bug.cgi?id=730752
This commit is contained in:
Florian Müllner
2014-05-24 03:32:44 +02:00
parent 38d8e465b3
commit 8811ba2ec0
5 changed files with 44 additions and 21 deletions

View File

@@ -73,10 +73,11 @@ static void gnome_shell_plugin_show_tile_preview (MetaPlugin *plugin,
MetaRectangle *tile_rect,
int tile_monitor);
static void gnome_shell_plugin_hide_tile_preview (MetaPlugin *plugin);
static void gnome_shell_plugin_show_window_menu (MetaPlugin *plugin,
MetaWindow *window,
int x,
int y);
static void gnome_shell_plugin_show_window_menu (MetaPlugin *plugin,
MetaWindow *window,
MetaWindowMenuType menu,
int x,
int y);
static gboolean gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
XEvent *event);
@@ -308,12 +309,13 @@ gnome_shell_plugin_hide_tile_preview (MetaPlugin *plugin)
}
static void
gnome_shell_plugin_show_window_menu (MetaPlugin *plugin,
MetaWindow *window,
int x,
int y)
gnome_shell_plugin_show_window_menu (MetaPlugin *plugin,
MetaWindow *window,
MetaWindowMenuType menu,
int x,
int y)
{
_shell_wm_show_window_menu (get_shell_wm (), window, x, y);
_shell_wm_show_window_menu (get_shell_wm (), window, menu, x, y);
}
static gboolean

View File

@@ -42,6 +42,7 @@ void _shell_wm_show_tile_preview (ShellWM *wm,
void _shell_wm_hide_tile_preview (ShellWM *wm);
void _shell_wm_show_window_menu (ShellWM *wm,
MetaWindow *window,
MetaWindowMenuType menu,
int x,
int y);

View File

@@ -141,8 +141,8 @@ shell_wm_class_init (ShellWMClass *klass)
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
0, NULL, NULL, NULL,
G_TYPE_NONE, 3,
META_TYPE_WINDOW, G_TYPE_INT, G_TYPE_INT);
G_TYPE_NONE, 4,
META_TYPE_WINDOW, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT);
shell_wm_signals[FILTER_KEYBINDING] =
g_signal_new ("filter-keybinding",
G_TYPE_FROM_CLASS (klass),
@@ -297,12 +297,13 @@ _shell_wm_hide_tile_preview (ShellWM *wm)
}
void
_shell_wm_show_window_menu (ShellWM *wm,
MetaWindow *window,
int x,
int y)
_shell_wm_show_window_menu (ShellWM *wm,
MetaWindow *window,
MetaWindowMenuType menu,
int x,
int y)
{
g_signal_emit (wm, shell_wm_signals[SHOW_WINDOW_MENU], 0, window, x, y);
g_signal_emit (wm, shell_wm_signals[SHOW_WINDOW_MENU], 0, window, menu, x, y);
}
void