diff options
Diffstat (limited to 'savers')
-rw-r--r-- | savers/floaters.c | 5 | ||||
-rw-r--r-- | savers/gs-theme-engine.c | 33 |
2 files changed, 10 insertions, 28 deletions
diff --git a/savers/floaters.c b/savers/floaters.c index b9291dc..fc83fae 100644 --- a/savers/floaters.c +++ b/savers/floaters.c @@ -1050,8 +1050,9 @@ screen_saver_update_state (ScreenSaver *screen_saver, screen_saver_floater_update_state (screen_saver, floater, time); - if (gtk_widget_get_realized (screen_saver->drawing_area) - && (floater->bounds.width > 0) && (floater->bounds.height > 0)) + if (screen_saver->drawing_area != NULL && + gtk_widget_get_realized (screen_saver->drawing_area) && + (floater->bounds.width > 0) && (floater->bounds.height > 0)) { gint size; size = CLAMP ((int) (FLOATER_MAX_SIZE * floater->scale), diff --git a/savers/gs-theme-engine.c b/savers/gs-theme-engine.c index 42097df..84c3682 100644 --- a/savers/gs-theme-engine.c +++ b/savers/gs-theme-engine.c @@ -107,34 +107,15 @@ gs_theme_engine_get_property (GObject *object, } } -static void -gs_theme_engine_clear (GtkWidget *widget) -{ - GdkRGBA color = { 0.0, 0.0, 0.0, 1.0 }; - GtkStateFlags state; - - g_return_if_fail (GS_IS_THEME_ENGINE (widget)); - - if (! gtk_widget_get_visible (widget)) - { - return; - } - - state = gtk_widget_get_state_flags (widget); - gtk_widget_override_background_color (widget, state, &color); - gdk_window_set_background_rgba (gtk_widget_get_window (widget), &color); - gdk_flush (); -} - static gboolean -gs_theme_engine_real_map_event (GtkWidget *widget, - GdkEventAny *event) +gs_theme_engine_real_draw (GtkWidget *widget, + cairo_t *cr) { - gboolean handled = FALSE; - - gs_theme_engine_clear (widget); + cairo_set_operator (cr, CAIRO_OPERATOR_OVER); + cairo_set_source_rgb (cr, 0, 0, 0); + cairo_paint (cr); - return handled; + return FALSE; } static void @@ -149,7 +130,7 @@ gs_theme_engine_class_init (GSThemeEngineClass *klass) object_class->get_property = gs_theme_engine_get_property; object_class->set_property = gs_theme_engine_set_property; - widget_class->map_event = gs_theme_engine_real_map_event; + widget_class->draw = gs_theme_engine_real_draw; g_type_class_add_private (klass, sizeof (GSThemeEnginePrivate)); } |