~ubuntu-branches/ubuntu/oneiric/pcmanfm/oneiric

« back to all changes in this revision

Viewing changes to src/desktop.c

  • Committer: Bazaar Package Importer
  • Author(s): Julien Lavergne
  • Date: 2011-02-21 23:18:32 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20110221231832-paor7n15r62zw5hj
Tags: 0.9.8+git-6240436419-0ubuntu1
* New upstream snapshot (2011-02-15)
 - Correctly handle spaces in path and filenames (LP: #686526, #693990).
* debian/patches/
 - 90-enable-fake-transparency.patch: Remove, merged upstream.
 - 01-libfm-0.1.14-API-changes.patch: Refresh.
* debian/control
 - Build-depends on libfm-dev (>= 0.1.15).

Show diffs side-by-side

added added

removed removed

Lines of Context:
585
585
    g_list_free(sel_items);
586
586
 
587
587
    fi = (FmFileInfo*)fm_list_peek_head(files);
588
 
    menu = fm_file_menu_new_for_files(files, fm_path_get_desktop(), TRUE);
 
588
    menu = fm_file_menu_new_for_files(GTK_WINDOW(desktop), files, fm_path_get_desktop(), TRUE);
589
589
    fm_file_menu_set_folder_func(menu, pcmanfm_open_folder, desktop);
590
590
    fm_list_unref(files);
591
591
 
592
592
    ui = fm_file_menu_get_ui(menu);
593
593
    act_grp = fm_file_menu_get_action_group(menu);
 
594
        gtk_action_group_set_translation_domain(act_grp, NULL);
 
595
 
594
596
    /* merge some specific menu items for folders */
595
597
    if(fm_file_menu_is_single_file_type(menu) && fm_file_info_is_dir(fi))
596
598
    {
669
671
            if( evt->button == 3 )  /* right click on the blank area => desktop popup menu */
670
672
            {
671
673
                if(! app_config->show_wm_menu)
 
674
                {
 
675
                    if(gtk_menu_get_attach_widget(desktop_popup))
 
676
                        gtk_menu_detach(desktop_popup);
 
677
                    gtk_menu_attach_to_widget(desktop_popup, w, NULL);
672
678
                    gtk_menu_popup(GTK_MENU(desktop_popup), NULL, NULL, NULL, NULL, 3, evt->time);
 
679
                }
673
680
            }
674
681
            else if( evt->button == 1 )
675
682
            {
924
931
            FmFileInfoList* infos = fm_desktop_get_selected_files(desktop);
925
932
            if(infos)
926
933
            {
927
 
                fm_show_file_properties(infos);
 
934
                fm_show_file_properties(GTK_WINDOW(desktop), infos);
928
935
                fm_list_unref(infos);
929
936
                return TRUE;
930
937
            }
959
966
        sels = fm_desktop_get_selected_paths(desktop);
960
967
        if(sels)
961
968
        {
962
 
            fm_rename_file(fm_list_peek_head(sels));
 
969
            fm_rename_file(GTK_WINDOW(desktop), fm_list_peek_head(sels));
963
970
            fm_list_unref(sels);
964
971
        }
965
972
        break;
968
975
        if(sels)
969
976
        {
970
977
            if(modifier & GDK_SHIFT_MASK)
971
 
                fm_delete_files(sels);
 
978
                fm_delete_files(GTK_WINDOW(desktop), sels);
972
979
            else
973
 
                fm_trash_or_delete_files(sels);
 
980
                fm_trash_or_delete_files(GTK_WINDOW(desktop), sels);
974
981
            fm_list_unref(sels);
975
982
        }
976
983
        break;
2087
2094
        layout_items(desktop);
2088
2095
    }
2089
2096
    g_list_free(items);
 
2097
    save_item_pos(desktop);
 
2098
}
 
2099
 
 
2100
/* round() is only available in C99. Don't use it now for portability. */
 
2101
inline double _round(double x)
 
2102
{
 
2103
    return (x > 0.0) ? floor(x + 0.5) : ceil(x - 0.5);
2090
2104
}
2091
2105
 
2092
2106
static void on_snap_to_grid(GtkAction* act, gpointer user_data)
2112
2126
        item = (FmDesktopItem*)l->data;
2113
2127
        if(!item->fixed_pos)
2114
2128
            continue;
2115
 
        new_x = x + round((double)(item->x - x) / desktop->cell_w) * desktop->cell_w;
2116
 
        new_y = y + round((double)(item->y - y) / desktop->cell_h) * desktop->cell_h;
 
2129
        new_x = x + _round((double)(item->x - x) / desktop->cell_w) * desktop->cell_w;
 
2130
        new_y = y + _round((double)(item->y - y) / desktop->cell_h) * desktop->cell_h;
2117
2131
        move_item(desktop, item, new_x, new_y, FALSE);
2118
2132
    }
2119
2133
    g_list_free(items);