ui: Remove fallback app menu
The app menu is in the process of being retired[0], and the shell stopped displaying it while applications are in the process of dropping it. It therefore doesn't make sense to always show a fallback menu in server-side decorations, applications that still set the menu can rely on GTK+'s own fallback instead. [0] https://gitlab.gnome.org/GNOME/Initiatives/wikis/App-Menu-Retirement https://gitlab.gnome.org/GNOME/gnome-shell/issues/624
This commit is contained in:
parent
f63b69bb23
commit
de76074336
@ -252,10 +252,6 @@ meta_frame_get_flags (MetaFrame *frame)
|
|||||||
{
|
{
|
||||||
flags |= META_FRAME_ALLOWS_MENU;
|
flags |= META_FRAME_ALLOWS_MENU;
|
||||||
|
|
||||||
if (meta_prefs_get_show_fallback_app_menu () &&
|
|
||||||
frame->window->gtk_app_menu_object_path)
|
|
||||||
flags |= META_FRAME_ALLOWS_APPMENU;
|
|
||||||
|
|
||||||
if (frame->window->has_close_func)
|
if (frame->window->has_close_func)
|
||||||
flags |= META_FRAME_ALLOWS_DELETE;
|
flags |= META_FRAME_ALLOWS_DELETE;
|
||||||
|
|
||||||
|
@ -1260,8 +1260,6 @@ button_function_from_string (const char *str)
|
|||||||
{
|
{
|
||||||
if (strcmp (str, "menu") == 0)
|
if (strcmp (str, "menu") == 0)
|
||||||
return META_BUTTON_FUNCTION_MENU;
|
return META_BUTTON_FUNCTION_MENU;
|
||||||
else if (strcmp (str, "appmenu") == 0)
|
|
||||||
return META_BUTTON_FUNCTION_APPMENU;
|
|
||||||
else if (strcmp (str, "minimize") == 0)
|
else if (strcmp (str, "minimize") == 0)
|
||||||
return META_BUTTON_FUNCTION_MINIMIZE;
|
return META_BUTTON_FUNCTION_MINIMIZE;
|
||||||
else if (strcmp (str, "maximize") == 0)
|
else if (strcmp (str, "maximize") == 0)
|
||||||
|
@ -52,7 +52,6 @@
|
|||||||
* MetaFrameFlags:
|
* MetaFrameFlags:
|
||||||
* @META_FRAME_ALLOWS_DELETE: frame allows delete
|
* @META_FRAME_ALLOWS_DELETE: frame allows delete
|
||||||
* @META_FRAME_ALLOWS_MENU: frame allows menu
|
* @META_FRAME_ALLOWS_MENU: frame allows menu
|
||||||
* @META_FRAME_ALLOWS_APPMENU: frame allows (fallback) app menu
|
|
||||||
* @META_FRAME_ALLOWS_MINIMIZE: frame allows minimize
|
* @META_FRAME_ALLOWS_MINIMIZE: frame allows minimize
|
||||||
* @META_FRAME_ALLOWS_MAXIMIZE: frame allows maximize
|
* @META_FRAME_ALLOWS_MAXIMIZE: frame allows maximize
|
||||||
* @META_FRAME_ALLOWS_VERTICAL_RESIZE: frame allows vertical resize
|
* @META_FRAME_ALLOWS_VERTICAL_RESIZE: frame allows vertical resize
|
||||||
@ -73,22 +72,21 @@ typedef enum
|
|||||||
{
|
{
|
||||||
META_FRAME_ALLOWS_DELETE = 1 << 0,
|
META_FRAME_ALLOWS_DELETE = 1 << 0,
|
||||||
META_FRAME_ALLOWS_MENU = 1 << 1,
|
META_FRAME_ALLOWS_MENU = 1 << 1,
|
||||||
META_FRAME_ALLOWS_APPMENU = 1 << 2,
|
META_FRAME_ALLOWS_MINIMIZE = 1 << 2,
|
||||||
META_FRAME_ALLOWS_MINIMIZE = 1 << 3,
|
META_FRAME_ALLOWS_MAXIMIZE = 1 << 3,
|
||||||
META_FRAME_ALLOWS_MAXIMIZE = 1 << 4,
|
META_FRAME_ALLOWS_VERTICAL_RESIZE = 1 << 4,
|
||||||
META_FRAME_ALLOWS_VERTICAL_RESIZE = 1 << 5,
|
META_FRAME_ALLOWS_HORIZONTAL_RESIZE = 1 << 5,
|
||||||
META_FRAME_ALLOWS_HORIZONTAL_RESIZE = 1 << 6,
|
META_FRAME_HAS_FOCUS = 1 << 6,
|
||||||
META_FRAME_HAS_FOCUS = 1 << 7,
|
META_FRAME_SHADED = 1 << 7,
|
||||||
META_FRAME_SHADED = 1 << 8,
|
META_FRAME_STUCK = 1 << 8,
|
||||||
META_FRAME_STUCK = 1 << 9,
|
META_FRAME_MAXIMIZED = 1 << 9,
|
||||||
META_FRAME_MAXIMIZED = 1 << 10,
|
META_FRAME_ALLOWS_SHADE = 1 << 10,
|
||||||
META_FRAME_ALLOWS_SHADE = 1 << 11,
|
META_FRAME_ALLOWS_MOVE = 1 << 11,
|
||||||
META_FRAME_ALLOWS_MOVE = 1 << 12,
|
META_FRAME_FULLSCREEN = 1 << 12,
|
||||||
META_FRAME_FULLSCREEN = 1 << 13,
|
META_FRAME_IS_FLASHING = 1 << 13,
|
||||||
META_FRAME_IS_FLASHING = 1 << 14,
|
META_FRAME_ABOVE = 1 << 14,
|
||||||
META_FRAME_ABOVE = 1 << 15,
|
META_FRAME_TILED_LEFT = 1 << 15,
|
||||||
META_FRAME_TILED_LEFT = 1 << 16,
|
META_FRAME_TILED_RIGHT = 1 << 16
|
||||||
META_FRAME_TILED_RIGHT = 1 << 17
|
|
||||||
} MetaFrameFlags;
|
} MetaFrameFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -389,7 +387,6 @@ typedef enum
|
|||||||
META_BUTTON_FUNCTION_MINIMIZE,
|
META_BUTTON_FUNCTION_MINIMIZE,
|
||||||
META_BUTTON_FUNCTION_MAXIMIZE,
|
META_BUTTON_FUNCTION_MAXIMIZE,
|
||||||
META_BUTTON_FUNCTION_CLOSE,
|
META_BUTTON_FUNCTION_CLOSE,
|
||||||
META_BUTTON_FUNCTION_APPMENU,
|
|
||||||
META_BUTTON_FUNCTION_LAST
|
META_BUTTON_FUNCTION_LAST
|
||||||
} MetaButtonFunction;
|
} MetaButtonFunction;
|
||||||
|
|
||||||
@ -398,10 +395,10 @@ typedef enum
|
|||||||
/* Keep array size in sync with MAX_BUTTONS_PER_CORNER */
|
/* Keep array size in sync with MAX_BUTTONS_PER_CORNER */
|
||||||
/**
|
/**
|
||||||
* MetaButtonLayout:
|
* MetaButtonLayout:
|
||||||
* @left_buttons: (array fixed-size=5):
|
* @left_buttons: (array fixed-size=4):
|
||||||
* @right_buttons: (array fixed-size=5):
|
* @right_buttons: (array fixed-size=4):
|
||||||
* @left_buttons_has_spacer: (array fixed-size=5):
|
* @left_buttons_has_spacer: (array fixed-size=4):
|
||||||
* @right_buttons_has_spacer: (array fixed-size=5):
|
* @right_buttons_has_spacer: (array fixed-size=4):
|
||||||
*/
|
*/
|
||||||
typedef struct _MetaButtonLayout MetaButtonLayout;
|
typedef struct _MetaButtonLayout MetaButtonLayout;
|
||||||
struct _MetaButtonLayout
|
struct _MetaButtonLayout
|
||||||
|
@ -1027,19 +1027,16 @@ meta_frame_left_click_event (MetaUIFrame *frame,
|
|||||||
case META_FRAME_CONTROL_MINIMIZE:
|
case META_FRAME_CONTROL_MINIMIZE:
|
||||||
case META_FRAME_CONTROL_DELETE:
|
case META_FRAME_CONTROL_DELETE:
|
||||||
case META_FRAME_CONTROL_MENU:
|
case META_FRAME_CONTROL_MENU:
|
||||||
case META_FRAME_CONTROL_APPMENU:
|
|
||||||
frame->grab_button = get_button_number (event);
|
frame->grab_button = get_button_number (event);
|
||||||
frame->button_state = META_BUTTON_STATE_PRESSED;
|
frame->button_state = META_BUTTON_STATE_PRESSED;
|
||||||
frame->prelit_control = control;
|
frame->prelit_control = control;
|
||||||
redraw_control (frame, control);
|
redraw_control (frame, control);
|
||||||
|
|
||||||
if (control == META_FRAME_CONTROL_MENU ||
|
if (control == META_FRAME_CONTROL_MENU)
|
||||||
control == META_FRAME_CONTROL_APPMENU)
|
|
||||||
{
|
{
|
||||||
MetaFrameGeometry fgeom;
|
MetaFrameGeometry fgeom;
|
||||||
GdkRectangle *rect;
|
GdkRectangle *rect;
|
||||||
MetaRectangle root_rect;
|
MetaRectangle root_rect;
|
||||||
MetaWindowMenuType menu;
|
|
||||||
int win_x, win_y;
|
int win_x, win_y;
|
||||||
|
|
||||||
meta_ui_frame_calc_geometry (frame, &fgeom);
|
meta_ui_frame_calc_geometry (frame, &fgeom);
|
||||||
@ -1053,9 +1050,6 @@ meta_frame_left_click_event (MetaUIFrame *frame,
|
|||||||
root_rect.width = rect->width;
|
root_rect.width = rect->width;
|
||||||
root_rect.height = rect->height;
|
root_rect.height = rect->height;
|
||||||
|
|
||||||
menu = control == META_FRAME_CONTROL_MENU ? META_WINDOW_MENU_WM
|
|
||||||
: META_WINDOW_MENU_APP;
|
|
||||||
|
|
||||||
/* if the compositor takes a grab for showing the menu, we will
|
/* if the compositor takes a grab for showing the menu, we will
|
||||||
* get a LeaveNotify event we want to ignore, to keep the pressed
|
* get a LeaveNotify event we want to ignore, to keep the pressed
|
||||||
* button state while the menu is open
|
* button state while the menu is open
|
||||||
@ -1063,7 +1057,7 @@ meta_frame_left_click_event (MetaUIFrame *frame,
|
|||||||
frame->maybe_ignore_leave_notify = TRUE;
|
frame->maybe_ignore_leave_notify = TRUE;
|
||||||
meta_core_show_window_menu_for_rect (display,
|
meta_core_show_window_menu_for_rect (display,
|
||||||
frame->xwindow,
|
frame->xwindow,
|
||||||
menu,
|
META_WINDOW_MENU_WM,
|
||||||
&root_rect,
|
&root_rect,
|
||||||
evtime);
|
evtime);
|
||||||
}
|
}
|
||||||
@ -1260,8 +1254,6 @@ meta_ui_frame_update_prelit_control (MetaUIFrame *frame,
|
|||||||
break;
|
break;
|
||||||
case META_FRAME_CONTROL_MENU:
|
case META_FRAME_CONTROL_MENU:
|
||||||
break;
|
break;
|
||||||
case META_FRAME_CONTROL_APPMENU:
|
|
||||||
break;
|
|
||||||
case META_FRAME_CONTROL_MINIMIZE:
|
case META_FRAME_CONTROL_MINIMIZE:
|
||||||
break;
|
break;
|
||||||
case META_FRAME_CONTROL_MAXIMIZE:
|
case META_FRAME_CONTROL_MAXIMIZE:
|
||||||
@ -1302,7 +1294,6 @@ meta_ui_frame_update_prelit_control (MetaUIFrame *frame,
|
|||||||
switch (control)
|
switch (control)
|
||||||
{
|
{
|
||||||
case META_FRAME_CONTROL_MENU:
|
case META_FRAME_CONTROL_MENU:
|
||||||
case META_FRAME_CONTROL_APPMENU:
|
|
||||||
case META_FRAME_CONTROL_MINIMIZE:
|
case META_FRAME_CONTROL_MINIMIZE:
|
||||||
case META_FRAME_CONTROL_MAXIMIZE:
|
case META_FRAME_CONTROL_MAXIMIZE:
|
||||||
case META_FRAME_CONTROL_DELETE:
|
case META_FRAME_CONTROL_DELETE:
|
||||||
@ -1535,9 +1526,6 @@ meta_ui_frame_paint (MetaUIFrame *frame,
|
|||||||
case META_FRAME_CONTROL_MENU:
|
case META_FRAME_CONTROL_MENU:
|
||||||
button_type = META_BUTTON_TYPE_MENU;
|
button_type = META_BUTTON_TYPE_MENU;
|
||||||
break;
|
break;
|
||||||
case META_FRAME_CONTROL_APPMENU:
|
|
||||||
button_type = META_BUTTON_TYPE_APPMENU;
|
|
||||||
break;
|
|
||||||
case META_FRAME_CONTROL_MINIMIZE:
|
case META_FRAME_CONTROL_MINIMIZE:
|
||||||
button_type = META_BUTTON_TYPE_MINIMIZE;
|
button_type = META_BUTTON_TYPE_MINIMIZE;
|
||||||
break;
|
break;
|
||||||
@ -1693,9 +1681,6 @@ control_rect (MetaFrameControl control,
|
|||||||
case META_FRAME_CONTROL_MENU:
|
case META_FRAME_CONTROL_MENU:
|
||||||
rect = &fgeom->menu_rect.visible;
|
rect = &fgeom->menu_rect.visible;
|
||||||
break;
|
break;
|
||||||
case META_FRAME_CONTROL_APPMENU:
|
|
||||||
rect = &fgeom->appmenu_rect.visible;
|
|
||||||
break;
|
|
||||||
case META_FRAME_CONTROL_MINIMIZE:
|
case META_FRAME_CONTROL_MINIMIZE:
|
||||||
rect = &fgeom->min_rect.visible;
|
rect = &fgeom->min_rect.visible;
|
||||||
break;
|
break;
|
||||||
@ -1761,9 +1746,6 @@ get_control (MetaUIFrame *frame, int root_x, int root_y)
|
|||||||
if (POINT_IN_RECT (x, y, fgeom.menu_rect.clickable))
|
if (POINT_IN_RECT (x, y, fgeom.menu_rect.clickable))
|
||||||
return META_FRAME_CONTROL_MENU;
|
return META_FRAME_CONTROL_MENU;
|
||||||
|
|
||||||
if (POINT_IN_RECT (x, y, fgeom.appmenu_rect.clickable))
|
|
||||||
return META_FRAME_CONTROL_APPMENU;
|
|
||||||
|
|
||||||
flags = meta_frame_get_flags (frame->meta_window->frame);
|
flags = meta_frame_get_flags (frame->meta_window->frame);
|
||||||
type = meta_window_get_frame_type (frame->meta_window);
|
type = meta_window_get_frame_type (frame->meta_window);
|
||||||
|
|
||||||
|
@ -36,7 +36,6 @@ typedef enum
|
|||||||
META_FRAME_CONTROL_TITLE,
|
META_FRAME_CONTROL_TITLE,
|
||||||
META_FRAME_CONTROL_DELETE,
|
META_FRAME_CONTROL_DELETE,
|
||||||
META_FRAME_CONTROL_MENU,
|
META_FRAME_CONTROL_MENU,
|
||||||
META_FRAME_CONTROL_APPMENU,
|
|
||||||
META_FRAME_CONTROL_MINIMIZE,
|
META_FRAME_CONTROL_MINIMIZE,
|
||||||
META_FRAME_CONTROL_MAXIMIZE,
|
META_FRAME_CONTROL_MAXIMIZE,
|
||||||
META_FRAME_CONTROL_UNMAXIMIZE,
|
META_FRAME_CONTROL_UNMAXIMIZE,
|
||||||
|
@ -128,14 +128,13 @@ struct _MetaFrameGeometry
|
|||||||
|
|
||||||
/* used for a memset hack */
|
/* used for a memset hack */
|
||||||
#define ADDRESS_OF_BUTTON_RECTS(fgeom) (((char*)(fgeom)) + G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
#define ADDRESS_OF_BUTTON_RECTS(fgeom) (((char*)(fgeom)) + G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
||||||
#define LENGTH_OF_BUTTON_RECTS (G_STRUCT_OFFSET (MetaFrameGeometry, appmenu_rect) + sizeof (MetaButtonSpace) - G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
#define LENGTH_OF_BUTTON_RECTS (G_STRUCT_OFFSET (MetaFrameGeometry, menu_rect) + sizeof (MetaButtonSpace) - G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
|
||||||
|
|
||||||
/* The button rects (if changed adjust memset hack) */
|
/* The button rects (if changed adjust memset hack) */
|
||||||
MetaButtonSpace close_rect;
|
MetaButtonSpace close_rect;
|
||||||
MetaButtonSpace max_rect;
|
MetaButtonSpace max_rect;
|
||||||
MetaButtonSpace min_rect;
|
MetaButtonSpace min_rect;
|
||||||
MetaButtonSpace menu_rect;
|
MetaButtonSpace menu_rect;
|
||||||
MetaButtonSpace appmenu_rect;
|
|
||||||
/* End of button rects (if changed adjust memset hack) */
|
/* End of button rects (if changed adjust memset hack) */
|
||||||
|
|
||||||
/* Saved button layout */
|
/* Saved button layout */
|
||||||
@ -164,7 +163,6 @@ typedef enum
|
|||||||
META_BUTTON_TYPE_MAXIMIZE,
|
META_BUTTON_TYPE_MAXIMIZE,
|
||||||
META_BUTTON_TYPE_MINIMIZE,
|
META_BUTTON_TYPE_MINIMIZE,
|
||||||
META_BUTTON_TYPE_MENU,
|
META_BUTTON_TYPE_MENU,
|
||||||
META_BUTTON_TYPE_APPMENU,
|
|
||||||
META_BUTTON_TYPE_LAST
|
META_BUTTON_TYPE_LAST
|
||||||
} MetaButtonType;
|
} MetaButtonType;
|
||||||
|
|
||||||
|
@ -169,11 +169,6 @@ rect_for_function (MetaFrameGeometry *fgeom,
|
|||||||
return &fgeom->menu_rect;
|
return &fgeom->menu_rect;
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
case META_BUTTON_FUNCTION_APPMENU:
|
|
||||||
if (flags & META_FRAME_ALLOWS_APPMENU)
|
|
||||||
return &fgeom->appmenu_rect;
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
case META_BUTTON_FUNCTION_MINIMIZE:
|
case META_BUTTON_FUNCTION_MINIMIZE:
|
||||||
if (flags & META_FRAME_ALLOWS_MINIMIZE)
|
if (flags & META_FRAME_ALLOWS_MINIMIZE)
|
||||||
return &fgeom->min_rect;
|
return &fgeom->min_rect;
|
||||||
@ -522,10 +517,6 @@ meta_frame_layout_calc_geometry (MetaFrameLayout *layout,
|
|||||||
continue;
|
continue;
|
||||||
else if (strip_button (left_func_rects, &n_left, &fgeom->menu_rect))
|
else if (strip_button (left_func_rects, &n_left, &fgeom->menu_rect))
|
||||||
continue;
|
continue;
|
||||||
else if (strip_button (right_func_rects, &n_right, &fgeom->appmenu_rect))
|
|
||||||
continue;
|
|
||||||
else if (strip_button (left_func_rects, &n_left, &fgeom->appmenu_rect))
|
|
||||||
continue;
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
meta_bug ("Could not find a button to strip. n_left = %d n_right = %d\n",
|
meta_bug ("Could not find a button to strip. n_left = %d n_right = %d\n",
|
||||||
@ -693,10 +684,6 @@ get_button_rect (MetaButtonType type,
|
|||||||
*rect = fgeom->menu_rect.visible;
|
*rect = fgeom->menu_rect.visible;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case META_BUTTON_TYPE_APPMENU:
|
|
||||||
*rect = fgeom->appmenu_rect.visible;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case META_BUTTON_TYPE_LAST:
|
case META_BUTTON_TYPE_LAST:
|
||||||
g_assert_not_reached ();
|
g_assert_not_reached ();
|
||||||
@ -715,8 +702,6 @@ get_class_from_button_type (MetaButtonType type)
|
|||||||
return "maximize";
|
return "maximize";
|
||||||
case META_BUTTON_TYPE_MINIMIZE:
|
case META_BUTTON_TYPE_MINIMIZE:
|
||||||
return "minimize";
|
return "minimize";
|
||||||
case META_BUTTON_TYPE_APPMENU:
|
|
||||||
return "appmenu";
|
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -871,9 +856,6 @@ meta_frame_layout_draw_with_style (MetaFrameLayout *layout,
|
|||||||
case META_BUTTON_TYPE_MENU:
|
case META_BUTTON_TYPE_MENU:
|
||||||
icon_name = "open-menu-symbolic";
|
icon_name = "open-menu-symbolic";
|
||||||
break;
|
break;
|
||||||
case META_BUTTON_TYPE_APPMENU:
|
|
||||||
surface = cairo_surface_reference (mini_icon);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
icon_name = NULL;
|
icon_name = NULL;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user