[gtk+] Add move and resize to the csd window menu



commit 6718a21b1ce1d282e66dfc2bd37f4b7b5d3a09e7
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jan 12 22:09:52 2014 -0500

    Add move and resize to the csd window menu
    
    With the previous commit, these operations can be implemented
    now.

 gtk/gtkwindow.c |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 3966c38..a992728 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -8125,6 +8125,28 @@ close_window_clicked (GtkMenuItem *menuitem,
 }
 
 static void
+move_window_clicked (GtkMenuItem *menuitem,
+                     gpointer     user_data)
+{
+  GtkWidget *widget = (GtkWidget *)user_data;
+
+  gdk_window_begin_move_drag (gtk_widget_get_window (widget),
+                              0, 0, 0,
+                              gtk_get_current_event_time ());
+}
+
+static void
+resize_window_clicked (GtkMenuItem *menuitem,
+                       gpointer     user_data)
+{
+  GtkWidget *widget = (GtkWidget *)user_data;
+
+  gdk_window_begin_resize_drag (gtk_widget_get_window (widget),
+                                0, 0, 0, 0,
+                                gtk_get_current_event_time ());
+}
+
+static void
 gtk_window_do_popup (GtkWindow      *window,
                      GdkEventButton *event)
 {
@@ -8159,6 +8181,20 @@ gtk_window_do_popup (GtkWindow      *window,
                             G_CALLBACK (_gtk_window_toggle_maximized), window);
   gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
 
+  menuitem = gtk_menu_item_new_with_label (_("Move"));
+  gtk_widget_show (menuitem);
+  g_signal_connect (G_OBJECT (menuitem), "activate",
+                    G_CALLBACK (move_window_clicked), window);
+  gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), menuitem);
+
+  menuitem = gtk_menu_item_new_with_label (_("Resize"));
+  gtk_widget_show (menuitem);
+  if (!priv->resizable || priv->maximized)
+    gtk_widget_set_sensitive (menuitem, FALSE);
+  g_signal_connect (G_OBJECT (menuitem), "activate",
+                    G_CALLBACK (resize_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 (priv->maximized)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]