[gtk+] Add an 'Always on Top' item to the csd window menu
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add an 'Always on Top' item to the csd window menu
- Date: Sat, 24 Aug 2013 04:53:21 +0000 (UTC)
commit 8f69721ed463e1fb484848205d78ff1e6c042c42
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Aug 23 22:46:04 2013 -0400
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
gtk/gtkwindow.c | 28 ++++++++++++++++++++++------
1 files changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index fec88e8..aeb1358 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -7879,6 +7879,15 @@ maximize_window_clicked (GtkMenuItem *menuitem,
}
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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]