diff options
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | libcaja-private/caja-file-operations.c | 40 | ||||
-rw-r--r-- | libcaja-private/caja-icon-container.c | 5 | ||||
-rw-r--r-- | libcaja-private/caja-progress-info.c | 4 | ||||
-rw-r--r-- | libcaja-private/caja-progress-info.h | 2 | ||||
-rw-r--r-- | src/caja-desktop-window.c | 1 | ||||
-rw-r--r-- | src/caja-window.c | 18 |
7 files changed, 40 insertions, 34 deletions
diff --git a/.travis.yml b/.travis.yml index 0d9dd451..63a13ccd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,7 +48,7 @@ before_deploy: deploy: - provider: pages edge: - branch: v2.0.5 + branch: v2.0.5 token: $GITHUB_TOKEN keep_history: false committer_from_gh: true @@ -60,7 +60,7 @@ deploy: condition: ${DISTRO} =~ ^fedora.*$ - provider: script edge: - branch: v2.0.5 + branch: v2.0.5 script: ./docker-build --verbose --config .build.yml --release github on: tags: true diff --git a/libcaja-private/caja-file-operations.c b/libcaja-private/caja-file-operations.c index edc595b1..4b51c907 100644 --- a/libcaja-private/caja-file-operations.c +++ b/libcaja-private/caja-file-operations.c @@ -1497,7 +1497,7 @@ report_delete_progress (CommonJob *job, TransferInfo *transfer_info) { int files_left; - double elapsed; + double elapsed, transfer_rate; gint64 now; char *files_left_s; @@ -1524,15 +1524,19 @@ report_delete_progress (CommonJob *job, f (_("Deleting files"))); elapsed = g_timer_elapsed (job->time, NULL); - if (elapsed < SECONDS_NEEDED_FOR_RELIABLE_TRANSFER_RATE) { + transfer_rate = 0; + if (elapsed > 0) { + transfer_rate = transfer_info->num_files / elapsed; + } + + if (elapsed < SECONDS_NEEDED_FOR_RELIABLE_TRANSFER_RATE || + transfer_rate <= 0) { caja_progress_info_set_details (job->progress, files_left_s); } else { char *details, *time_left_s; int remaining_time; - double transfer_rate; - transfer_rate = transfer_info->num_files / elapsed; remaining_time = files_left / transfer_rate; /* Translators: %T will expand to a time like "2 minutes". @@ -1875,7 +1879,7 @@ trash_files (CommonJob *job, GList *files, guint *files_skipped) for (l = files; l != NULL && !job_aborted (job); l = l->next) { - caja_progress_info_get_ready (job->progress); + caja_progress_info_get_ready (job->progress, job->time); file = l->data; @@ -3109,8 +3113,8 @@ report_copy_progress (CopyMoveJob *copy_job, transfer_rate = transfer_info->num_bytes / elapsed; } - if (elapsed < SECONDS_NEEDED_FOR_RELIABLE_TRANSFER_RATE && - transfer_rate > 0) { + if (elapsed < SECONDS_NEEDED_FOR_RELIABLE_TRANSFER_RATE || + transfer_rate <= 0) { char *s; /* Translators: %S will expand to a size like "2 bytes" or "3 MB", so something like "4 kb of 4 MB" */ s = f (_("%S of %S"), transfer_info->num_bytes, total_size); @@ -3628,7 +3632,7 @@ copy_move_directory (CopyMoveJob *copy_job, nextinfo = g_file_enumerator_next_file (enumerator, job->cancellable, skip_error?NULL:&error); while (!job_aborted (job) && (info = nextinfo) != NULL) { - caja_progress_info_get_ready (job->progress); + caja_progress_info_get_ready (job->progress, job->time); nextinfo = g_file_enumerator_next_file (enumerator, job->cancellable, skip_error?NULL:&error); src_file = g_file_get_child (src, @@ -4594,7 +4598,7 @@ copy_files (CopyMoveJob *job, for (l = job->files; l != NULL && !job_aborted (common); l = l->next) { - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); src = l->data; @@ -4911,7 +4915,7 @@ move_file_prepare (CopyMoveJob *move_job, } retry: - caja_progress_info_get_ready (job->progress); + caja_progress_info_get_ready (job->progress, job->time); flags = G_FILE_COPY_NOFOLLOW_SYMLINKS | G_FILE_COPY_NO_FALLBACK_FOR_MOVE; if (overwrite) { @@ -5087,7 +5091,7 @@ move_files_prepare (CopyMoveJob *job, total = left = g_list_length (job->files); - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); report_move_progress (job, total, left); i = 0; @@ -5151,7 +5155,7 @@ move_files (CopyMoveJob *job, for (l = fallbacks; l != NULL && !job_aborted (common); l = l->next) { - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); fallback = l->data; src = fallback->file; @@ -5265,6 +5269,8 @@ move_job (GIOSchedulerJob *io_job, goto aborted; } + g_timer_start (job->common.time); + memset (&transfer_info, 0, sizeof (transfer_info)); move_files (job, fallbacks, @@ -5575,7 +5581,7 @@ link_job (GIOSchedulerJob *io_job, for (l = job->files; l != NULL && !job_aborted (common); l = l->next) { - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); src = l->data; @@ -5717,7 +5723,7 @@ set_permissions_file (SetPermissionsJob *job, caja_progress_info_pulse_progress (common->progress); - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); free_info = FALSE; if (info == NULL) { @@ -6082,7 +6088,7 @@ create_job (GIOSchedulerJob *io_job, count = 1; retry: - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); error = NULL; if (job->make_dir) { @@ -6412,7 +6418,7 @@ delete_trash_file (CommonJob *job, gboolean del_file, gboolean del_children) { - caja_progress_info_get_ready (job->progress); + caja_progress_info_get_ready (job->progress, job->time); if (job_aborted (job)) { return; @@ -6561,7 +6567,7 @@ mark_desktop_file_trusted (CommonJob *common, GFileInfo *info; retry: - caja_progress_info_get_ready (common->progress); + caja_progress_info_get_ready (common->progress, common->time); error = NULL; if (!g_file_load_contents (file, diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c index 4c4c084c..d30add27 100644 --- a/libcaja-private/caja-icon-container.c +++ b/libcaja-private/caja-icon-container.c @@ -4416,7 +4416,10 @@ destroy (GtkWidget *object) /* destroy interactive search dialog */ if (container->details->search_window) { - gtk_widget_destroy (container->details->search_window); + /*current GTK docs do not advise calling gtk_widget_destroy on child widgets + *gtk_widget_destroy (container->details->search_window); + *also note that GtkContainer destroys it's child widgets when it is destroyed + */ container->details->search_window = NULL; container->details->search_entry = NULL; if (container->details->typeselect_flush_timeout) diff --git a/libcaja-private/caja-progress-info.c b/libcaja-private/caja-progress-info.c index 1db11351..7ded7ae4 100644 --- a/libcaja-private/caja-progress-info.c +++ b/libcaja-private/caja-progress-info.c @@ -707,7 +707,7 @@ widget_state_notify_paused_callback (ProgressWidgetData *data) } void -caja_progress_info_get_ready (CajaProgressInfo *info) +caja_progress_info_get_ready (CajaProgressInfo *info, GTimer *time) { if (info->waiting) { G_LOCK (progress_info); @@ -717,8 +717,10 @@ caja_progress_info_get_ready (CajaProgressInfo *info) g_source_set_callback (source, (GSourceFunc)widget_state_notify_paused_callback, info->widget, NULL); g_source_attach (source, NULL); + g_timer_stop (time); while (info->waiting) g_cond_wait (&info->waiting_c, &G_LOCK_NAME(progress_info)); + g_timer_continue (time); } G_UNLOCK (progress_info); } diff --git a/libcaja-private/caja-progress-info.h b/libcaja-private/caja-progress-info.h index c713361b..4b3e59f4 100644 --- a/libcaja-private/caja-progress-info.h +++ b/libcaja-private/caja-progress-info.h @@ -51,7 +51,7 @@ GType caja_progress_info_get_type (void) G_GNUC_CONST; */ CajaProgressInfo *caja_progress_info_new (gboolean should_start, gboolean can_pause); -void caja_progress_info_get_ready (CajaProgressInfo *info); +void caja_progress_info_get_ready (CajaProgressInfo *info, GTimer *time); void caja_progress_info_disable_pause (CajaProgressInfo *info); GList * caja_get_all_progress_info (void); diff --git a/src/caja-desktop-window.c b/src/caja-desktop-window.c index 662c2472..771ddd53 100644 --- a/src/caja-desktop-window.c +++ b/src/caja-desktop-window.c @@ -116,6 +116,7 @@ caja_desktop_window_init (CajaDesktopWindow *window) gtk_widget_hide (CAJA_WINDOW (window)->details->statusbar); gtk_widget_hide (CAJA_WINDOW (window)->details->menubar); + gtk_window_set_decorated (GTK_WINDOW (window), FALSE); /* Don't allow close action on desktop */ G_GNUC_BEGIN_IGNORE_DEPRECATIONS; diff --git a/src/caja-window.c b/src/caja-window.c index a67a5ee4..2191a7ed 100644 --- a/src/caja-window.c +++ b/src/caja-window.c @@ -632,17 +632,6 @@ caja_window_set_initial_window_geometry (CajaWindow *window) } static void -caja_window_constructed (GObject *self) -{ - CajaWindow *window; - - window = CAJA_WINDOW (self); - - caja_window_initialize_bookmarks_menu (window); - caja_window_set_initial_window_geometry (window); -} - -static void caja_window_set_property (GObject *object, guint arg_id, const GValue *value, @@ -742,6 +731,12 @@ caja_window_constructor (GType type, slot = caja_window_open_slot (window->details->active_pane, 0); caja_window_set_active_slot (window, slot); + /*We can now do this here instead of in a separate constructed function + *and we need to because the separate constructed function causes the + *window to be un-draggable/un-resizable with the mouse in wayland + */ + caja_window_initialize_bookmarks_menu (window); + caja_window_set_initial_window_geometry (window); return object; } @@ -2170,7 +2165,6 @@ caja_window_class_init (CajaWindowClass *class) GtkBindingSet *binding_set; G_OBJECT_CLASS (class)->constructor = caja_window_constructor; - G_OBJECT_CLASS (class)->constructed = caja_window_constructed; G_OBJECT_CLASS (class)->get_property = caja_window_get_property; G_OBJECT_CLASS (class)->set_property = caja_window_set_property; G_OBJECT_CLASS (class)->finalize = caja_window_finalize; |