From 438682bef1a8fea49b4c6972350bede1bfad69d0 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 | 12 --- src/file-manager/fm-icon-view.c | 10 --- src/file-manager/fm-list-view.c | 6 -- 6 files changed, 178 deletions(-) diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c index 21466f0b..f6021900 100644 --- a/libcaja-private/caja-icon-container.c +++ b/libcaja-private/caja-icon-container.c @@ -4529,15 +4529,12 @@ 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, 22, 0) /* Ensure that the desktop window is native so the background set on it is drawn by X. */ if (container->details->is_desktop) { gdk_x11_window_get_xid (gtk_layout_get_bin_window (GTK_LAYOUT (widget))); } -#endif /* Set up DnD. */ caja_icon_dnd_init (container); @@ -6072,14 +6069,12 @@ popup_menu (GtkWidget *widget) return TRUE; } -#if !GTK_CHECK_VERSION (3, 22, 0) static void draw_canvas_background (EelCanvas *canvas, cairo_t *cr) { /* Don't chain up to the parent to avoid clearing and redrawing */ } -#endif static void grab_notify_cb (GtkWidget *widget, @@ -6525,9 +6520,7 @@ caja_icon_container_class_init (CajaIconContainerClass *class) gtk_widget_class_set_accessible_type (widget_class, caja_icon_container_accessible_get_type ()); canvas_class = EEL_CANVAS_CLASS (class); -#if !GTK_CHECK_VERSION (3, 22, 0) canvas_class->draw_background = draw_canvas_background; -#endif class->start_interactive_search = caja_icon_container_start_interactive_search; gtk_widget_class_install_style_property (widget_class, diff --git a/src/caja-desktop-window.c b/src/caja-desktop-window.c index c7b55635..23d6809a 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, 22, 0) -#define MATE_DESKTOP_USE_UNSTABLE_API -#include -#endif struct CajaDesktopWindowDetails { gulong size_changed_id; gboolean loaded; -#if GTK_CHECK_VERSION (3, 22, 0) - gboolean composited; - cairo_surface_t *surface; -#endif }; G_DEFINE_TYPE (CajaDesktopWindow, caja_desktop_window, CAJA_TYPE_SPATIAL_WINDOW); -#if GTK_CHECK_VERSION (3, 22, 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 /* GTK_CHECK_VERSION (3, 22, 0) */ - static void caja_desktop_window_init (CajaDesktopWindow *window) { @@ -171,11 +60,6 @@ caja_desktop_window_init (CajaDesktopWindow *window) context = gtk_widget_get_style_context (GTK_WIDGET (window)); gtk_style_context_add_class (context, "caja-desktop-window"); -#if GTK_CHECK_VERSION (3, 22, 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 @@ -281,13 +165,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, 22, 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 @@ -353,21 +230,12 @@ realize (GtkWidget *widget) { CajaDesktopWindow *window; CajaDesktopWindowDetails *details; -#if GTK_CHECK_VERSION (3, 22, 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, 22, 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); @@ -399,19 +267,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, 22, 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, 22, 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 fc39497c..a327ac9c 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, 22, 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 706180b6..16a53780 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, 22, 0) #include -#endif #include #include #include @@ -419,9 +417,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, 22, 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) @@ -3616,7 +3612,6 @@ fm_directory_view_can_zoom_out (FMDirectoryView *view) can_zoom_out, (view)); } -#if !GTK_CHECK_VERSION (3, 22, 0) GtkWidget * fm_directory_view_get_background_widget (FMDirectoryView *view) { @@ -3642,7 +3637,6 @@ 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, @@ -7670,11 +7664,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, 22, 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; } @@ -11028,9 +11020,7 @@ fm_directory_view_class_init (FMDirectoryViewClass *klass) klass->merge_menus = real_merge_menus; klass->unmerge_menus = real_unmerge_menus; klass->update_menus = real_update_menus; -#if !GTK_CHECK_VERSION (3, 22, 0) klass->set_is_active = real_set_is_active; -#endif /* 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); @@ -11038,9 +11028,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, 22, 0) EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_background_widget); -#endif 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 8aec9188..5e206b24 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, 22, 0) #include -#endif #include #include #include @@ -45,9 +43,7 @@ #include #include #include -#if !GTK_CHECK_VERSION (3, 22, 0) #include -#endif #include #include #include @@ -1273,7 +1269,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, 22, 0) /* FIXME bugzilla.gnome.org 45060: Should use methods instead * of hardcoding desktop knowledge in here. */ @@ -1296,7 +1291,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))) @@ -1503,7 +1497,6 @@ fm_icon_view_can_zoom_out (FMDirectoryView *view) > CAJA_ZOOM_LEVEL_SMALLEST; } -#if !GTK_CHECK_VERSION (3, 22, 0) static GtkWidget * fm_icon_view_get_background_widget (FMDirectoryView *view) { @@ -1511,7 +1504,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) @@ -3173,9 +3165,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, 22, 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 251f4a93..7ff712eb 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, 22, 0) #include -#endif #include #include #include @@ -2119,13 +2117,11 @@ fm_list_view_file_changed (FMDirectoryView *view, CajaFile *file, CajaDirectory } } -#if !GTK_CHECK_VERSION (3, 22, 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) @@ -3290,9 +3286,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, 22, 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