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)
{
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);
}
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) )
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));
}
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);