Actually implement opening the app menu

The last commit added support for the "appmenu" button in decorations,
but didn't actually implement it. Add a new MetaWindowMenuType parameter
to the show_window_menu () functions and use it to ask the compositor
to display the app menu when the new button is activated.

https://bugzilla.gnome.org/show_bug.cgi?id=730752
This commit is contained in:
Florian Müllner
2014-05-23 23:14:51 +02:00
parent c2ea650b3c
commit 31db32e826
14 changed files with 78 additions and 47 deletions

View File

@ -374,11 +374,12 @@ meta_core_change_workspace (Display *xdisplay,
}
void
meta_core_show_window_menu (Display *xdisplay,
Window frame_xwindow,
int root_x,
int root_y,
guint32 timestamp)
meta_core_show_window_menu (Display *xdisplay,
Window frame_xwindow,
MetaWindowMenuType menu,
int root_x,
int root_y,
guint32 timestamp)
{
MetaWindow *window = get_window (xdisplay, frame_xwindow);
@ -386,7 +387,7 @@ meta_core_show_window_menu (Display *xdisplay,
meta_window_raise (window);
meta_window_focus (window, timestamp);
meta_window_show_menu (window, root_x, root_y);
meta_window_show_menu (window, menu, root_x, root_y);
}
const char*

View File

@ -132,12 +132,12 @@ const char* meta_core_get_workspace_name_with_index (Display *xdisplay,
Window xroot,
int index);
void meta_core_show_window_menu (Display *xdisplay,
Window frame_xwindow,
int root_x,
int root_y,
guint32 timestamp);
void meta_core_show_window_menu (Display *xdisplay,
Window frame_xwindow,
MetaWindowMenuType menu,
int root_x,
int root_y,
guint32 timestamp);
gboolean meta_core_begin_grab_op (Display *xdisplay,
Window frame_xwindow,

View File

@ -2751,7 +2751,7 @@ handle_activate_window_menu (MetaDisplay *display,
x += child_rect.width;
y = frame_rect.y + child_rect.y;
meta_window_show_menu (display->focus_window, x, y);
meta_window_show_menu (display->focus_window, META_WINDOW_MENU_WM, x, y);
}
}

View File

@ -605,9 +605,10 @@ void meta_window_set_focused_internal (MetaWindow *window,
void meta_window_current_workspace_changed (MetaWindow *window);
void meta_window_show_menu (MetaWindow *window,
int x,
int y);
void meta_window_show_menu (MetaWindow *window,
MetaWindowMenuType menu,
int x,
int y);
gboolean meta_window_handle_mouse_grab_op_event (MetaWindow *window,
const ClutterEvent *event);

View File

@ -5314,12 +5314,13 @@ meta_window_recalc_features (MetaWindow *window)
}
void
meta_window_show_menu (MetaWindow *window,
int x,
int y)
meta_window_show_menu (MetaWindow *window,
MetaWindowMenuType menu,
int x,
int y)
{
g_return_if_fail (!window->override_redirect);
meta_compositor_show_window_menu (window->display->compositor, window, x, y);
meta_compositor_show_window_menu (window->display->compositor, window, menu, x, y);
}
void
@ -7980,6 +7981,7 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
if (meta_prefs_get_raise_on_click ())
meta_window_raise (window);
meta_window_show_menu (window,
META_WINDOW_MENU_WM,
event->button.x,
event->button.y);
return TRUE;