From f8e542223bdd305ac69ed0380b05b9a0c99ad3ab Mon Sep 17 00:00:00 2001 From: Alexei Sorokin Date: Sat, 25 Feb 2017 20:10:44 +0300 Subject: Revert "GTK3.21:fix desktop redraw" --- libcaja-private/caja-icon-container.c | 7 -- src/caja-desktop-window.c | 141 -------------------------------- src/file-manager/fm-desktop-icon-view.c | 2 - src/file-manager/fm-directory-view.c | 23 ++---- src/file-manager/fm-icon-view.c | 10 --- src/file-manager/fm-list-view.c | 6 -- 6 files changed, 6 insertions(+), 183 deletions(-) diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c index b67ba5a6..385d88c2 100644 --- a/libcaja-private/caja-icon-container.c +++ b/libcaja-private/caja-icon-container.c @@ -4707,8 +4707,6 @@ realize (GtkWidget *widget) GTK_WIDGET_CLASS (caja_icon_container_parent_class)->realize (widget); container = CAJA_ICON_CONTAINER (widget); - /* Unless GTK 3.21 or later is in use and the desktop must be transparent*/ -#if !GTK_CHECK_VERSION(3, 21, 0) /* Ensure that the desktop window is native so the background set on it is drawn by X. */ if (container->details->is_desktop) @@ -4719,7 +4717,6 @@ realize (GtkWidget *widget) gdk_x11_drawable_get_xid (gtk_layout_get_bin_window (GTK_LAYOUT (widget))); #endif } -#endif /* Set up DnD. */ caja_icon_dnd_init (container); @@ -6285,7 +6282,6 @@ popup_menu (GtkWidget *widget) return TRUE; } -#if !GTK_CHECK_VERSION(3, 21, 0) static void draw_canvas_background (EelCanvas *canvas, #if GTK_CHECK_VERSION(3,0,0) @@ -6296,7 +6292,6 @@ draw_canvas_background (EelCanvas *canvas, { /* Don't chain up to the parent to avoid clearing and redrawing */ } -#endif #if !GTK_CHECK_VERSION(3,0,0) @@ -6787,9 +6782,7 @@ caja_icon_container_class_init (CajaIconContainerClass *class) widget_class->grab_notify = grab_notify_cb; canvas_class = EEL_CANVAS_CLASS (class); -#if !GTK_CHECK_VERSION(3, 21, 0) canvas_class->draw_background = draw_canvas_background; -#endif class->start_interactive_search = caja_icon_container_start_interactive_search; #if GTK_CHECK_VERSION(3,0,0) diff --git a/src/caja-desktop-window.c b/src/caja-desktop-window.c index 1cc14348..f843d718 100644 --- a/src/caja-desktop-window.c +++ b/src/caja-desktop-window.c @@ -35,128 +35,17 @@ #include #include #include -#if GTK_CHECK_VERSION(3, 21, 0) -#define MATE_DESKTOP_USE_UNSTABLE_API -#include -#endif struct CajaDesktopWindowDetails { gulong size_changed_id; gboolean loaded; -#if GTK_CHECK_VERSION(3, 21, 0) - gboolean composited; - cairo_surface_t *surface; -#endif }; G_DEFINE_TYPE (CajaDesktopWindow, caja_desktop_window, CAJA_TYPE_SPATIAL_WINDOW); -#if GTK_CHECK_VERSION(3, 21, 0) - -static void -background_changed (CajaDesktopWindow *window) -{ - GdkScreen *screen = gdk_screen_get_default (); - - if (window->details->surface) { - cairo_surface_destroy (window->details->surface); - } - - window->details->surface = mate_bg_get_surface_from_root (screen); - gtk_widget_queue_draw (GTK_WIDGET (window)); -} - -static GdkFilterReturn -filter_func (GdkXEvent *xevent, - GdkEvent *event, - CajaDesktopWindow *window) -{ - XEvent *xev = (XEvent *) xevent; - GdkAtom gdkatom; - - if (xev->type != PropertyNotify) { - return GDK_FILTER_CONTINUE; - } - - gdkatom = gdk_atom_intern_static_string ("_XROOTPMAP_ID"); - if (xev->xproperty.atom != gdk_x11_atom_to_xatom (gdkatom)) { - return GDK_FILTER_CONTINUE; - } - - background_changed (window); - - return GDK_FILTER_CONTINUE; -} - -static void -caja_desktop_window_composited_changed (GtkWidget *widget) -{ - CajaDesktopWindow *window = CAJA_DESKTOP_WINDOW (widget); - GdkScreen *screen = gdk_screen_get_default (); - gboolean composited = gdk_screen_is_composited (screen); - GdkWindow *root; - - if (window->details->composited == composited) { - return; - } - - window->details->composited = composited; - root = gdk_screen_get_root_window (screen); - - if (composited) { - gdk_window_remove_filter (root, (GdkFilterFunc) filter_func, window); - - if (window->details->surface) { - cairo_surface_destroy (window->details->surface); - window->details->surface = NULL; - } - } else { - gint events = gdk_window_get_events (root); - - gdk_window_set_events (root, events | GDK_PROPERTY_CHANGE_MASK); - gdk_window_add_filter (root, (GdkFilterFunc) filter_func, window); - background_changed (window); - } -} - -static gboolean -caja_desktop_window_draw (GtkWidget *widget, - cairo_t *cr) -{ - CajaDesktopWindow *window = CAJA_DESKTOP_WINDOW (widget); - - if (window->details->surface) { - cairo_set_source_surface (cr, window->details->surface, 0, 0); - cairo_paint (cr); - } - - return GTK_WIDGET_CLASS (caja_desktop_window_parent_class)->draw (widget, cr); -} - -static void -caja_desktop_window_finalize (GObject *obj) -{ - CajaDesktopWindow *window = CAJA_DESKTOP_WINDOW (obj); - - if (window->details->composited == FALSE) { - GdkScreen *screen = gdk_screen_get_default (); - GdkWindow *root = gdk_screen_get_root_window (screen); - - gdk_window_remove_filter (root, (GdkFilterFunc) filter_func, window); - } - - if (window->details->surface) { - cairo_surface_destroy (window->details->surface); - window->details->surface = NULL; - } - - G_OBJECT_CLASS (caja_desktop_window_parent_class)->finalize (obj); -} -#endif - static void caja_desktop_window_init (CajaDesktopWindow *window) { @@ -173,11 +62,6 @@ caja_desktop_window_init (CajaDesktopWindow *window) gtk_style_context_add_class (context, "caja-desktop-window"); #endif -#if GTK_CHECK_VERSION(3, 21, 0) - window->details->composited = TRUE; - caja_desktop_window_composited_changed (GTK_WIDGET (window)); -#endif - gtk_window_move (GTK_WINDOW (window), 0, 0); /* shouldn't really be needed given our semantic type @@ -283,13 +167,6 @@ map (GtkWidget *widget) /* Chain up to realize our children */ GTK_WIDGET_CLASS (caja_desktop_window_parent_class)->map (widget); gdk_window_lower (gtk_widget_get_window (widget)); -#if GTK_CHECK_VERSION(3, 21, 0) - GdkWindow *window; - GdkRGBA transparent = { 0, 0, 0, 0 }; - - window = gtk_widget_get_window (widget); - gdk_window_set_background_rgba (window, &transparent); -#endif } static void @@ -359,21 +236,12 @@ realize (GtkWidget *widget) { CajaDesktopWindow *window; CajaDesktopWindowDetails *details; -#if GTK_CHECK_VERSION(3, 21, 0) - GdkVisual *visual; -#endif window = CAJA_DESKTOP_WINDOW (widget); details = window->details; /* Make sure we get keyboard events */ gtk_widget_set_events (widget, gtk_widget_get_events (widget) | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); -#if GTK_CHECK_VERSION(3, 21, 0) - visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget)); - if (visual) { - gtk_widget_set_visual (widget, visual); - } -#endif /* Do the work of realizing. */ GTK_WIDGET_CLASS (caja_desktop_window_parent_class)->realize (widget); @@ -405,19 +273,10 @@ caja_desktop_window_class_init (CajaDesktopWindowClass *klass) { GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass); CajaWindowClass *nclass = CAJA_WINDOW_CLASS (klass); -#if GTK_CHECK_VERSION(3, 21, 0) - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - object_class->finalize = caja_desktop_window_finalize; -#endif wclass->realize = realize; wclass->unrealize = unrealize; wclass->map = map; -#if GTK_CHECK_VERSION(3, 21, 0) - wclass->composited_changed = caja_desktop_window_composited_changed; - wclass->draw = caja_desktop_window_draw; -#endif nclass->window_type = CAJA_WINDOW_DESKTOP; nclass->get_title = real_get_title; nclass->get_icon = real_get_icon; diff --git a/src/file-manager/fm-desktop-icon-view.c b/src/file-manager/fm-desktop-icon-view.c index 1637532c..6e4952fa 100644 --- a/src/file-manager/fm-desktop-icon-view.c +++ b/src/file-manager/fm-desktop-icon-view.c @@ -38,9 +38,7 @@ #include #include #include -#if !GTK_CHECK_VERSION(3, 21, 0) #include -#endif #include #include #include diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index b9d6f76f..1d9683b8 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -61,9 +61,7 @@ #include #include #include -#if !GTK_CHECK_VERSION(3, 21, 0) #include -#endif #include #include #include @@ -423,9 +421,7 @@ EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, can_zoom_in) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, can_zoom_out) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, clear) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, file_changed) -#if !GTK_CHECK_VERSION(3, 21, 0) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_background_widget) -#endif EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_selection) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_selection_for_file_transfer) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_item_count) @@ -3692,7 +3688,6 @@ fm_directory_view_can_zoom_out (FMDirectoryView *view) can_zoom_out, (view)); } -#if !GTK_CHECK_VERSION(3, 21, 0) GtkWidget * fm_directory_view_get_background_widget (FMDirectoryView *view) { @@ -3718,7 +3713,7 @@ real_set_is_active (FMDirectoryView *view, bg = fm_directory_view_get_background (view); eel_background_set_active (bg, is_active); } -#endif + static void fm_directory_view_set_is_active (FMDirectoryView *view, gboolean is_active) @@ -7745,11 +7740,9 @@ real_merge_menus (FMDirectoryView *view) ui = caja_ui_string_get ("caja-directory-view-ui.xml"); view->details->dir_merge_id = gtk_ui_manager_add_ui_from_string (ui_manager, ui, -1, NULL); -#if !GTK_CHECK_VERSION(3, 21, 0) g_signal_connect_object (fm_directory_view_get_background (view), "settings_changed", G_CALLBACK (schedule_update_menus), G_OBJECT (view), G_CONNECT_SWAPPED); -#endif view->details->scripts_invalid = TRUE; view->details->templates_invalid = TRUE; } @@ -11105,12 +11098,10 @@ fm_directory_view_class_init (FMDirectoryViewClass *klass) klass->supports_properties = real_supports_properties; klass->supports_zooming = real_supports_zooming; klass->using_manual_layout = real_using_manual_layout; - klass->merge_menus = real_merge_menus; - klass->unmerge_menus = real_unmerge_menus; - klass->update_menus = real_update_menus; -#if !GTK_CHECK_VERSION(3, 21, 0) - klass->set_is_active = real_set_is_active; -#endif + klass->merge_menus = real_merge_menus; + klass->unmerge_menus = real_unmerge_menus; + klass->update_menus = real_update_menus; + klass->set_is_active = real_set_is_active; /* Function pointers that subclasses must override */ EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, add_file); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, bump_zoom_level); @@ -11118,9 +11109,7 @@ fm_directory_view_class_init (FMDirectoryViewClass *klass) EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, can_zoom_out); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, clear); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, file_changed); -#if !GTK_CHECK_VERSION(3, 21, 0) - EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_background_widget); -#endif + EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_background_widget); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_selection); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_selection_for_file_transfer); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_item_count); diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c index ec167810..9c187466 100644 --- a/src/file-manager/fm-icon-view.c +++ b/src/file-manager/fm-icon-view.c @@ -30,9 +30,7 @@ #include "fm-desktop-icon-view.h" #include "fm-error-reporting.h" #include -#if !GTK_CHECK_VERSION(3, 21, 0) #include -#endif #include #include #include @@ -45,9 +43,7 @@ #include #include #include -#if !GTK_CHECK_VERSION(3, 21, 0) #include -#endif #include #include #include @@ -1281,7 +1277,6 @@ fm_icon_view_begin_loading (FMDirectoryView *view) /* kill any sound preview process that is ongoing */ preview_audio (icon_view, NULL, FALSE); -#if !GTK_CHECK_VERSION(3, 21, 0) /* FIXME bugzilla.gnome.org 45060: Should use methods instead * of hardcoding desktop knowledge in here. */ @@ -1305,7 +1300,6 @@ fm_icon_view_begin_loading (FMDirectoryView *view) caja_connect_background_to_file_metadata (icon_container, file, default_action); } -#endif /* Set up the zoom level from the metadata. */ if (fm_directory_view_supports_zooming (FM_DIRECTORY_VIEW (icon_view))) { @@ -1511,7 +1505,6 @@ fm_icon_view_can_zoom_out (FMDirectoryView *view) > CAJA_ZOOM_LEVEL_SMALLEST; } -#if !GTK_CHECK_VERSION(3, 21, 0) static GtkWidget * fm_icon_view_get_background_widget (FMDirectoryView *view) { @@ -1519,7 +1512,6 @@ fm_icon_view_get_background_widget (FMDirectoryView *view) return GTK_WIDGET (get_icon_container (FM_ICON_VIEW (view))); } -#endif static gboolean fm_icon_view_is_empty (FMDirectoryView *view) @@ -3199,9 +3191,7 @@ fm_icon_view_class_init (FMIconViewClass *klass) fm_directory_view_class->clear = fm_icon_view_clear; fm_directory_view_class->end_loading = fm_icon_view_end_loading; fm_directory_view_class->file_changed = fm_icon_view_file_changed; -#if !GTK_CHECK_VERSION(3, 21, 0) fm_directory_view_class->get_background_widget = fm_icon_view_get_background_widget; -#endif fm_directory_view_class->get_selected_icon_locations = fm_icon_view_get_selected_icon_locations; fm_directory_view_class->get_selection = fm_icon_view_get_selection; fm_directory_view_class->get_selection_for_file_transfer = fm_icon_view_get_selection; diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c index 163f1be8..4b155f27 100644 --- a/src/file-manager/fm-list-view.c +++ b/src/file-manager/fm-list-view.c @@ -47,9 +47,7 @@ #include #include #include -#if !GTK_CHECK_VERSION(3, 21, 0) #include -#endif #include #include #include @@ -2121,13 +2119,11 @@ fm_list_view_file_changed (FMDirectoryView *view, CajaFile *file, CajaDirectory } } -#if !GTK_CHECK_VERSION(3, 21, 0) static GtkWidget * fm_list_view_get_background_widget (FMDirectoryView *view) { return GTK_WIDGET (view); } -#endif static void fm_list_view_get_selection_foreach_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) @@ -3329,9 +3325,7 @@ fm_list_view_class_init (FMListViewClass *class) fm_directory_view_class->click_policy_changed = fm_list_view_click_policy_changed; fm_directory_view_class->clear = fm_list_view_clear; fm_directory_view_class->file_changed = fm_list_view_file_changed; -#if !GTK_CHECK_VERSION(3, 21, 0) fm_directory_view_class->get_background_widget = fm_list_view_get_background_widget; -#endif fm_directory_view_class->get_selection = fm_list_view_get_selection; fm_directory_view_class->get_selection_for_file_transfer = fm_list_view_get_selection_for_file_transfer; fm_directory_view_class->get_item_count = fm_list_view_get_item_count; -- cgit v1.2.1