summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml4
-rw-r--r--libcaja-private/caja-file-operations.c40
-rw-r--r--libcaja-private/caja-icon-container.c5
-rw-r--r--libcaja-private/caja-progress-info.c4
-rw-r--r--libcaja-private/caja-progress-info.h2
-rw-r--r--src/caja-desktop-window.c1
-rw-r--r--src/caja-window.c18
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;