X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=libview%2Fev-view.c;h=815571c9efba55eda26da7507311d21b005bbffc;hb=refs%2Ftags%2FEVINCE_2_25_90;hp=e6fb3ce4f02ef2455ff7be1e316ec8ef75887405;hpb=68d0fc3c59185065d9694ba3f8cb2665b984eb9f;p=evince.git diff --git a/libview/ev-view.c b/libview/ev-view.c index e6fb3ce4..815571c9 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -40,6 +40,7 @@ #include "ev-view.h" #include "ev-view-accessible.h" #include "ev-view-private.h" +#include "ev-view-type-builtins.h" #define EV_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_VIEW, EvViewClass)) #define EV_IS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_VIEW)) @@ -72,21 +73,6 @@ enum { TARGET_DND_IMAGE }; -enum { - TARGET_STRING, - TARGET_TEXT, - TARGET_COMPOUND_TEXT, - TARGET_UTF8_STRING, - TARGET_TEXT_BUFFER_CONTENTS -}; - -static const GtkTargetEntry clipboard_targets[] = { - { "STRING", 0, TARGET_STRING }, - { "TEXT", 0, TARGET_TEXT }, - { "COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT }, - { "UTF8_STRING", 0, TARGET_UTF8_STRING }, -}; - static guint signals[N_SIGNALS]; typedef enum { @@ -1782,10 +1768,10 @@ ev_view_form_field_text_create_widget (EvView *view, g_free (txt); } - g_signal_connect (G_OBJECT (text), "changed", + g_signal_connect (text, "changed", G_CALLBACK (ev_view_form_field_text_changed), field); - g_signal_connect_after (G_OBJECT (text), "activate", + g_signal_connect_after (text, "activate", G_CALLBACK (ev_view_form_field_destroy), view); break; @@ -1800,7 +1786,7 @@ ev_view_form_field_text_create_widget (EvView *view, g_free (txt); } - g_signal_connect (G_OBJECT (buffer), "changed", + g_signal_connect (buffer, "changed", G_CALLBACK (ev_view_form_field_text_changed), field); } @@ -1974,10 +1960,10 @@ ev_view_form_field_choice_create_widget (EvView *view, gtk_container_add (GTK_CONTAINER (choice), tree_view); gtk_widget_show (tree_view); - g_signal_connect (G_OBJECT (selection), "changed", + g_signal_connect (selection, "changed", G_CALLBACK (ev_view_form_field_choice_changed), field); - g_signal_connect_after (G_OBJECT (selection), "changed", + g_signal_connect_after (selection, "changed", G_CALLBACK (ev_view_form_field_destroy), view); } else if (field_choice->is_editable) { /* ComboBoxEntry */ @@ -1990,10 +1976,10 @@ ev_view_form_field_choice_create_widget (EvView *view, g_free (text); } - g_signal_connect (G_OBJECT (choice), "changed", + g_signal_connect (choice, "changed", G_CALLBACK (ev_view_form_field_choice_changed), field); - g_signal_connect_after (G_OBJECT (GTK_BIN (choice)->child), "activate", + g_signal_connect_after (GTK_BIN(choice)->child, "activate", G_CALLBACK (ev_view_form_field_destroy), view); } else { /* ComboBoxText */ @@ -2010,10 +1996,10 @@ ev_view_form_field_choice_create_widget (EvView *view, gtk_combo_box_set_active (GTK_COMBO_BOX (choice), selected_item); gtk_combo_box_popup (GTK_COMBO_BOX (choice)); - g_signal_connect (G_OBJECT (choice), "changed", + g_signal_connect (choice, "changed", G_CALLBACK (ev_view_form_field_choice_changed), field); - g_signal_connect_after (G_OBJECT (choice), "changed", + g_signal_connect_after (choice, "changed", G_CALLBACK (ev_view_form_field_destroy), view); } @@ -2752,7 +2738,7 @@ ev_view_drag_data_get (GtkWidget *widget, if (view->image_dnd_info.image) { GdkPixbuf *pixbuf; const gchar *tmp_uri; - gchar **uris; + gchar *uris[2]; ev_document_doc_mutex_lock (); pixbuf = ev_document_images_get_image (EV_DOCUMENT_IMAGES (view->document), @@ -2762,13 +2748,9 @@ ev_view_drag_data_get (GtkWidget *widget, tmp_uri = ev_image_save_tmp (view->image_dnd_info.image, pixbuf); g_object_unref (pixbuf); - uris = g_new0 (gchar *, 2); uris[0] = (gchar *)tmp_uri; - + uris[1] = NULL; gtk_selection_data_set_uris (selection_data, uris); - - /* g_free instead of g_strfreev since tmp_uri is const */ - g_free (uris); } } } @@ -5625,13 +5607,23 @@ ev_view_update_primary_selection (EvView *ev_view) GDK_SELECTION_PRIMARY); if (ev_view->selection_info.selections || ev_view->link_selected) { + GtkTargetList *target_list; + GtkTargetEntry *targets; + int n_targets; + + target_list = gtk_target_list_new (NULL, 0); + gtk_target_list_add_text_targets (target_list, 0); + targets = gtk_target_table_new_from_list (target_list, &n_targets); + gtk_target_list_unref (target_list); + if (!gtk_clipboard_set_with_owner (clipboard, - clipboard_targets, - G_N_ELEMENTS (clipboard_targets), + targets, n_targets, ev_view_primary_get_cb, ev_view_primary_clear_cb, G_OBJECT (ev_view))) ev_view_primary_clear_cb (clipboard, ev_view); + + gtk_target_table_free (targets, n_targets); } else { if (gtk_clipboard_get_owner (clipboard) == G_OBJECT (ev_view)) gtk_clipboard_clear (clipboard); @@ -5840,22 +5832,6 @@ ev_view_previous_page (EvView *view) /*** Enum description for usage in signal ***/ -GType -ev_sizing_mode_get_type (void) -{ - static GType etype = 0; - if (etype == 0) { - static const GEnumValue values[] = { - { EV_SIZING_FIT_WIDTH, "EV_SIZING_FIT_WIDTH", "fit-width" }, - { EV_SIZING_BEST_FIT, "EV_SIZING_BEST_FIT", "best-fit" }, - { EV_SIZING_FREE, "EV_SIZING_FREE", "free" }, - { 0, NULL, NULL } - }; - etype = g_enum_register_static ("EvSizingMode", values); - } - return etype; -} - void ev_view_update_view_size (EvView *view, GtkScrolledWindow * scrolled_window) {