static void gimp_display_shell_check_notify_handler (GObject *config, GParamSpec *param_spec, GimpDisplayShell *shell) { GimpCanvasPaddingMode padding_mode; GimpRGB padding_color; if (shell->checkerboard) { cairo_pattern_destroy (shell->checkerboard); shell->checkerboard = NULL; } gimp_display_shell_get_padding (shell, &padding_mode, &padding_color); switch (padding_mode) { case GIMP_CANVAS_PADDING_MODE_LIGHT_CHECK: case GIMP_CANVAS_PADDING_MODE_DARK_CHECK: gimp_display_shell_set_padding (shell, padding_mode, &padding_color); break; default: break; } gimp_display_shell_expose_full (shell); }
void gimp_display_shell_canvas_realize (GtkWidget *canvas, GimpDisplayShell *shell) { GimpCanvasPaddingMode padding_mode; GimpRGB padding_color; GtkAllocation allocation; gtk_widget_grab_focus (canvas); gimp_display_shell_get_padding (shell, &padding_mode, &padding_color); gimp_display_shell_set_padding (shell, padding_mode, &padding_color); gtk_widget_get_allocation (canvas, &allocation); gimp_display_shell_title_update (shell); shell->disp_width = allocation.width; shell->disp_height = allocation.height; /* set up the scrollbar observers */ g_signal_connect (shell->hsbdata, "value-changed", G_CALLBACK (gimp_display_shell_hadjustment_changed), shell); g_signal_connect (shell->vsbdata, "value-changed", G_CALLBACK (gimp_display_shell_vadjustment_changed), shell); g_signal_connect (shell->hsb, "change-value", G_CALLBACK (gimp_display_shell_hscrollbar_change_value), shell); g_signal_connect (shell->vsb, "change-value", G_CALLBACK (gimp_display_shell_vscrollbar_change_value), shell); /* allow shrinking */ gtk_widget_set_size_request (GTK_WIDGET (shell), 0, 0); shell->xfer = gimp_display_xfer_realize (GTK_WIDGET(shell)); }