This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

GNOME Goal: Use cairo instead deprecated GDK api

Introduction

In GTK+ 3, the GDK drawing API (which closely mimics the X drawing API, which is itself modeled after PostScript) has been removed. All drawing in GTK+ 3 is done via cairo.

The GdkGC and GdkImage objects, as well as all the functions using them are gone. This includes the gdk_draw_ family of functions like gdk_draw_rectangle() and gdk_draw_drawable(). As GdkGC is roughly equivalent to cairo_t and GdkImage was used for drawing images to GdkDrawables, which cairo supports automatically, a transition is usually straightforward.

Guidelines

Follow the tips of the GTK+ documentation

Comments before approval

{i} Add your comments to this goal proposal here

Status of this goal

/!\ Note: Updated automatical stats can be found at:
http://people.gnome.org/~fpeters/reports/gdkdraw.html
http://people.gnome.org/~fpeters/reports/gdkimage.html
http://people.gnome.org/~fpeters/reports/gdkgc.html

{i} Tip: If you choose to work on a module, create the bug report on the GNOME bugzilla for the relevant module, and make it block bug 626688. This way people will know someone already works on it, and won't duplicate the work you're doing.

State

Markup

todo

<: #ff8080> todo

patch

<: #ffcc50> [[GnomeBug:xxxxx|patch]]

done

<: #80ff80> [[GnomeBug:xxxxx|done]]

not needed

<: #80ff80> not needed

Above are the states and corresponding markup to update the modules state table below.

Tarball

Status

Desktop

cheese

gtk_draw

dasher

GdkGC gtk_draw

ekiga

GdkGC gtk_draw

epiphany

GdkGC gtk_draw

eog

done gtk_draw

evince

not needed

evolution

GdkGC gtk_draw

gnome-applets

GdkGC gtk_draw

gnome-bluetooth

fixed in master

gnome-control-center

GdkGC gtk_draw

gnome-games

GdkImage GdkGC gtk_draw

gnome-desktop

GdkGC gtk_draw

gnome-mag

GdkImage GdkGC gtk_draw

gnome-panel

GdkGC gtk_draw

gnome-power-manager

GdkGC gtk_draw

gnome-screensaver

done

gnome-settings-daemon

fixed in master

gnome-system-monitor

GdkGC gtk_draw

gnome-system-tools

GdkGC gtk_draw

gnome-utils

GdkGC gtk_draw

gtk-engines

GdkGC gtk_draw

gtkhtml

GdkGC gtk_draw

gucharmap

GdkGC gtk_draw

libgnomekbd

gtk_draw

librsvg

GdkGC gtk_draw

libwnck

GdkGC gtk_draw

metacity

GdkGC gtk_draw

mousetweaks

GdkGC gtk_draw

mutter

GdkGC gtk_draw

nautilus

GdkGC gtk_draw

totem

gtk_draw

vinagre

GdkGC gtk_draw

Development Tools

anjuta

GdkGC gtk_draw

gdl

GdkGC gtk_draw

glade3

GdkGC gtk_draw

gnome-devel-docs

GdkGC gtk_draw

External Dependencies

gtk-vnc

GdkImage GdkGC gtk_draw

libgda

GdkGC gtk_draw

poppler

GdkGC gtk_draw

only test programs, work around with --disable-gtk-test

webkit

fixed in 1.3.4

Other

GParted

not needed

Planner

to do

xchat-gnome

GdkImage


2024-10-23 11:17