Disable drag and drop on sheet axes for which there is no connected signal
[pspp] / src / ui / gui / windows-menu.c
index 5390b0e9ae13efb254828c87e3b55ab13787e002..6974bc65be33c0ad14ac85f2345cf1b7fe9cd0dc 100644 (file)
@@ -42,23 +42,18 @@ min_all (GtkWidget *widget, gpointer ud)
 static void
 reset_check_state (GtkWidget *widget, gpointer ud)
 {
+  GtkWindow *win = GTK_WINDOW (ud);
+  gboolean state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget));
+
+  if (state == TRUE)
+    gtk_window_present (win);
+
   /* Prevent the state from actually changing */
   g_signal_handlers_block_by_func (widget, reset_check_state, ud);
-  gboolean state = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget));
   gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), !state);
   g_signal_handlers_unblock_by_func (widget, reset_check_state, ud);
 }
 
-static gboolean
-raise_window (GtkWidget *widget, GdkEvent *ev, gpointer ud)
-{
-  GtkWindow *win = GTK_WINDOW (ud);
-  gtk_window_present_with_time (win, ((GdkEventButton *)ev)->time);
-  
-  return FALSE;
-}
-
-
 static void
 add_menuitem (gpointer key, gpointer value, gpointer user_data)
 {
@@ -72,9 +67,6 @@ add_menuitem (gpointer key, gpointer value, gpointer user_data)
 
   g_signal_connect (mi, "toggled", G_CALLBACK (reset_check_state), pw);
 
-  g_signal_connect (mi, "button-press-event", G_CALLBACK (raise_window), pw);
-  
-
   gtk_container_add (GTK_CONTAINER(menu), mi);
 }
 
@@ -100,9 +92,9 @@ repopulate_windows_menu (GObject *inst, gchar *name, gpointer data)
   GtkWidget *minimize = gtk_menu_item_new_with_mnemonic (_("_Minimize all Windows"));
   GtkWidget *split = gtk_check_menu_item_new_with_mnemonic (_("_Split"));
 
-  
+
   GtkWidget *sep = gtk_separator_menu_item_new ();
-    
+
   gtk_menu_attach (GTK_MENU (menu), minimize, 0, 1, 0, 1);
 
   if (PSPPIRE_DATA_WINDOW_TYPE == G_OBJECT_TYPE (toplevel) )
@@ -111,17 +103,17 @@ repopulate_windows_menu (GObject *inst, gchar *name, gpointer data)
       g_signal_connect_swapped (split, "toggled",
                                G_CALLBACK (toggle_split_window), toplevel);
     }
-    
+
   gtk_container_add (GTK_CONTAINER (menu), sep);
 
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), menu);
 
   g_object_set_data (G_OBJECT (menu), "toplevel", toplevel);
-  
+
   g_hash_table_foreach (reg->name_table, add_menuitem, menu);
 
   g_signal_connect (minimize, "activate", G_CALLBACK (min_all), NULL);
-  
+
   gtk_widget_show_all (GTK_WIDGET (mi));
 }
 
@@ -137,11 +129,11 @@ GtkWidget *
 create_windows_menu (GtkWindow *toplevel)
 {
   PsppireWindowRegister *reg = psppire_window_register_new ();
-  
+
   GtkWidget *menuitem = gtk_menu_item_new_with_mnemonic (_("_Windows"));
 
   g_object_set_data (G_OBJECT (menuitem), "toplevel", toplevel);
-  
+
   g_signal_connect (reg, "removed", G_CALLBACK (repopulate_windows_menu), menuitem);
   g_signal_connect (reg, "inserted", G_CALLBACK (repopulate_windows_menu), menuitem);