Add an 'Always on Top' item to the csd window menu
We want to make the csd window menu as similar as possible to the mutter window menu. https://bugzilla.gnome.org/show_bug.cgi?id=706323
This commit is contained in:
@@ -7878,6 +7878,15 @@ maximize_window_clicked (GtkMenuItem *menuitem,
|
||||
gtk_window_titlebar_max_clicked (GTK_WIDGET (window), window);
|
||||
}
|
||||
|
||||
static void
|
||||
ontop_window_clicked (GtkMenuItem *menuitem,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWindow *window = (GtkWindow *)user_data;
|
||||
|
||||
gtk_window_set_keep_above (window, !window->priv->above_initially);
|
||||
}
|
||||
|
||||
static void
|
||||
close_window_clicked (GtkMenuItem *menuitem,
|
||||
gpointer user_data)
|
||||
@@ -7909,8 +7918,7 @@ gtk_window_do_popup (GtkWindow *window,
|
||||
gtk_widget_show (menuitem);
|
||||
if (priv->gdk_type_hint != GDK_WINDOW_TYPE_HINT_NORMAL)
|
||||
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||
g_signal_connect (G_OBJECT (menuitem),
|
||||
"activate",
|
||||
g_signal_connect (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (minimize_window_clicked), window);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
|
||||
|
||||
@@ -7919,11 +7927,20 @@ gtk_window_do_popup (GtkWindow *window,
|
||||
if (!priv->resizable ||
|
||||
priv->gdk_type_hint != GDK_WINDOW_TYPE_HINT_NORMAL)
|
||||
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||
g_signal_connect (G_OBJECT (menuitem),
|
||||
"activate",
|
||||
g_signal_connect (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (maximize_window_clicked), window);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
|
||||
|
||||
menuitem = gtk_check_menu_item_new_with_label (_("Always on Top"));
|
||||
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem),
|
||||
priv->above_initially);
|
||||
if (gtk_window_get_maximized (window))
|
||||
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||
gtk_widget_show (menuitem);
|
||||
g_signal_connect (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (ontop_window_clicked), window);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
|
||||
|
||||
menuitem = gtk_separator_menu_item_new ();
|
||||
gtk_widget_show (menuitem);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
|
||||
@@ -7932,8 +7949,7 @@ gtk_window_do_popup (GtkWindow *window,
|
||||
gtk_widget_show (menuitem);
|
||||
if (!priv->deletable)
|
||||
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||
g_signal_connect (G_OBJECT (menuitem),
|
||||
"activate",
|
||||
g_signal_connect (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (close_window_clicked), window);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user