Submitted By: Fernando de Oliveira Date: 2015-09-15 Initial Package Version: 0.5.4 Upstream Status: Unknown Origin: ArchLinux, Fedora and Gentoo Description: Several fixes: add mime types, version, no xfce, gtk+3 port, icon names, password protected, rpm support ================================================================================ ================================================================================ diff -Naur xarchiver-0.5.4.orig/autogen.sh xarchiver-0.5.4/autogen.sh --- xarchiver-0.5.4.orig/autogen.sh 2008-10-13 11:03:03.000000000 -0300 +++ xarchiver-0.5.4/autogen.sh 2015-09-12 07:08:56.431356704 -0300 @@ -1,39 +1,9 @@ #!/bin/sh -# -# $Id: autogen.sh 22391 2006-07-10 12:54:50Z benny $ -# -# Copyright (c) 2002-2006 -# The Xfce development team. All rights reserved. -# -# Written for Xfce by Benedikt Meurer . -# - -(type xdt-autogen) >/dev/null 2>&1 || { - cat >&2 </dev/null 2>&1 || { - cat >&2 < "configure.in" - -exec xdt-autogen $@ - -# vi:set ts=2 sw=2 et ai: +# use automake v1.9 +aclocal \ +&& libtoolize --force --copy \ +&& intltoolize --force --copy --automake \ +&& autoheader \ +&& automake --add-missing --gnu --copy \ +&& autoconf \ +&& ./configure $@ diff -Naur xarchiver-0.5.4.orig/configure.in xarchiver-0.5.4/configure.in --- xarchiver-0.5.4.orig/configure.in 2014-02-09 12:29:23.000000000 -0300 +++ xarchiver-0.5.4/configure.in 2015-09-12 07:08:56.432356681 -0300 @@ -11,7 +11,7 @@ dnl *************************** m4_define([xarchiver_version_major], [0]) m4_define([xarchiver_version_minor], [5]) -m4_define([xarchiver_version_micro], [3]) +m4_define([xarchiver_version_micro], [4]) m4_define([xarchiver_version_nano], []) # Leave empty for no nano version m4_define([xarchiver_version_build], [r28705]) m4_define([xarchiver_version_tag], []) # Leave empty for releases @@ -27,7 +27,6 @@ AC_INIT([xarchiver], [xarchiver_version], [http://bugzilla.xfce.org/]) AC_PREREQ([2.50]) AC_CANONICAL_TARGET() -AC_REVISION([$Id: configure.in.in 28647 2008-11-07 13:53:00Z colossus $]) dnl *************************** dnl *** Initialize automake *** @@ -75,19 +74,31 @@ dnl ****************************** dnl *** Check for i18n support *** dnl ****************************** -XDT_I18N([bg ca cs da de el en_GB es eu fi fr hu id ja nb_NO nl pl pt_BR pt_PT ru sq sv tr uk]) +GETTEXT_PACKAGE=AC_PACKAGE_TARNAME() +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [Name of default gettext domain]) +AC_SUBST([GETTEXT_PACKAGE]) -dnl *********************************** -dnl *** Check for required packages *** -dnl *********************************** -XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.10.0]) -XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.10.0]) -GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0` +AM_GLIB_GNU_GETTEXT() dnl *********************************** -dnl *** Check for debugging support *** +dnl *** Check for required packages *** dnl *********************************** -XDT_FEATURE_DEBUG() +AC_ARG_ENABLE([gtk3], + [AC_HELP_STRING([--enable-gtk3], + [compile xarchiver against gtk+ 3.0 (default: yes)])], + [enable_gtk3="${enableval}"], + [enable_gtk3="yes"] +) + +if test x"$enable_gtk3" = x"yes"; then + GTK_API_VERSION="3.0" +else + GTK_API_VERSION="2.0" +fi + +PKG_CHECK_MODULES([GTK], [gtk+-$GTK_API_VERSION >= 2.10.0]) +PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.10.0]) +GTK_VERSION=`$PKG_CONFIG --modversion gtk+-$GTK_API_VERSION` AC_OUTPUT([ Makefile diff -Naur xarchiver-0.5.4.orig/src/add_dialog.c xarchiver-0.5.4/src/add_dialog.c --- xarchiver-0.5.4.orig/src/add_dialog.c 2014-02-09 12:26:24.000000000 -0300 +++ xarchiver-0.5.4/src/add_dialog.c 2015-09-12 07:08:56.413357101 -0300 @@ -31,16 +31,13 @@ add_dialog = g_new0 (Add_dialog_data, 1); add_dialog->path_group = NULL; - add_dialog->option_tooltip = gtk_tooltips_new (); add_dialog->dialog1 = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (add_dialog->dialog1), _("Add files")); gtk_window_set_position (GTK_WINDOW (add_dialog->dialog1),GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_type_hint (GTK_WINDOW (add_dialog->dialog1), GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_dialog_set_has_separator (GTK_DIALOG (add_dialog->dialog1),FALSE); - add_dialog->add_option_tooltip = gtk_tooltips_new (); - add_dialog->dialog_vbox1 = GTK_DIALOG (add_dialog->dialog1)->vbox; + add_dialog->dialog_vbox1 = gtk_dialog_get_content_area(GTK_DIALOG (add_dialog->dialog1)); add_dialog->notebook1 = gtk_notebook_new (); gtk_box_pack_start (GTK_BOX (add_dialog->dialog_vbox1),add_dialog->notebook1, TRUE, TRUE,0); @@ -107,13 +104,13 @@ add_dialog->update = gtk_check_button_new_with_mnemonic (_("Update and add")); gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->update), FALSE); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->update, _("This option will add any new files and update any files which have been modified since the archive was last created/modified"), NULL ); + gtk_widget_set_tooltip_text (add_dialog->update, _("This option will add any new files and update any files which have been modified since the archive was last created/modified")); gtk_box_pack_start (GTK_BOX (vbox3), add_dialog->update, FALSE, FALSE, 0); add_dialog->freshen = gtk_check_button_new_with_mnemonic (_("Freshen and replace")); gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->freshen), FALSE); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->freshen , _("This option affects the archive only if it has been modified more recently than the version already in the archive; unlike the update option it will not add files that are not already in the archive"), NULL ); + gtk_widget_set_tooltip_text (add_dialog->freshen , _("This option affects the archive only if it has been modified more recently than the version already in the archive; unlike the update option it will not add files that are not already in the archive")); gtk_box_pack_start (GTK_BOX (vbox3), add_dialog->freshen, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (add_dialog->freshen),"toggled",G_CALLBACK (add_fresh_update_toggled_cb) , add_dialog); @@ -123,7 +120,7 @@ add_dialog->solid_archive = gtk_check_button_new_with_mnemonic (_("Create a solid archive")); gtk_button_set_focus_on_click (GTK_BUTTON (add_dialog->solid_archive), FALSE); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->solid_archive , _("In a solid archive the files are grouped together featuring a better compression ratio"), NULL); + gtk_widget_set_tooltip_text (add_dialog->solid_archive , _("In a solid archive the files are grouped together featuring a better compression ratio")); gtk_box_pack_start (GTK_BOX (vbox3), add_dialog->solid_archive, FALSE, FALSE, 0); add_dialog->remove_files = gtk_check_button_new_with_mnemonic (_("Delete files after adding")); @@ -172,12 +169,12 @@ label5 = gtk_label_new (_("Encryption: ")); gtk_frame_set_label_widget (GTK_FRAME (frame3), label5); - dialog_action_area1 = GTK_DIALOG (add_dialog->dialog1)->action_area; + dialog_action_area1 = gtk_dialog_get_action_area(GTK_DIALOG (add_dialog->dialog1)); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); add_dialog->cancel_button = gtk_button_new_from_stock ("gtk-cancel"); gtk_dialog_add_action_widget (GTK_DIALOG (add_dialog->dialog1), add_dialog->cancel_button, GTK_RESPONSE_CANCEL); - GTK_WIDGET_SET_FLAGS (add_dialog->cancel_button, GTK_CAN_DEFAULT); + gtk_widget_set_can_default (add_dialog->cancel_button, TRUE); add_dialog->add_button = gtk_button_new(); add_dialog->add_image = xa_main_window_find_image("xarchiver-add.png", GTK_ICON_SIZE_SMALL_TOOLBAR); @@ -192,7 +189,7 @@ gtk_container_add(GTK_CONTAINER(add_dialog->add_button), alignment2); gtk_dialog_add_action_widget (GTK_DIALOG (add_dialog->dialog1), add_dialog->add_button, GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (add_dialog->add_button, GTK_CAN_DEFAULT); + gtk_widget_set_can_default (add_dialog->add_button, TRUE); gtk_dialog_set_default_response (GTK_DIALOG (add_dialog->dialog1), GTK_RESPONSE_OK); return add_dialog; } @@ -316,7 +313,7 @@ gtk_range_set_inverted (GTK_RANGE (add_dialog->compression_scale), TRUE); else if (archive->type == XARCHIVETYPE_7ZIP) g_signal_connect (G_OBJECT (add_dialog->compression_value),"value-changed",G_CALLBACK (fix_adjustment_value), NULL); - gtk_tooltips_set_tip (add_dialog->option_tooltip,add_dialog->compression_scale, compression_msg, NULL ); + gtk_widget_set_tooltip_text (add_dialog->compression_scale, compression_msg); if (archive->type == XARCHIVETYPE_TAR || archive->type == XARCHIVETYPE_TAR_GZ || archive->type == XARCHIVETYPE_TAR_LZMA || archive->type == XARCHIVETYPE_TAR_XZ || archive->type == XARCHIVETYPE_TAR_BZ2 || archive->type == XARCHIVETYPE_TAR_LZOP) flag = FALSE; @@ -419,13 +416,13 @@ if (add_dialog->remove_files != NULL) archive->remove_files = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (add_dialog->remove_files)); - if (GTK_WIDGET_IS_SENSITIVE(add_dialog->freshen)) + if (gtk_widget_is_sensitive(GTK_WIDGET(add_dialog->freshen))) archive->freshen = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (add_dialog->freshen)); - if (GTK_WIDGET_IS_SENSITIVE(add_dialog->solid_archive)) + if (gtk_widget_is_sensitive(GTK_WIDGET(add_dialog->solid_archive))) archive->solid_archive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (add_dialog->solid_archive)); - if (GTK_WIDGET_IS_SENSITIVE(add_dialog->compression_scale)) + if (gtk_widget_is_sensitive(GTK_WIDGET(add_dialog->compression_scale))) { archive->compression_level = gtk_adjustment_get_value(GTK_ADJUSTMENT (add_dialog->compression_value)); compression_string = g_strdup_printf("%d",archive->compression_level); diff -Naur xarchiver-0.5.4.orig/src/add_dialog.h xarchiver-0.5.4/src/add_dialog.h --- xarchiver-0.5.4.orig/src/add_dialog.h 2008-11-10 07:35:55.000000000 -0300 +++ xarchiver-0.5.4/src/add_dialog.h 2015-09-12 07:08:56.414357079 -0300 @@ -46,10 +46,8 @@ GtkWidget *add_label; GtkWidget *cancel_button; GtkWidget *add_button; - GtkTooltips *add_option_tooltip; GtkWidget *add_option_label; - GtkTooltips *option_tooltip; - GtkObject *compression_value; + GtkAdjustment *compression_value; } Add_dialog_data; Add_dialog_data *xa_create_add_dialog(); diff -Naur xarchiver-0.5.4.orig/src/archive.c xarchiver-0.5.4/src/archive.c --- xarchiver-0.5.4.orig/src/archive.c 2014-02-09 12:26:24.000000000 -0300 +++ xarchiver-0.5.4/src/archive.c 2015-09-12 07:08:56.414357079 -0300 @@ -361,7 +361,7 @@ if (archive->tmp != NULL) return TRUE; - value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_window->combo_prefered_temp_dir)); + value = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_window->combo_prefered_temp_dir)); tmp_dir = g_strconcat(value,"/xa-XXXXXX",NULL); if (mkdtemp (tmp_dir) == 0) diff -Naur xarchiver-0.5.4.orig/src/extract_dialog.c xarchiver-0.5.4/src/extract_dialog.c --- xarchiver-0.5.4.orig/src/extract_dialog.c 2014-09-28 17:11:16.000000000 -0300 +++ xarchiver-0.5.4/src/extract_dialog.c 2015-09-12 07:08:56.415357057 -0300 @@ -19,7 +19,6 @@ #include #include #include "extract_dialog.h" -#include "sexy-icon-entry.h" #include "window.h" #include "string_utils.h" #include "support.h" @@ -30,7 +29,7 @@ extern extract_func extract [XARCHIVETYPE_COUNT]; static gchar *xa_multi_extract_archive(Multi_extract_data *,gchar *,gboolean,gboolean,gchar *); -static void xa_select_where_to_extract(SexyIconEntry *,SexyIconEntryPosition ,int ,Multi_extract_data *); +static void xa_select_where_to_extract(GtkEntry *entry,gint icon_pos,GdkEventButton *event,Multi_extract_data *dialog_data); static void xa_remove_files_liststore (GtkWidget *,Multi_extract_data *); static void xa_multi_extract_dialog_select_files_to_add (GtkButton*,Multi_extract_data *); static void xa_multi_extract_dialog_selection_changed(GtkTreeSelection *selection,Multi_extract_data *); @@ -51,11 +50,9 @@ gtk_window_set_position (GTK_WINDOW (dialog_data->dialog1),GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_type_hint (GTK_WINDOW (dialog_data->dialog1),GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_dialog_set_has_separator (GTK_DIALOG(dialog_data->dialog1),FALSE); gtk_window_set_destroy_with_parent(GTK_WINDOW (dialog_data->dialog1),TRUE); - option_tooltip = gtk_tooltips_new (); - dialog_data->dialog_vbox1 = GTK_DIALOG (dialog_data->dialog1)->vbox; + dialog_data->dialog_vbox1 = gtk_dialog_get_content_area(GTK_DIALOG (dialog_data->dialog1)); vbox1 = gtk_vbox_new (FALSE,2); gtk_box_pack_start (GTK_BOX (dialog_data->dialog_vbox1),vbox1,TRUE,TRUE,0); @@ -65,9 +62,9 @@ gtk_box_pack_start (GTK_BOX (vbox1),label1,FALSE,FALSE,0); gtk_misc_set_alignment (GTK_MISC (label1),0,0.5); - dialog_data->destination_path_entry = sexy_icon_entry_new(); - sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(dialog_data->destination_path_entry),dialog_data,xa_select_where_to_extract); - sexy_icon_entry_set_icon_highlight( SEXY_ICON_ENTRY(dialog_data->destination_path_entry),SEXY_ICON_ENTRY_PRIMARY,TRUE ); + dialog_data->destination_path_entry = gtk_entry_new(); + gtk_entry_set_icon_from_stock( GTK_ENTRY(dialog_data->destination_path_entry),GTK_ENTRY_ICON_SECONDARY,GTK_STOCK_OPEN); + g_signal_connect (dialog_data->destination_path_entry, "icon-press",G_CALLBACK (xa_select_where_to_extract),dialog_data); gtk_box_pack_start (GTK_BOX (vbox1),dialog_data->destination_path_entry,FALSE,FALSE,0); hbox1 = gtk_hbox_new (TRUE,10); @@ -129,20 +126,20 @@ gtk_box_pack_start (GTK_BOX (vbox5),dialog_data->overwrite_check,FALSE,FALSE,0); dialog_data->extract_full = gtk_check_button_new_with_mnemonic (_("Extract files with full path")); - gtk_tooltips_set_tip(option_tooltip,dialog_data->extract_full,_("The archive's directory structure is recreated in the extraction directory"),NULL ); + gtk_widget_set_tooltip_text (dialog_data->extract_full,_("The archive's directory structure is recreated in the extraction directory")); gtk_box_pack_start (GTK_BOX (vbox5),dialog_data->extract_full,FALSE,FALSE,0); dialog_data->touch = gtk_check_button_new_with_mnemonic (_("Touch files")); - gtk_tooltips_set_tip (option_tooltip,dialog_data->touch,_("When this option is used,tar leaves the data modification times of the files it extracts as the times when the files were extracted,instead of setting it to the times recorded in the archive"),NULL ); + gtk_widget_set_tooltip_text (dialog_data->touch,_("When this option is used,tar leaves the data modification times of the files it extracts as the times when the files were extracted,instead of setting it to the times recorded in the archive")); gtk_box_pack_start (GTK_BOX (vbox5),dialog_data->touch,FALSE,FALSE,0); dialog_data->fresh = gtk_check_button_new_with_mnemonic (_("Freshen existing files")); - gtk_tooltips_set_tip (option_tooltip,dialog_data->fresh,_("Extract only those files that already exist on disk and that are newer than the disk copies"),NULL ); + gtk_widget_set_tooltip_text (dialog_data->fresh,_("Extract only those files that already exist on disk and that are newer than the disk copies")); gtk_box_pack_start (GTK_BOX (vbox5),dialog_data->fresh,FALSE,FALSE,0); g_signal_connect (G_OBJECT (dialog_data->fresh),"toggled",G_CALLBACK (fresh_update_toggled_cb),dialog_data); dialog_data->update = gtk_check_button_new_with_mnemonic (_("Update existing files")); - gtk_tooltips_set_tip (option_tooltip,dialog_data->update,_("This option performs the same function as the freshen one,extracting files that are newer than those with the same name on disk,and in addition it extracts those files that do not already exist on disk"),NULL ); + gtk_widget_set_tooltip_text (dialog_data->update,_("This option performs the same function as the freshen one,extracting files that are newer than those with the same name on disk,and in addition it extracts those files that do not already exist on disk")); gtk_box_pack_start (GTK_BOX (vbox5),dialog_data->update,FALSE,FALSE,0); g_signal_connect (G_OBJECT (dialog_data->update),"toggled",G_CALLBACK (update_fresh_toggled_cb),dialog_data); @@ -159,12 +156,12 @@ gtk_box_pack_start (GTK_BOX (hbox3),dialog_data->password_entry,TRUE,TRUE,0); gtk_entry_set_visibility (GTK_ENTRY (dialog_data->password_entry),FALSE); - dialog_action_area1 = GTK_DIALOG (dialog_data->dialog1)->action_area; + dialog_action_area1 = gtk_dialog_get_action_area(GTK_DIALOG (dialog_data->dialog1)); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1),GTK_BUTTONBOX_END); cancel_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_data->dialog1),cancel_button,GTK_RESPONSE_CANCEL); - GTK_WIDGET_SET_FLAGS (cancel_button,GTK_CAN_DEFAULT); + gtk_widget_set_can_default (cancel_button,TRUE); extract_button = gtk_button_new(); extract_image = xa_main_window_find_image("xarchiver-extract.png",GTK_ICON_SIZE_SMALL_TOOLBAR); @@ -178,7 +175,7 @@ gtk_container_add(GTK_CONTAINER(extract_button),alignment3); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_data->dialog1),extract_button,GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (extract_button,GTK_CAN_DEFAULT); + gtk_widget_set_can_default (extract_button,TRUE); gtk_dialog_set_default_response (GTK_DIALOG (dialog_data->dialog1),GTK_RESPONSE_OK); return dialog_data; } @@ -387,11 +384,9 @@ GtkTreeSelection *selection; GtkTreeViewColumn *column; GSList *radiobutton1_group = NULL; - GtkTooltips *multi_tooltip; char *column_names[]= {(_("Archive Name")),(_("Size")),(_("Path")),NULL}; int x; - multi_tooltip = gtk_tooltips_new (); dialog_data = g_new0 (Multi_extract_data,1); dialog_data->multi_extract = gtk_dialog_new(); @@ -399,10 +394,9 @@ gtk_window_set_type_hint (GTK_WINDOW (dialog_data->multi_extract),GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog_data->multi_extract),TRUE); gtk_widget_set_size_request(dialog_data->multi_extract,-1,300); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog_data->multi_extract),FALSE); gtk_window_set_title (GTK_WINDOW (dialog_data->multi_extract),_("Multi-Extract")); - dialog_vbox1 = GTK_DIALOG (dialog_data->multi_extract)->vbox; + dialog_vbox1 = gtk_dialog_get_content_area(GTK_DIALOG (dialog_data->multi_extract)); vbox1 = gtk_vbox_new (FALSE,5); gtk_box_pack_start (GTK_BOX (dialog_vbox1),vbox1,TRUE,TRUE,0); scrolledwindow1 = gtk_scrolled_window_new (NULL,NULL); @@ -466,13 +460,13 @@ gtk_radio_button_set_group (GTK_RADIO_BUTTON (dialog_data->extract_to),radiobutton1_group); radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (dialog_data->extract_to)); - dialog_data->entry1 = sexy_icon_entry_new(); - sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(dialog_data->entry1),dialog_data,xa_select_where_to_extract); - sexy_icon_entry_set_icon_highlight( SEXY_ICON_ENTRY(dialog_data->entry1),SEXY_ICON_ENTRY_PRIMARY,TRUE ); + dialog_data->entry1 = gtk_entry_new(); + gtk_entry_set_icon_from_stock( GTK_ENTRY(dialog_data->entry1),GTK_ENTRY_ICON_SECONDARY,GTK_STOCK_OPEN); + g_signal_connect (dialog_data->entry1, "icon-press",G_CALLBACK (xa_select_where_to_extract),dialog_data); gtk_box_pack_start (GTK_BOX (hbox3),dialog_data->entry1,TRUE,TRUE,0); dialog_data->extract_to_archive_name = gtk_radio_button_new_with_mnemonic (NULL,_("Extract to dir \"Archive Name\"")); - gtk_tooltips_set_tip (multi_tooltip,dialog_data->extract_to_archive_name,_("This option extracts archives in directories named with the archive names"),NULL); + gtk_widget_set_tooltip_text (dialog_data->extract_to_archive_name,_("This option extracts archives in directories named with the archive names")); gtk_box_pack_start (GTK_BOX (vbox2),dialog_data->extract_to_archive_name,FALSE,FALSE,0); gtk_radio_button_set_group (GTK_RADIO_BUTTON (dialog_data->extract_to_archive_name),radiobutton1_group); radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (dialog_data->extract_to_archive_name)); @@ -496,11 +490,11 @@ label2 = gtk_label_new (_("Options:")); gtk_frame_set_label_widget(GTK_FRAME(frame2),label2); - dialog_action_area1 = GTK_DIALOG (dialog_data->multi_extract)->action_area; + dialog_action_area1 = gtk_dialog_get_action_area(GTK_DIALOG (dialog_data->multi_extract)); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1),GTK_BUTTONBOX_END); cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_data->multi_extract),cancelbutton1,GTK_RESPONSE_CANCEL); - GTK_WIDGET_SET_FLAGS (cancelbutton1,GTK_CAN_DEFAULT); + gtk_widget_set_can_default(cancelbutton1,TRUE); extract_button = gtk_button_new(); extract_image = xa_main_window_find_image("xarchiver-extract.png",GTK_ICON_SIZE_SMALL_TOOLBAR); @@ -514,7 +508,7 @@ gtk_container_add(GTK_CONTAINER(extract_button),alignment3); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_data->multi_extract),extract_button,GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (extract_button,GTK_CAN_DEFAULT); + gtk_widget_set_can_default (extract_button,TRUE); gtk_dialog_set_default_response (GTK_DIALOG (dialog_data->multi_extract),GTK_RESPONSE_OK); return dialog_data; } @@ -662,7 +656,7 @@ g_strfreev (array); } -void xa_select_where_to_extract(SexyIconEntry *entry, SexyIconEntryPosition icon_pos,int button,Multi_extract_data *dialog_data) +void xa_select_where_to_extract(GtkEntry *entry,gint icon_pos,GdkEventButton *event,Multi_extract_data *dialog_data) { GtkWidget *file_selector; gchar *dest_dir; diff -Naur xarchiver-0.5.4.orig/src/extract_dialog.h xarchiver-0.5.4/src/extract_dialog.h --- xarchiver-0.5.4.orig/src/extract_dialog.h 2008-10-08 07:14:57.000000000 -0300 +++ xarchiver-0.5.4/src/extract_dialog.h 2015-09-12 07:08:56.415357057 -0300 @@ -44,7 +44,6 @@ GtkWidget *hbox1,*hbox2,*hbox3,*vbox1,*vbox2,*vbox3,*vbox5; GtkWidget *frame1,*frame2,*alignment1,*alignment2,*alignment3; GtkWidget *dialog_action_area1,*cancel_button,*okbutton1,*extract_button,*extract_image,*extract_hbox,*extract_label; -GtkTooltips *option_tooltip; Extract_dialog_data *xa_create_extract_dialog(); void xa_activate_entry(GtkToggleButton *,gpointer ); diff -Naur xarchiver-0.5.4.orig/src/interface.c xarchiver-0.5.4/src/interface.c --- xarchiver-0.5.4.orig/src/interface.c 2014-09-28 17:11:04.000000000 -0300 +++ xarchiver-0.5.4/src/interface.c 2015-09-12 07:08:56.417357013 -0300 @@ -55,7 +55,6 @@ GdkPixbuf *icon; xa_create_popup_menu(); - tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); xa_set_window_title (xa_main_window,NULL); @@ -128,7 +127,7 @@ gtk_widget_show (check_menu); gtk_widget_set_sensitive (check_menu,FALSE); gtk_container_add (GTK_CONTAINER (menuitem1_menu),check_menu); - gtk_widget_add_accelerator (check_menu,"activate",accel_group,GDK_t,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (check_menu,"activate",accel_group,GDK_KEY_t,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); tmp_image = gtk_image_new_from_stock ("gtk-index",GTK_ICON_SIZE_MENU); gtk_widget_show (tmp_image); @@ -138,7 +137,7 @@ gtk_widget_show (properties); gtk_widget_set_sensitive ( properties,FALSE); gtk_container_add (GTK_CONTAINER (menuitem1_menu),properties); - gtk_widget_add_accelerator (properties,"activate",accel_group,GDK_p,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (properties,"activate",accel_group,GDK_KEY_p,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); tmp_image = gtk_image_new_from_stock ("gtk-properties",GTK_ICON_SIZE_MENU); gtk_widget_show (tmp_image); @@ -169,7 +168,7 @@ gtk_widget_set_sensitive (addfile,FALSE); gtk_widget_show (addfile); gtk_container_add (GTK_CONTAINER (menuitem2_menu),addfile); - gtk_widget_add_accelerator (addfile,"activate",accel_group,GDK_d,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (addfile,"activate",accel_group,GDK_KEY_d,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); image2 = xa_main_window_find_image ("xarchiver-add.png",GTK_ICON_SIZE_MENU); gtk_widget_show (image2); @@ -179,7 +178,7 @@ gtk_widget_set_sensitive (extract_menu,FALSE); gtk_widget_show (extract_menu); gtk_container_add (GTK_CONTAINER (menuitem2_menu),extract_menu); - gtk_widget_add_accelerator (extract_menu,"activate",accel_group,GDK_e,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (extract_menu,"activate",accel_group,GDK_KEY_e,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); image2 = xa_main_window_find_image ("xarchiver-extract.png",GTK_ICON_SIZE_MENU); gtk_widget_show (image2); @@ -189,7 +188,7 @@ gtk_widget_set_sensitive (delete_menu,FALSE); gtk_widget_show (delete_menu); gtk_container_add (GTK_CONTAINER (menuitem2_menu),delete_menu); - gtk_widget_add_accelerator (delete_menu,"activate",accel_group,GDK_Delete,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (delete_menu,"activate",accel_group,GDK_KEY_Delete,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); rename_menu = gtk_image_menu_item_new_with_mnemonic (_("Rename")); gtk_widget_set_sensitive (rename_menu,FALSE); @@ -209,7 +208,7 @@ gtk_widget_set_sensitive (exe_menu,FALSE); gtk_widget_show (exe_menu); gtk_container_add (GTK_CONTAINER (menuitem2_menu),exe_menu); - gtk_widget_add_accelerator (exe_menu,"activate",accel_group,GDK_x,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (exe_menu,"activate",accel_group,GDK_KEY_x,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); image2 = gtk_image_new_from_stock ("gtk-execute",GTK_ICON_SIZE_MENU); gtk_widget_show (image2); @@ -218,13 +217,13 @@ multi_extract_menu = gtk_menu_item_new_with_mnemonic (_("_Multi-Extract")); gtk_widget_show (multi_extract_menu); gtk_container_add (GTK_CONTAINER (menuitem2_menu),multi_extract_menu); - gtk_widget_add_accelerator (multi_extract_menu,"activate",accel_group,GDK_m,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (multi_extract_menu,"activate",accel_group,GDK_KEY_m,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); comment_menu = gtk_image_menu_item_new_with_mnemonic (_("Archive comment")); gtk_widget_set_sensitive (comment_menu,FALSE); gtk_widget_show (comment_menu); gtk_container_add (GTK_CONTAINER (menuitem2_menu),comment_menu); - gtk_widget_add_accelerator (comment_menu,"activate",accel_group,GDK_s,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (comment_menu,"activate",accel_group,GDK_KEY_s,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); tmp_image = gtk_image_new_from_stock ("gtk-justify-fill",GTK_ICON_SIZE_MENU); gtk_widget_show (tmp_image); @@ -238,7 +237,7 @@ gtk_widget_show (select_all); gtk_container_add (GTK_CONTAINER (menuitem2_menu),select_all); gtk_widget_set_sensitive (select_all,FALSE); - gtk_widget_add_accelerator (select_all,"activate",accel_group,GDK_a,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (select_all,"activate",accel_group,GDK_KEY_a,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); tmp_image = gtk_image_new_from_stock ("gtk-select-all",GTK_ICON_SIZE_MENU); gtk_widget_show (tmp_image); @@ -248,13 +247,13 @@ gtk_widget_show (deselect_all); gtk_container_add (GTK_CONTAINER (menuitem2_menu),deselect_all); gtk_widget_set_sensitive (deselect_all,FALSE); - gtk_widget_add_accelerator (deselect_all,"activate",accel_group,GDK_l,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (deselect_all,"activate",accel_group,GDK_KEY_l,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); select_pattern = gtk_menu_item_new_with_mnemonic (_("Select _by pattern")); gtk_widget_show (select_pattern); gtk_container_add (GTK_CONTAINER (menuitem2_menu),select_pattern); gtk_widget_set_sensitive (select_pattern,FALSE); - gtk_widget_add_accelerator (select_pattern,"activate",accel_group,GDK_b,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (select_pattern,"activate",accel_group,GDK_KEY_b,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); separatormenuitem5 = gtk_separator_menu_item_new (); gtk_widget_show (separatormenuitem5); @@ -263,7 +262,7 @@ view_shell_output1 = gtk_image_menu_item_new_with_mnemonic (_("Cmd-line outp_ut")); gtk_container_add (GTK_CONTAINER (menuitem2_menu),view_shell_output1); - gtk_widget_add_accelerator (view_shell_output1,"activate",accel_group,GDK_u,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (view_shell_output1,"activate",accel_group,GDK_KEY_u,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); if (show_output_menu_item) gtk_widget_set_sensitive(view_shell_output1,TRUE); else @@ -278,7 +277,7 @@ gtk_widget_show (password_entry_menu); gtk_widget_set_sensitive (password_entry_menu,FALSE); gtk_container_add (GTK_CONTAINER (menuitem2_menu),password_entry_menu); - gtk_widget_add_accelerator (password_entry_menu,"activate",accel_group,GDK_r,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (password_entry_menu,"activate",accel_group,GDK_KEY_r,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); separatormenuitem6 = gtk_separator_menu_item_new (); gtk_widget_show (separatormenuitem6); @@ -288,7 +287,7 @@ prefs_menu = gtk_image_menu_item_new_with_mnemonic (_("_Preferences")); gtk_widget_show (prefs_menu); gtk_container_add (GTK_CONTAINER (menuitem2_menu),prefs_menu); - gtk_widget_add_accelerator (prefs_menu,"activate",accel_group,GDK_f,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (prefs_menu,"activate",accel_group,GDK_KEY_f,GDK_CONTROL_MASK,GTK_ACCEL_VISIBLE); tmp_image = gtk_image_new_from_stock ("gtk-preferences",GTK_ICON_SIZE_MENU); gtk_widget_show (tmp_image); @@ -304,7 +303,7 @@ help1 = gtk_image_menu_item_new_with_mnemonic ("_Contents"); gtk_widget_show (help1); gtk_container_add (GTK_CONTAINER (menuitem4_menu),help1); - gtk_widget_add_accelerator (help1,"activate",accel_group,GDK_F1,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (help1,"activate",accel_group,GDK_KEY_F1,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); tmp_image = gtk_image_new_from_stock ("gtk-help",GTK_ICON_SIZE_MENU); gtk_widget_show (tmp_image); @@ -327,7 +326,7 @@ gtk_widget_show (New_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (New_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),New_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (New_button),tooltips,_("Create a new archive"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (New_button),_("Create a new archive")); tmp_image = gtk_image_new_from_stock ("gtk-open",tmp_toolbar_icon_size); gtk_widget_show (tmp_image); @@ -335,7 +334,7 @@ gtk_widget_show (Open_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (Open_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),Open_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (Open_button),tooltips,_("Open an archive"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (Open_button),_("Open an archive")); separatortoolitem1 = (GtkWidget*) gtk_separator_tool_item_new (); gtk_widget_show (separatortoolitem1); @@ -348,7 +347,7 @@ gtk_widget_show (back_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (back_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),back_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (back_button),tooltips,_("Back"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (back_button),_("Back")); tmp_image = gtk_image_new_from_stock ("gtk-go-up",tmp_toolbar_icon_size); gtk_widget_show (tmp_image); @@ -357,7 +356,7 @@ gtk_widget_show (up_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (up_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),up_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (up_button),tooltips,_("Up"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (up_button),_("Up")); tmp_image = gtk_image_new_from_stock ("gtk-go-forward",tmp_toolbar_icon_size); gtk_widget_show (tmp_image); @@ -366,7 +365,7 @@ gtk_widget_show (forward_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (forward_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),forward_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (forward_button),tooltips,_("Forward"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (forward_button),_("Forward")); tmp_image = gtk_image_new_from_stock ("gtk-home",tmp_toolbar_icon_size); gtk_widget_show (tmp_image); @@ -375,7 +374,7 @@ gtk_widget_show (home_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (home_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),home_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (home_button),tooltips,_("Root"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (home_button),_("Root")); separatortoolitem3 = (GtkWidget*) gtk_separator_tool_item_new (); gtk_widget_show (separatortoolitem3); @@ -388,7 +387,7 @@ gtk_widget_show (AddFile_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (AddFile_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),AddFile_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (AddFile_button),tooltips,_("Add files"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (AddFile_button),_("Add files")); tmp_image = xa_main_window_find_image("xarchiver-extract.png",GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_show (tmp_image); @@ -397,7 +396,7 @@ gtk_widget_show (Extract_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (Extract_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),Extract_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (Extract_button),tooltips,_("Extract files"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (Extract_button),_("Extract files")); separatortoolitem2 = (GtkWidget*) gtk_separator_tool_item_new (); gtk_widget_show (separatortoolitem2); @@ -410,7 +409,7 @@ gtk_widget_show (Stop_button); gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM ( Stop_button),FALSE); gtk_container_add (GTK_CONTAINER (toolbar1),Stop_button); - gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (Stop_button),tooltips,_("Cancel current operation"),NULL); + gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (Stop_button),_("Cancel current operation")); /* Location entry */ toolbar2 = gtk_toolbar_new (); @@ -510,7 +509,7 @@ gtk_widget_show (green_led); gtk_box_pack_start (GTK_BOX (hbox_sb),green_led,FALSE,FALSE,0); gtk_misc_set_alignment (GTK_MISC (green_led),1,1); - gtk_tooltips_set_tip (tooltips,green_led,_("This is Xarchiver led status. When it's flashing Xarchiver is busy"),NULL); + gtk_widget_set_tooltip_text (green_led,_("This is Xarchiver led status. When it's flashing Xarchiver is busy")); red_led = gtk_image_new_from_icon_name ("gtk-no",GTK_ICON_SIZE_BUTTON); gtk_box_pack_start (GTK_BOX (hbox_sb),red_led,FALSE,FALSE,0); @@ -564,7 +563,7 @@ archive->pb_source = 0; return FALSE; } - if (GTK_WIDGET_VISIBLE(green_led)) + if (gtk_widget_get_visible(GTK_WIDGET(green_led))) { gtk_widget_hide(green_led); gtk_widget_show(red_led); @@ -577,7 +576,7 @@ return TRUE; } -void xa_page_has_changed (GtkNotebook *notebook,GtkNotebookPage *page,guint page_num,gpointer user_data) +void xa_page_has_changed (GtkNotebook *notebook,GtkWidget *page,guint page_num,gpointer user_data) { gint id,selected = 0; GtkTreeSelection *selection = NULL; @@ -648,7 +647,6 @@ void xa_add_page (XArchive *archive) { GtkWidget *page_hbox,*label,*tab_label,*close_button,*image,*align; - GtkTooltips *close_button_tips = gtk_tooltips_new(); gchar *filename_only; GtkRcStyle *rcstyle; GtkRequisition size; @@ -684,13 +682,13 @@ close_button = gtk_button_new(); gtk_button_set_focus_on_click(GTK_BUTTON(close_button),FALSE); gtk_button_set_relief (GTK_BUTTON(close_button),GTK_RELIEF_NONE); - gtk_tooltips_set_tip (close_button_tips,close_button,_("Close archive"),NULL); + gtk_widget_set_tooltip_text (close_button,_("Close archive")); g_signal_connect (G_OBJECT(close_button),"clicked",G_CALLBACK(xa_close_page),(gpointer) archive->scrollwindow); rcstyle = gtk_rc_style_new(); rcstyle->xthickness = rcstyle->ythickness = 0; gtk_widget_modify_style(close_button,rcstyle); - gtk_rc_style_unref(rcstyle); + g_object_unref(rcstyle); image = gtk_image_new_from_stock (GTK_STOCK_CLOSE,GTK_ICON_SIZE_MENU); gtk_widget_size_request(image,&size); @@ -745,9 +743,8 @@ gtk_window_set_position (GTK_WINDOW (password_dialog),GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_resizable (GTK_WINDOW (password_dialog),FALSE); gtk_window_set_type_hint (GTK_WINDOW (password_dialog),GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_dialog_set_has_separator (GTK_DIALOG (password_dialog),FALSE); - dialog_vbox1 = GTK_DIALOG (password_dialog)->vbox; + dialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (password_dialog)); gtk_widget_show (dialog_vbox1); vbox1 = gtk_vbox_new (FALSE,12); @@ -945,14 +942,13 @@ current_page = gtk_notebook_get_current_page (notebook); id = xa_find_archive_index (current_page); - GtkTooltips *tooltip = gtk_tooltips_new(); ddialog1 = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (ddialog1),_("Select by Pattern")); gtk_window_set_modal (GTK_WINDOW (ddialog1),TRUE); gtk_window_set_type_hint (GTK_WINDOW (ddialog1),GDK_WINDOW_TYPE_HINT_DIALOG); gtk_widget_set_size_request(ddialog1,286,93); gtk_window_set_transient_for (GTK_WINDOW (ddialog1),GTK_WINDOW (xa_main_window)); - ddialog_vbox1 = GTK_DIALOG (ddialog1)->vbox; + ddialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (ddialog1)); gtk_widget_show (ddialog_vbox1); dhbox1 = gtk_hbox_new (FALSE,10); @@ -965,19 +961,19 @@ gtk_box_pack_start (GTK_BOX (dhbox1),pattern_label,FALSE,FALSE,0); pattern_entry = gtk_entry_new (); - gtk_tooltips_set_tip (tooltip,pattern_entry,_("example: *.txt; ac*"),NULL); + gtk_widget_set_tooltip_text (pattern_entry,_("example: *.txt; ac*")); gtk_widget_show (pattern_entry); gtk_box_pack_start (GTK_BOX (dhbox1),pattern_entry,TRUE,TRUE,0); gtk_entry_set_activates_default(GTK_ENTRY(pattern_entry),TRUE); - dialog_action_area1 = GTK_DIALOG (ddialog1)->action_area; + dialog_action_area1 = gtk_dialog_get_action_area(GTK_DIALOG (ddialog1)); gtk_widget_show (dialog_action_area1); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1),GTK_BUTTONBOX_END); cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (ddialog1),cancelbutton1,GTK_RESPONSE_CANCEL); - GTK_WIDGET_SET_FLAGS (cancelbutton1,GTK_CAN_DEFAULT); + gtk_widget_set_can_default (cancelbutton1,TRUE); okbutton1 = gtk_button_new(); tmp_image = gtk_image_new_from_stock ("gtk-ok",GTK_ICON_SIZE_BUTTON); @@ -992,7 +988,7 @@ gtk_container_add(GTK_CONTAINER(okbutton1),alignment2); gtk_widget_show_all (okbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (ddialog1),okbutton1,GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (okbutton1,GTK_CAN_DEFAULT); + gtk_widget_set_can_default (okbutton1,TRUE); gtk_dialog_set_default_response (GTK_DIALOG (ddialog1),GTK_RESPONSE_OK); while (! done) @@ -1066,10 +1062,9 @@ gtk_window_set_type_hint (GTK_WINDOW (archive_properties_window),GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_resizable (GTK_WINDOW (archive_properties_window),FALSE); gtk_window_set_modal (GTK_WINDOW (archive_properties_window),TRUE); - gtk_dialog_set_has_separator(GTK_DIALOG(archive_properties_window),FALSE); table1 = gtk_table_new (10,2,FALSE); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG(archive_properties_window)->vbox),table1,TRUE,TRUE,0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (archive_properties_window))),table1,TRUE,TRUE,0); gtk_container_set_border_width (GTK_CONTAINER (table1),6); gtk_table_set_row_spacings (GTK_TABLE (table1),6); gtk_table_set_col_spacings (GTK_TABLE (table1),12); @@ -1485,7 +1480,7 @@ } /* This to set the focus on the dropped row */ gtk_tree_view_set_drag_dest_row(GTK_TREE_VIEW(widget),path,GTK_TREE_VIEW_DROP_INTO_OR_BEFORE); - gdk_drag_status (context,context->suggested_action,time); + gdk_drag_status (context,gdk_drag_context_get_suggested_action(context),time); return TRUE; } @@ -1516,7 +1511,7 @@ hbox1 = gtk_hbox_new (FALSE,12); gtk_box_pack_start (GTK_BOX (vbox1),hbox1,TRUE,TRUE,0); - pixbuf = gtk_icon_theme_load_icon(icon_theme,"gnome-mime-application-zip",40,0,NULL); + pixbuf = gtk_icon_theme_load_icon(icon_theme,"package-x-generic",40,0,NULL); icon_pixbuf = gtk_image_new_from_pixbuf(pixbuf); g_object_unref(pixbuf); @@ -1629,7 +1624,7 @@ gboolean xa_pulse_progress_bar_window (Progress_bar_data *pb) { - if (GTK_WIDGET_VISIBLE(pb->progress_window)) + if (gtk_widget_get_visible(GTK_WIDGET(pb->progress_window))) { gtk_progress_bar_pulse(GTK_PROGRESS_BAR(pb->progressbar1)); return TRUE; diff -Naur xarchiver-0.5.4.orig/src/interface.h xarchiver-0.5.4/src/interface.h --- xarchiver-0.5.4.orig/src/interface.h 2014-02-09 12:26:24.000000000 -0300 +++ xarchiver-0.5.4/src/interface.h 2015-09-12 07:08:56.417357013 -0300 @@ -39,7 +39,6 @@ GtkTreeViewColumn *column; GtkCellRenderer *archive_dir_renderer; GtkAccelGroup *accel_group; -GtkTooltips *tooltips; GtkIconTheme *icon_theme; GtkWidget *xa_popup_menu, *xa_main_window, *vbox1, *hbox_sb, *menubar1, *menuitem1, *menuitem1_menu, *new1, *open1, *listing, *listing_submenu, @@ -65,7 +64,7 @@ void xa_select_by_pattern_dialog(GtkMenuItem *, gpointer ); void xa_handle_navigation_buttons (GtkMenuItem *, gpointer ); void xa_add_page (XArchive *); -void xa_page_has_changed (GtkNotebook *, GtkNotebookPage *, guint ,gpointer ); +void xa_page_has_changed (GtkNotebook *, GtkWidget *, guint ,gpointer ); void xa_close_page ( GtkWidget*, gpointer ); void xa_set_button_state (gboolean,gboolean,gboolean,gboolean,gboolean,gboolean, gboolean, gboolean,gboolean,gboolean,gboolean); void xa_restore_navigation(int idx); diff -Naur xarchiver-0.5.4.orig/src/Makefile.am xarchiver-0.5.4/src/Makefile.am --- xarchiver-0.5.4.orig/src/Makefile.am 2008-09-23 03:39:50.000000000 -0300 +++ xarchiver-0.5.4/src/Makefile.am 2015-09-12 07:08:56.417357013 -0300 @@ -4,7 +4,6 @@ xarchiver_SOURCES = \ socket.c socket.h \ - sexy-icon-entry.c sexy-icon-entry.h \ main.c main.h \ string_utils.c string_utils.h \ mime.c mime.h \ diff -Naur xarchiver-0.5.4.orig/src/mime.c xarchiver-0.5.4/src/mime.c --- xarchiver-0.5.4.orig/src/mime.c 2008-11-05 06:53:22.000000000 -0300 +++ xarchiver-0.5.4/src/mime.c 2015-09-12 07:08:56.408357212 -0300 @@ -24,44 +24,44 @@ const char *xa_get_stock_mime_icon(char *filename) { const char *mime; - const char *icon_name = "binary"; + const char *icon_name = "application-x-executable"; mime = xdg_mime_get_mime_type_from_file_name(filename); if (strstr(filename,".ogg") || strstr(filename,".flac") ) - icon_name = "sound"; + icon_name = "audio-x-generic"; else if (strncmp(mime,"image/",6) == 0) - icon_name = "image"; + icon_name = "image-x-generic"; else if (strcmp(mime,"text/html") == 0) - icon_name = "html"; + icon_name = "text-html"; else if (strncmp(mime,"text/",5) == 0) - icon_name = "txt"; + icon_name = "text-x-generic"; else if (strcmp(mime,"application/rtf") == 0 || strcmp(mime,"application/pdf") == 0 || strcmp(mime,"application/msword") == 0 || strcmp (mime,"application/vnd.oasis.opendocument.text") == 0) - icon_name = "document"; + icon_name = "x-office-document"; else if (strcmp(mime,"audio/mpeg") == 0 || strcmp(mime,"audio/midi") == 0 || strcmp (mime,"audio/mp2") == 0) - icon_name = "sound"; + icon_name = "audio-x-generic"; else if (strcmp(mime,"application/vnd.ms-excel") == 0 || strcmp(mime,"application/vnd.oasis.opendocument.spreadsheet") == 0) - icon_name = "gnome-mime-application-vnd.ms-excel"; + icon_name = "x-office-spreadsheet"; else if (strcmp(mime,"application/vnd.ms-powerpoint") == 0 || strcmp (mime,"application/vnd.oasis.opendocument.presentation") == 0) - icon_name = "gnome-mime-application-vnd.ms-powerpoint"; + icon_name = "x-office-presentation"; else if (strcmp(mime,"application/zip") == 0 || strcmp(mime,"application/x-rar") == 0 || strcmp(mime,"application/x-tar") == 0 || strcmp(mime,"application/x-7z-compressed") == 0 || strcmp(mime,"application/x-bzip-compressed-tar") == 0 || strcmp (mime,"application/x-compressed-tar") == 0 || strcmp (mime,"application/x-lha") == 0 || strcmp (mime,"application/x-rpm") == 0 || strcmp (mime,"application/x-deb") == 0 || strcmp (mime,"application/x-bzip") == 0 || strcmp (mime,"application/x-gzip") == 0) - icon_name = "package"; + icon_name = "package-x-generic"; else if (strcmp(mime,"application/x-shockwave-flash") == 0 || strcmp(mime,"video/mpeg") == 0 || strcmp(mime,"video/quicktime") == 0 || strcmp(mime,"video/x-msvideo") == 0 || strcmp (mime,"video/mp4") == 0 || strcmp(mime,"application/x-flash-video") == 0 || strcmp(mime,"video/dv") == 0) - icon_name = "video"; + icon_name = "video-x-generic"; else if (strcmp(mime,"application/x-cd-image") == 0) - icon_name = "application-x-cd-image"; + icon_name = "media-optical"; else if (strcmp(mime,"application/x-php") == 0) - icon_name = "gnome-mime-application-x-php"; + icon_name = "text-html"; else if (strcmp(mime,"application/x-perl") == 0 || strcmp (mime,"application/x-csh") == 0 || strcmp (mime,"application/x-shellscript") == 0) - icon_name = "gnome-mime-application-x-perl"; + icon_name = "text-x-script"; else if (strcmp(mime,"application/x-font-ttf") == 0) - icon_name = "gnome-mime-application-x-font-ttf"; + icon_name = "font-x-generic"; return icon_name; } diff -Naur xarchiver-0.5.4.orig/src/new_dialog.c xarchiver-0.5.4/src/new_dialog.c --- xarchiver-0.5.4.orig/src/new_dialog.c 2014-02-09 12:26:24.000000000 -0300 +++ xarchiver-0.5.4/src/new_dialog.c 2015-09-12 07:08:56.418356991 -0300 @@ -38,7 +38,6 @@ GtkWidget *combo_box = NULL; GtkWidget *add_extension_cb = NULL; GtkFileFilter *xa_new_archive_dialog_filter; - GtkTooltips *filter_tooltip; GList *Suffix,*Name; gchar *my_path = NULL; gchar *my_path_ext = NULL; @@ -93,16 +92,15 @@ hbox = gtk_hbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (hbox),gtk_label_new (_("Archive type:")),FALSE,FALSE,0); - combo_box = gtk_combo_box_new_text (); + combo_box = gtk_combo_box_text_new (); - filter_tooltip = gtk_tooltips_new(); - gtk_tooltips_set_tip (filter_tooltip,combo_box, _("Choose the archive type to create") , NULL); + gtk_widget_set_tooltip_text (combo_box, _("Choose the archive type to create")); Name = g_list_first (ArchiveType); while (Name) { if (!(strncmp(Name->data, "rar", 3) == 0 && unrar)) - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box),Name->data); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box),Name->data); Name = g_list_next (Name); } if (new_combo_box == -1) @@ -138,7 +136,7 @@ if (response == GTK_RESPONSE_ACCEPT) { my_path = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER (xa_file_chooser) ); - ComboArchiveType = gtk_combo_box_get_active_text (GTK_COMBO_BOX (combo_box)); + ComboArchiveType = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (combo_box)); if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (add_extension_cb))) { diff -Naur xarchiver-0.5.4.orig/src/open-with-dlg.c xarchiver-0.5.4/src/open-with-dlg.c --- xarchiver-0.5.4.orig/src/open-with-dlg.c 2014-09-28 17:11:22.000000000 -0300 +++ xarchiver-0.5.4/src/open-with-dlg.c 2015-09-12 07:08:56.418356991 -0300 @@ -58,10 +58,9 @@ gtk_window_set_modal (GTK_WINDOW (data->dialog1), TRUE); gtk_window_set_type_hint (GTK_WINDOW (data->dialog1), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_transient_for(GTK_WINDOW(data->dialog1),GTK_WINDOW(xa_main_window)); - gtk_dialog_set_has_separator (GTK_DIALOG (data->dialog1),FALSE); gtk_container_set_border_width (GTK_CONTAINER (data->dialog1),5); gtk_widget_set_size_request(data->dialog1,380,380); - dialog_vbox1 = GTK_DIALOG (data->dialog1)->vbox; + dialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (data->dialog1)); vbox1 = gtk_vbox_new (FALSE, 5); gtk_box_pack_start (GTK_BOX (dialog_vbox1),vbox1,TRUE,TRUE,0); @@ -130,20 +129,20 @@ gtk_box_pack_start (GTK_BOX (hbox_expander),browse,FALSE,TRUE,0); gtk_container_add(GTK_CONTAINER(custom_command_expander),hbox_expander); - dialog_action_area1 = GTK_DIALOG (data->dialog1)->action_area; + dialog_action_area1 = gtk_dialog_get_action_area(GTK_DIALOG (data->dialog1)); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1),GTK_BUTTONBOX_END); cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (data->dialog1),cancelbutton1,GTK_RESPONSE_CANCEL); - GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT); + gtk_widget_set_can_default (cancelbutton1, TRUE); g_signal_connect_swapped (G_OBJECT (cancelbutton1),"clicked",G_CALLBACK (gtk_widget_destroy),G_OBJECT(data->dialog1)); okbutton1 = gtk_button_new_from_stock ("gtk-open"); gtk_widget_show (okbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (data->dialog1),okbutton1,GTK_RESPONSE_OK); g_signal_connect (G_OBJECT (okbutton1),"clicked",G_CALLBACK (xa_open_with_dialog_execute_command),data); - GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT); + gtk_widget_set_can_default (okbutton1, TRUE); gtk_widget_show_all(data->dialog1); /* Let's parse the desktop files in all the system data dirs */ diff -Naur xarchiver-0.5.4.orig/src/pref_dialog.c xarchiver-0.5.4/src/pref_dialog.c --- xarchiver-0.5.4.orig/src/pref_dialog.c 2014-02-09 12:26:24.000000000 -0300 +++ xarchiver-0.5.4/src/pref_dialog.c 2015-09-12 07:08:56.418356991 -0300 @@ -41,13 +41,11 @@ prefs_data->dialog1 = gtk_dialog_new_with_buttons (_("Preferences"), GTK_WINDOW (xa_main_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OK,GTK_RESPONSE_OK, NULL); - tooltips = gtk_tooltips_new(); icon_theme = gtk_icon_theme_get_default(); gtk_dialog_set_default_response (GTK_DIALOG (prefs_data->dialog1), GTK_RESPONSE_OK); gtk_window_set_position (GTK_WINDOW(prefs_data->dialog1),GTK_WIN_POS_CENTER_ON_PARENT); - gtk_dialog_set_has_separator(GTK_DIALOG(prefs_data->dialog1),FALSE); - vbox1 = GTK_DIALOG (prefs_data->dialog1)->vbox; + vbox1 = gtk_dialog_get_content_area(GTK_DIALOG (prefs_data->dialog1)); hbox1 = gtk_hbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox1),hbox1,TRUE,TRUE,10); @@ -57,7 +55,7 @@ prefs_data->prefs_liststore = gtk_list_store_new (3,GDK_TYPE_PIXBUF,G_TYPE_STRING,G_TYPE_UINT); gtk_list_store_append (prefs_data->prefs_liststore,&iter); - icon_pixbuf = gtk_icon_theme_load_icon(icon_theme,"gnome-mime-application-zip",40,0,NULL); + icon_pixbuf = gtk_icon_theme_load_icon(icon_theme,"package-x-generic",40,0,NULL); gtk_list_store_set (prefs_data->prefs_liststore, &iter, 0, icon_pixbuf, 1, _("Archive"),2,0,-1); if(icon_pixbuf != NULL) g_object_unref (icon_pixbuf); @@ -75,7 +73,7 @@ prefs_iconview = gtk_icon_view_new_with_model(GTK_TREE_MODEL(prefs_data->prefs_liststore)); g_object_unref (prefs_data->prefs_liststore); - gtk_icon_view_set_orientation (GTK_ICON_VIEW (prefs_iconview), GTK_ORIENTATION_VERTICAL); + gtk_icon_view_set_item_orientation (GTK_ICON_VIEW (prefs_iconview), GTK_ORIENTATION_VERTICAL); gtk_icon_view_set_columns (GTK_ICON_VIEW (prefs_iconview),1); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (prefs_iconview), 0); gtk_icon_view_set_text_column(GTK_ICON_VIEW (prefs_iconview),1); @@ -84,7 +82,7 @@ prefs_data->prefs_notebook = gtk_notebook_new (); g_object_set (G_OBJECT (prefs_data->prefs_notebook),"show-border", FALSE,"show-tabs", FALSE,"enable-popup",FALSE,NULL); gtk_box_pack_start (GTK_BOX (hbox1), prefs_data->prefs_notebook,TRUE,TRUE,0); - GTK_WIDGET_UNSET_FLAGS (prefs_data->prefs_notebook, GTK_CAN_FOCUS); + gtk_widget_set_can_default (prefs_data->prefs_notebook, TRUE); g_signal_connect (G_OBJECT (prefs_iconview),"selection-changed",G_CALLBACK (xa_prefs_iconview_changed),prefs_data); /* Archive page*/ @@ -97,7 +95,7 @@ label4 = gtk_label_new (_("Preferred archive format")); gtk_box_pack_start (GTK_BOX (hbox1), label4, FALSE, FALSE,0); - prefs_data->combo_prefered_format = gtk_combo_box_new_text(); + prefs_data->combo_prefered_format = gtk_combo_box_text_new(); gtk_box_pack_start (GTK_BOX (hbox1), prefs_data->combo_prefered_format,FALSE,TRUE,0); archive_type = g_list_first (ArchiveType); while ( archive_type != NULL ) @@ -107,7 +105,7 @@ (strncmp(archive_type->data, "rar", 3) == 0 && unrar) ) goto next; else - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_format),archive_type->data ); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_format),archive_type->data ); next: archive_type = g_list_next (archive_type); } @@ -119,12 +117,12 @@ prefs_data->check_sort_filename_column = gtk_check_button_new_with_mnemonic(_("Sort archive by filename")); gtk_box_pack_start (GTK_BOX (vbox4), prefs_data->check_sort_filename_column, FALSE, FALSE, 0); gtk_button_set_focus_on_click (GTK_BUTTON (prefs_data->check_sort_filename_column), FALSE); - gtk_tooltips_set_tip(tooltips, prefs_data->check_sort_filename_column, _("The filename column is sorted after loading the archive"), NULL); + gtk_widget_set_tooltip_text(prefs_data->check_sort_filename_column, _("The filename column is sorted after loading the archive")); prefs_data->store_output = gtk_check_button_new_with_mnemonic (_("Store archiver output")); gtk_box_pack_start (GTK_BOX (vbox4), prefs_data->store_output, FALSE, FALSE, 0); gtk_button_set_focus_on_click (GTK_BUTTON (prefs_data->store_output), FALSE); - gtk_tooltips_set_tip(tooltips, prefs_data->store_output, _("This option takes more memory with large archives"), NULL); + gtk_widget_set_tooltip_text(prefs_data->store_output, _("This option takes more memory with large archives")); label1 = gtk_label_new (""); gtk_notebook_set_tab_label (GTK_NOTEBOOK (prefs_data->prefs_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (prefs_data->prefs_notebook), 0), label1); @@ -140,15 +138,15 @@ (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5); - prefs_data->combo_icon_size = gtk_combo_box_new_text(); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_icon_size), _("large") ); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_icon_size), _("small") ); + prefs_data->combo_icon_size = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_icon_size), _("large") ); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_icon_size), _("small") ); gtk_table_attach (GTK_TABLE (table1), prefs_data->combo_icon_size, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); prefs_data->check_show_comment = gtk_check_button_new_with_mnemonic (_("Show archive comment")); - gtk_tooltips_set_tip(tooltips, prefs_data->check_show_comment, _("If checked the archive comment is shown after the archive is loaded"), NULL); + gtk_widget_set_tooltip_text(prefs_data->check_show_comment, _("If checked the archive comment is shown after the archive is loaded")); gtk_table_attach (GTK_TABLE (table1), prefs_data->check_show_comment, 0, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); @@ -187,9 +185,9 @@ (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5); - prefs_data->combo_prefered_web_browser = gtk_combo_box_new_text(); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_web_browser), "" ); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_web_browser), _("choose...") ); + prefs_data->combo_prefered_web_browser = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_web_browser), "" ); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_web_browser), _("choose...") ); g_signal_connect (prefs_data->combo_prefered_web_browser,"changed",G_CALLBACK (xa_prefs_combo_changed),NULL); gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_web_browser, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), @@ -200,9 +198,9 @@ (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); gtk_misc_set_alignment (GTK_MISC (label7), 0, 0.5); - prefs_data->combo_prefered_editor = gtk_combo_box_new_text(); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_editor), "" ); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_editor), _("choose...") ); + prefs_data->combo_prefered_editor = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_editor), "" ); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_editor), _("choose...") ); g_signal_connect (prefs_data->combo_prefered_editor,"changed",G_CALLBACK (xa_prefs_combo_changed),NULL); gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_editor, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), @@ -213,9 +211,9 @@ (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); gtk_misc_set_alignment (GTK_MISC (label8), 0, 0.5); - prefs_data->combo_prefered_viewer = gtk_combo_box_new_text(); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_viewer), "" ); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_viewer), _("choose...") ); + prefs_data->combo_prefered_viewer = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_viewer), "" ); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_viewer), _("choose...") ); g_signal_connect (prefs_data->combo_prefered_viewer,"changed",G_CALLBACK (xa_prefs_combo_changed),NULL); gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_viewer, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), @@ -226,9 +224,9 @@ (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_SHRINK), 0, 0); gtk_misc_set_alignment (GTK_MISC (label9), 0, 0.5); - prefs_data->combo_prefered_temp_dir = gtk_combo_box_new_text(); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_temp_dir), _("/tmp") ); - gtk_combo_box_append_text (GTK_COMBO_BOX (prefs_data->combo_prefered_temp_dir), _("choose...") ); + prefs_data->combo_prefered_temp_dir = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_temp_dir), _("/tmp") ); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_temp_dir), _("choose...") ); g_signal_connect (prefs_data->combo_prefered_temp_dir,"changed",G_CALLBACK (xa_prefs_combo_changed),(gpointer) 1); gtk_table_attach (GTK_TABLE (table2), prefs_data->combo_prefered_temp_dir, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), @@ -243,7 +241,7 @@ gtk_table_attach (GTK_TABLE (table2), prefs_data->allow_sub_dir, 0, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); - gtk_tooltips_set_tip(tooltips, prefs_data->allow_sub_dir, _("This option includes the subdirectories when you add files with drag and drop"), NULL); + gtk_widget_set_tooltip_text(prefs_data->allow_sub_dir, _("This option includes the subdirectories when you add files with drag and drop")); gtk_button_set_focus_on_click (GTK_BUTTON (prefs_data->check_save_geometry), FALSE); if (xdg_open == FALSE) @@ -330,26 +328,26 @@ if (!xdg_open) { - value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser)); + value = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_web_browser)); if (value != NULL) { g_key_file_set_string (xa_key_file,PACKAGE,"preferred_web_browser",value); g_free (value); } - value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_editor)); + value = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_editor)); if (value != NULL) { g_key_file_set_string (xa_key_file,PACKAGE,"preferred_editor",value); g_free(value); } - value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer)); + value = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_viewer)); if (value != NULL) { g_key_file_set_string (xa_key_file,PACKAGE,"preferred_viewer",value); g_free(value); } } - value = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir)); + value = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_temp_dir)); if (value != NULL) { g_key_file_set_string (xa_key_file,PACKAGE,"preferred_temp_dir",value); @@ -438,24 +436,24 @@ value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_web_browser",NULL); if (value != NULL) { - gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_web_browser),0); - gtk_combo_box_prepend_text(GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),value); + gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_web_browser),0); + gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_web_browser),value); gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_web_browser),0); g_free(value); } value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_editor",NULL); if (value != NULL) { - gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_editor),0); - gtk_combo_box_insert_text (GTK_COMBO_BOX(prefs_data->combo_prefered_editor),0,value); + gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_editor),0); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_editor),0,value); gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_editor),0); g_free(value); } value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_viewer",NULL); if (value != NULL) { - gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_viewer),0); - gtk_combo_box_insert_text (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer),0,value); + gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_viewer),0); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_viewer),0,value); gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_viewer),0); g_free(value); } @@ -463,8 +461,8 @@ value = g_key_file_get_string(xa_key_file,PACKAGE,"preferred_temp_dir",NULL); if (value != NULL) { - gtk_combo_box_remove_text(GTK_COMBO_BOX (prefs_data->combo_prefered_temp_dir),0); - gtk_combo_box_insert_text (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0,value); + gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT (prefs_data->combo_prefered_temp_dir),0); + gtk_combo_box_text_insert_text (GTK_COMBO_BOX_TEXT(prefs_data->combo_prefered_temp_dir),0,value); gtk_combo_box_set_active (GTK_COMBO_BOX(prefs_data->combo_prefered_temp_dir),0); g_free(value); } @@ -538,8 +536,8 @@ filename = xa_prefs_choose_program(flag); if (filename != NULL) { - gtk_combo_box_remove_text(GTK_COMBO_BOX (widget),0); - gtk_combo_box_insert_text(GTK_COMBO_BOX (widget),0,filename); + gtk_combo_box_text_remove(GTK_COMBO_BOX_TEXT (widget),0); + gtk_combo_box_text_insert_text(GTK_COMBO_BOX_TEXT (widget),0,filename); g_free(filename); } gtk_combo_box_set_active (GTK_COMBO_BOX (widget),0); diff -Naur xarchiver-0.5.4.orig/src/pref_dialog.h xarchiver-0.5.4/src/pref_dialog.h --- xarchiver-0.5.4.orig/src/pref_dialog.h 2008-08-27 09:56:03.000000000 -0300 +++ xarchiver-0.5.4/src/pref_dialog.h 2015-09-12 07:08:56.419356969 -0300 @@ -28,7 +28,6 @@ GtkWidget *check_show_comment, *check_sort_filename_column,*show_location_bar,*show_sidebar,*combo_prefered_viewer; GtkWidget *combo_prefered_web_browser, *combo_prefered_editor, *combo_prefered_temp_dir, *allow_sub_dir,*check_save_geometry,*prefs_notebook; GtkListStore *prefs_liststore; - GtkTooltips *tooltips; gint geometry[5]; gint extract_dialog[2]; gint add_coords[2]; diff -Naur xarchiver-0.5.4.orig/src/rpm.c xarchiver-0.5.4/src/rpm.c --- xarchiver-0.5.4.orig/src/rpm.c 2014-02-09 12:26:24.000000000 -0300 +++ xarchiver-0.5.4/src/rpm.c 2015-09-12 07:08:56.412357123 -0300 @@ -23,8 +23,11 @@ void xa_open_rpm (XArchive *archive) { + unsigned char bytes[8]; unsigned short int i; - int response; + int dl,il,sigsize,offset,response; + gchar *ibs,*executable; + gchar *gzip_tmp = NULL; GSList *list = NULL; FILE *stream; gboolean result; @@ -53,14 +56,68 @@ archive->column_types[i] = types[i]; xa_create_liststore (archive,names); + if (fseek ( stream, 104 , SEEK_CUR ) ) + { + fclose (stream); + response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't fseek to position 104:"),g_strerror(errno)); + return; + } + if ( fread ( bytes, 1, 8, stream ) == 0 ) + { + fclose ( stream ); + response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't read data from file:"),g_strerror(errno)); + return; + } + il = 256 * ( 256 * ( 256 * bytes[0] + bytes[1]) + bytes[2] ) + bytes[3]; + dl = 256 * ( 256 * ( 256 * bytes[4] + bytes[5]) + bytes[6] ) + bytes[7]; + sigsize = 8 + 16 * il + dl; + offset = 104 + sigsize + ( 8 - ( sigsize % 8 ) ) % 8 + 8; + if (fseek ( stream, offset , SEEK_SET ) ) + { + fclose (stream); + response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't fseek in file:"),g_strerror(errno)); + return; + } + if ( fread ( bytes, 1, 8, stream ) == 0 ) + { + fclose ( stream ); + response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't read data from file:"),g_strerror(errno)); + return; + } + il = 256 * ( 256 * ( 256 * bytes[0] + bytes[1]) + bytes[2] ) + bytes[3]; + dl = 256 * ( 256 * ( 256 * bytes[4] + bytes[5]) + bytes[6] ) + bytes[7]; + sigsize = 8 + 16 * il + dl; + offset = offset + sigsize; + fclose (stream); /* Create a unique temp dir in /tmp */ result = xa_create_temp_directory (archive); if (!result) return; + gzip_tmp = g_strconcat (archive->tmp,"/file.gz_bz",NULL); + ibs = g_strdup_printf ( "%u" , offset ); + /* Now I run dd to have the bzip2 / gzip compressed cpio archive in /tmp */ - gchar *command = g_strconcat ( "sh -c \"rpm2cpio ",archive->escaped_path," > ",archive->tmp, "/file.cpio\"",NULL); + gchar *command = g_strconcat ( "dd if=",archive->escaped_path," ibs=",ibs," skip=1 of=",gzip_tmp,NULL); + g_free (ibs); + list = g_slist_append(list,command); + batch_mode = TRUE; + result = xa_run_command (archive,list); + if (result == FALSE) + { + g_free (gzip_tmp); + return; + } + if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_GZIP) + executable = "gzip -dc "; + else if (xa_detect_archive_type (gzip_tmp) == XARCHIVETYPE_BZIP2) + executable = "bzip2 -dc "; + else + executable = "xz -dc "; + + command = g_strconcat("sh -c \"",executable,gzip_tmp," > ",archive->tmp,"/file.cpio\"",NULL); + g_free(gzip_tmp); list = NULL; list = g_slist_append(list,command); result = xa_run_command (archive,list); diff -Naur xarchiver-0.5.4.orig/src/window.c xarchiver-0.5.4/src/window.c --- xarchiver-0.5.4.orig/src/window.c 2014-09-28 17:42:37.000000000 -0300 +++ xarchiver-0.5.4/src/window.c 2015-09-12 07:08:56.419356969 -0300 @@ -152,10 +152,9 @@ GTK_WINDOW(xa_main_window),GTK_DIALOG_MODAL,GTK_STOCK_OK,GTK_RESPONSE_OK,NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog),GTK_RESPONSE_OK); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog),FALSE); gtk_container_set_border_width (GTK_CONTAINER (dialog),6); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox),6); - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox),8); + gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),6); + gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),8); gtk_widget_set_size_request (dialog,400,-1); scrolledwindow = gtk_scrolled_window_new (NULL,NULL); @@ -188,7 +187,7 @@ } gtk_container_add (GTK_CONTAINER (scrolledwindow),textview); gtk_box_pack_start (GTK_BOX (vbox),scrolledwindow,TRUE,TRUE,0); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),vbox,TRUE,TRUE,0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),vbox,TRUE,TRUE,0); output = _archive->error_output; while (output) @@ -964,14 +963,31 @@ void xa_about (GtkMenuItem *menuitem,gpointer user_data) { static GtkWidget *about = NULL; - const char *authors[] = {"Main developer:\nGiuseppe Torelli \n\nArchive navigation code:\nJohn Berthels\n\nLHA and DEB support:\nŁukasz Zemczak \n\nLZMA support:\nThomas Dy \n\nLZOP support:\nKevin Day\n\nRAR5, XZ, TAR.XZ support:\nFrederick GUERIN \n",NULL}; - const char *documenters[] = {"Special thanks to Bjoern Martensen for\nbugs hunting and Xarchiver Tango logo.\n\nThanks to:\nBenedikt Meurer\nStephan Arts\nBruno Jesus <00cpxxx@gmail.com>\nUracile for the stunning logo\n",NULL}; + + const char *authors[] = { + "Main developer:\nGiuseppe Torelli \n", + "Archive navigation code:\nJohn Berthels\n", + "LHA and DEB support:\nŁukasz Zemczak \n", + "LZMA support:\nThomas Dy \n", + "LZOP support:\nKevin Day\n", + "RAR5, XZ, TAR.XZ support:\nFrederick GUERIN \n", + "GTK+ 3 port:\nBalló György \n", + NULL + }; + + const char *documenters[] = { + "Special thanks to Bjoern Martensen for\nbugs hunting and Xarchiver Tango logo.\n", + "Thanks to:", + "Benedikt Meurer", + "Stephan Arts", + "Bruno Jesus <00cpxxx@gmail.com>", + "Uracile for the stunning logo\n", + NULL + }; if (about == NULL) { about = gtk_about_dialog_new (); - gtk_about_dialog_set_email_hook (xa_activate_link,NULL,NULL); - gtk_about_dialog_set_url_hook (xa_activate_link,NULL,NULL); gtk_window_set_position (GTK_WINDOW (about),GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_transient_for (GTK_WINDOW (about),GTK_WINDOW (xa_main_window)); gtk_window_set_destroy_with_parent (GTK_WINDOW (about),TRUE); @@ -979,7 +995,7 @@ "name", "xarchiver", "version",PACKAGE_VERSION, "copyright","Copyright \xC2\xA9 2005-2014 Giuseppe Torelli", - "comments","A GTK+2 only lightweight archive manager", + "comments","A GTK+ only lightweight archive manager", "authors",authors, "documenters",documenters, "translator_credits",_("translator-credits"), @@ -1325,7 +1341,7 @@ current_page = gtk_notebook_get_current_page(notebook); idx = xa_find_archive_index (current_page); gtk_widget_set_sensitive(Stop_button,FALSE); - if (GTK_WIDGET_VISIBLE(multi_extract_window->multi_extract)) + if (gtk_widget_get_visible(GTK_WIDGET(multi_extract_window->multi_extract))) { multi_extract_window->stop_pressed = TRUE; kill (multi_extract_window->archive->child_pid,SIGINT); @@ -1658,7 +1674,7 @@ gtk_tree_model_get_iter(archive->model,&iter,(GtkTreePath*) (row_list->data)); gtk_tree_model_get (GTK_TREE_MODEL (archive->liststore),&iter,archive->nc+1,&entry,-1); - gdk_property_change (context->source_window, + gdk_property_change (gdk_drag_context_get_source_window(context), gdk_atom_intern ("XdndDirectSave0",FALSE), gdk_atom_intern ("text/plain",FALSE), 8,GDK_PROP_MODE_REPLACE, @@ -1694,7 +1710,7 @@ response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't perform another extraction:"),_("Please wait until the completion of the current one!")); return; } - gdk_property_get ( dc->source_window, + gdk_property_get ( gdk_drag_context_get_source_window(dc), gdk_atom_intern ("XdndDirectSave0",FALSE), gdk_atom_intern ("text/plain",FALSE), 0,4096,FALSE,NULL,NULL,NULL,&_destination ); @@ -1704,7 +1720,7 @@ { if (archive->passwd == NULL) { - archive->passwd = xa_create_password_dialog(NULL); + archive->passwd = xa_create_password_dialog(archive); if ( archive->passwd == NULL) { gtk_drag_finish (dc,FALSE,FALSE,t); @@ -1749,7 +1765,7 @@ g_free (archive->extraction_path); archive->extraction_path = NULL; } - gtk_selection_data_set (selection_data,selection_data->target,8,(guchar*)to_send,1); + gtk_selection_data_set (selection_data,gtk_selection_data_get_target(selection_data),8,(guchar*)to_send,1); } } @@ -1892,7 +1908,7 @@ if ( !xdg_open) { gchar *browser_path = NULL; - browser_path = gtk_combo_box_get_active_text(GTK_COMBO_BOX(prefs_window->combo_prefered_web_browser)); + browser_path = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(prefs_window->combo_prefered_web_browser)); if (strlen(browser_path) == 0) { response = xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_INFO,GTK_BUTTONS_OK,_("You didn't set which browser to use!"),_("Please go to Preferences->Advanced and set it.")); @@ -1915,16 +1931,16 @@ { if (strstr(file,".html")) { - program = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_window->combo_prefered_web_browser)); + program = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_window->combo_prefered_web_browser)); } else if (strstr(file,".txt")) { - program = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_window->combo_prefered_editor)); + program = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_window->combo_prefered_editor)); } else if (strstr(file,".png") || strstr(file,".gif") || strstr(file,".jpg") || strstr(file,".bmp") || strstr(file,".tif") || strstr(file,".tiff")|| strstr(file,".svg") || strstr(file,".png") || strstr(file,".tga")) - program = gtk_combo_box_get_active_text (GTK_COMBO_BOX(prefs_window->combo_prefered_viewer)); + program = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT(prefs_window->combo_prefered_viewer)); else { xa_show_message_dialog (GTK_WINDOW (xa_main_window),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("This file type is not supported!"),_("Please install xdg-utils package.")); @@ -1943,6 +1959,11 @@ g_free(program); } +void setup_display_cb (gpointer data) +{ + g_setenv ("DISPLAY", (char *) data, TRUE); +} + gboolean xa_launch_external_program(gchar *program,gchar *arg) { GtkWidget *message; @@ -1950,13 +1971,21 @@ gchar *command_line = NULL; gchar **argv; GdkScreen *screen; + char *display; command_line = g_strconcat(program," ",arg,NULL); g_shell_parse_argv(command_line,NULL,&argv,NULL); g_free(command_line); screen = gtk_widget_get_screen (GTK_WIDGET (xa_main_window)); - if (!gdk_spawn_on_screen (screen,NULL,argv,NULL,G_SPAWN_SEARCH_PATH,NULL,NULL,NULL,&error)) + + if (screen != NULL) + display = gdk_screen_make_display_name (screen); + else + display = NULL; + + display = gdk_screen_make_display_name (screen); + if (!g_spawn_async (NULL,argv,NULL,G_SPAWN_SEARCH_PATH,setup_display_cb,display,NULL,&error)) { message = gtk_message_dialog_new (GTK_WINDOW (xa_main_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, @@ -2017,8 +2046,7 @@ comment_dialog = gtk_dialog_new_with_buttons (_("Comment"),GTK_WINDOW(xa_main_window),GTK_DIALOG_MODAL,NULL); gtk_window_set_position (GTK_WINDOW (comment_dialog),GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_set_type_hint (GTK_WINDOW (comment_dialog),GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_dialog_set_has_separator (GTK_DIALOG (comment_dialog),FALSE); - dialog_vbox1 = GTK_DIALOG (comment_dialog)->vbox; + dialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (comment_dialog)); gtk_widget_set_size_request(comment_dialog,500,330); scrolledwindow1 = gtk_scrolled_window_new (NULL,NULL); @@ -2034,7 +2062,7 @@ g_object_unref (textbuffer); gtk_container_add (GTK_CONTAINER (scrolledwindow1),textview); - dialog_action_area1 = GTK_DIALOG (comment_dialog)->action_area; + dialog_action_area1 = gtk_dialog_get_action_area(GTK_DIALOG (comment_dialog)); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1),GTK_BUTTONBOX_END); clear = gtk_button_new_from_stock ("gtk-clear"); @@ -2295,7 +2323,7 @@ clipboard_selection = gtk_clipboard_wait_for_contents(clipboard,XA_INFO_LIST); if (clipboard_selection != NULL) { - paste_data = xa_get_paste_data_from_clipboard_selection((char*)clipboard_selection->data); + paste_data = xa_get_paste_data_from_clipboard_selection((char*)gtk_selection_data_get_data (clipboard_selection)); gtk_selection_data_free (clipboard_selection); if (strcmp(archive->escaped_path,paste_data->cut_copy_archive->escaped_path) == 0) value = FALSE; @@ -2363,7 +2391,7 @@ selection = gtk_clipboard_wait_for_contents(clipboard,XA_INFO_LIST); if (selection == NULL) return; - paste_data = xa_get_paste_data_from_clipboard_selection((char*)selection->data); + paste_data = xa_get_paste_data_from_clipboard_selection((char*)gtk_selection_data_get_data(selection)); gtk_selection_data_free (selection); /* Let's add the already extracted files in the tmp dir to the current archive dir */ @@ -2461,7 +2489,7 @@ XArchive *archive = user_data; GSList *_files = archive->clipboard_data->files; GString *params = g_string_new(""); - if (selection_data->target != XA_INFO_LIST) + if (gtk_selection_data_get_target (selection_data) != XA_INFO_LIST) return; g_string_append (params,g_strdup(archive->escaped_path)); @@ -2477,7 +2505,7 @@ g_string_append (params,"\r\n"); _files = _files->next; } - gtk_selection_data_set (selection_data,selection_data->target,8,(guchar *) params->str,strlen(params->str)); + gtk_selection_data_set (selection_data,gtk_selection_data_get_target(selection_data),8,(guchar *) params->str,strlen(params->str)); g_string_free (params,TRUE); } @@ -2514,7 +2542,7 @@ row_list = gtk_tree_selection_get_selected_rows(selection,&model); g_object_set(archive[idx]->renderer_text,"editable",TRUE,NULL); - gtk_accel_group_disconnect_key(accel_group,GDK_Delete,GDK_MODE_DISABLED); + gtk_accel_group_disconnect_key(accel_group,GDK_KEY_Delete,GDK_MODE_DISABLED); column = gtk_tree_view_get_column(GTK_TREE_VIEW (archive[idx]->treeview),0); gtk_tree_view_set_cursor(GTK_TREE_VIEW(archive[idx]->treeview),row_list->data,column,TRUE); gtk_tree_path_free (row_list->data); @@ -2524,7 +2552,7 @@ void xa_rename_cell_edited_canceled(GtkCellRenderer *renderer,gpointer data) { g_object_set(renderer,"editable",FALSE,NULL); - gtk_widget_add_accelerator (delete_menu,"activate",accel_group,GDK_Delete,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (delete_menu,"activate",accel_group,GDK_KEY_Delete,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); } void xa_rename_cell_edited (GtkCellRendererText *cell,const gchar *path_string,const gchar *new_name,XArchive *archive) @@ -2600,7 +2628,7 @@ chdir (archive->tmp); xa_execute_add_commands(archive,list,NULL); } - gtk_widget_add_accelerator (delete_menu,"activate",accel_group,GDK_Delete,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator (delete_menu,"activate",accel_group,GDK_KEY_Delete,GDK_MODE_DISABLED,GTK_ACCEL_VISIBLE); g_object_set(cell,"editable",FALSE,NULL); } @@ -2713,9 +2741,12 @@ if (entry->is_encrypted) { - archive[idx]->passwd = xa_create_password_dialog(archive[idx]); if (archive[idx]->passwd == NULL) - return; + { + archive[idx]->passwd = xa_create_password_dialog(archive[idx]); + if (archive[idx]->passwd == NULL) + return; + } } filename = g_strconcat(archive[idx]->tmp,"/",entry->filename,NULL); if (g_file_test(filename,G_FILE_TEST_EXISTS)) @@ -2779,8 +2810,12 @@ { if (entry->is_encrypted) { - if (archive->passwd == NULL) - return; + if (archive->passwd == NULL) + { + archive->passwd = xa_create_password_dialog(archive); + if (archive->passwd == NULL) + return; + } } if (archive->extraction_path) { diff -Naur xarchiver-0.5.4.orig/xarchiver.desktop.in xarchiver-0.5.4/xarchiver.desktop.in --- xarchiver-0.5.4.orig/xarchiver.desktop.in 2008-06-27 02:24:12.000000000 -0300 +++ xarchiver-0.5.4/xarchiver.desktop.in 2015-09-12 07:08:56.420356947 -0300 @@ -2,13 +2,13 @@ Encoding=UTF-8 Version=1.0 _Name=Xarchiver -_Comment=A GTK+2 only archive manager +_Comment=A GTK+ only archive manager _GenericName=Archive manager -Exec=xarchiver +Exec=xarchiver %f Icon=xarchiver Terminal=false Type=Application X-MultipleArgs=false Categories=GTK;Archiving;Utility; StartupNotify=true -MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;multipart/x-zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar; +MimeType=application/x-arj;application/arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-gzip;application/x-rar;application/x-rar-compressed;application/x-tar;application/x-zip;application/x-zip-compressed;application/zip;application/x-7z-compressed;application/x-compressed-tar;application/x-bzip2;application/x-bzip2-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-xz;application/x-xz-compressed-tar;application/x-deb;application/x-rpm;