@@ -909,70 +909,68 @@ namespace Gala {
909909 }
910910
911911 public override void show_window_menu (Meta .Window window , Meta .WindowMenuType menu , int x , int y ) {
912- switch (menu) {
913- case Meta . WindowMenuType . WM:
914- if (NotificationStack . is_notification (window)) {
915- return ;
916- }
912+ if (menu != WM ) {
913+ warning (" Unsupported window menu type" );
914+ return ;
915+ }
916+
917+ if (! Utils . get_window_is_normal (window) || NotificationStack . is_notification (window)) {
918+ return ;
919+ }
917920
918- WindowFlags flags = WindowFlags . NONE ;
919- if (window. can_minimize ())
920- flags |= WindowFlags . CAN_HIDE ;
921+ WindowFlags flags = WindowFlags . NONE ;
922+ if (window. can_minimize ())
923+ flags |= WindowFlags . CAN_HIDE ;
921924
922- if (window. can_maximize ())
923- flags |= WindowFlags . CAN_MAXIMIZE ;
925+ if (window. can_maximize ())
926+ flags |= WindowFlags . CAN_MAXIMIZE ;
924927
925928#if HAS_MUTTER49
926- if (window. is_maximized ())
927- flags |= WindowFlags . IS_MAXIMIZED ;
929+ if (window. is_maximized ())
930+ flags |= WindowFlags . IS_MAXIMIZED ;
928931
929- if (window. maximized_vertically && ! window. maximized_horizontally)
930- flags |= WindowFlags . IS_TILED ;
932+ if (window. maximized_vertically && ! window. maximized_horizontally)
933+ flags |= WindowFlags . IS_TILED ;
931934#else
932- var maximize_flags = window. get_maximized ();
933- if (maximize_flags > 0 ) {
934- flags |= WindowFlags . IS_MAXIMIZED ;
935+ var maximize_flags = window. get_maximized ();
936+ if (maximize_flags > 0 ) {
937+ flags |= WindowFlags . IS_MAXIMIZED ;
935938
936- if (Meta . MaximizeFlags . VERTICAL in maximize_flags && ! (Meta . MaximizeFlags . HORIZONTAL in maximize_flags)) {
937- flags |= WindowFlags . IS_TILED ;
938- }
939- }
939+ if (Meta . MaximizeFlags . VERTICAL in maximize_flags && ! (Meta . MaximizeFlags . HORIZONTAL in maximize_flags)) {
940+ flags |= WindowFlags . IS_TILED ;
941+ }
942+ }
940943#endif
941944
942- if (window. allows_move ())
943- flags |= WindowFlags . ALLOWS_MOVE ;
944-
945- if (window. allows_resize ())
946- flags |= WindowFlags . ALLOWS_RESIZE ;
945+ if (window. allows_move ())
946+ flags |= WindowFlags . ALLOWS_MOVE ;
947947
948- if (window. is_above ())
949- flags |= WindowFlags . ALWAYS_ON_TOP ;
948+ if (window. allows_resize ())
949+ flags |= WindowFlags . ALLOWS_RESIZE ;
950950
951- if (window. on_all_workspaces )
952- flags |= WindowFlags . ON_ALL_WORKSPACES ;
951+ if (window. is_above () )
952+ flags |= WindowFlags . ALWAYS_ON_TOP ;
953953
954- if (window. can_close () )
955- flags |= WindowFlags . CAN_CLOSE ;
954+ if (window. on_all_workspaces )
955+ flags |= WindowFlags . ON_ALL_WORKSPACES ;
956956
957- unowned var workspace = window. get_workspace ();
958- if (workspace != null ) {
959- unowned var manager = window. display. get_workspace_manager ();
960- var workspace_index = workspace. workspace_index;
961- if (workspace_index != 0 ) {
962- flags |= WindowFlags . ALLOWS_MOVE_LEFT ;
963- }
957+ if (window. can_close ())
958+ flags |= WindowFlags . CAN_CLOSE ;
964959
965- if (workspace_index != manager. n_workspaces - 2 || Utils . get_n_windows (workspace) != 1 ) {
966- flags |= WindowFlags . ALLOWS_MOVE_RIGHT ;
967- }
968- }
960+ unowned var workspace = window. get_workspace ();
961+ if (workspace != null ) {
962+ unowned var manager = window. display. get_workspace_manager ();
963+ var workspace_index = workspace. workspace_index;
964+ if (workspace_index != 0 ) {
965+ flags |= WindowFlags . ALLOWS_MOVE_LEFT ;
966+ }
969967
970- daemon_manager. show_window_menu. begin (flags, x, y);
971- break ;
972- case Meta . WindowMenuType . APP:
973- // FIXME we don't have any sort of app menus
974- break ;
968+ if (workspace_index != manager. n_workspaces - 2 || Utils . get_n_windows (workspace) != 1 ) {
969+ flags |= WindowFlags . ALLOWS_MOVE_RIGHT ;
970+ }
975971 }
972+
973+ daemon_manager. show_window_menu. begin (flags, x, y);
976974 }
977975
978976 public override void show_tile_preview (Meta .Window window , Mtk .Rectangle tile_rect , int tile_monitor_number ) {
0 commit comments