Skip to content

Commit 91a53ec

Browse files
authored
Don't handle window menus for windows that are not normal (#2736)
Addresses #2723
1 parent 7f633aa commit 91a53ec

File tree

1 file changed

+46
-48
lines changed

1 file changed

+46
-48
lines changed

src/WindowManager.vala

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)