Difference between revisions of "Features/GTK3/Development"

From Sugar Labs
< Features‎ | GTK3
Jump to navigation Jump to search
 
(34 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
== Repos ==
 
== Repos ==
  
* http://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3 - this is the GTK3 port of sugar-toolkit
+
* http://git.sugarlabs.org/sugar-toolkit-gtk3 - branch 'master': this is the GTK3 port of sugar-toolkit
* http://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3 branch sucrose-0.94 - the GTK2 version of sugar-toolkit needs a handful of structure changes prompted by our GTK3 work. They are being committed here.
+
* http://git.sugarlabs.org/sugar-toolkit - branch 'master': the GTK2 version of sugar-toolkit needs a handful of structure changes prompted by our GTK3 work. They have been committed here.
* Mainline sugar-artwork repo, branch 'gtk3'
+
* http://git.sugarlabs.org/sugar - branch 'master': we are not (yet) porting the sugar shell to GTK3, but a handful of structural changes were needed.
 +
* http://git.sugarlabs.org/sugar-artwork - branch 'master': mainline sugar-artwork repo containing the new theme work (folder gtk3)
 +
* http://git.sugarlabs.org/browse - branch 'master': Browse port to GTK3
 +
* http://git.sugarlabs.org/read - branch 'master': Read port to GTK3
 +
* http://git.sugarlabs.org/hello-world - branch 'master': hello-world ported to GTK3
 +
* http://git.sugarlabs.org/~walter/abacus/abacus-gtk3 - branch 'abacus-gtk3': Abacus ported to GTK3 and to use cairo for drawing
  
 
== jhbuild setup ==
 
== jhbuild setup ==
  
Start with a working "normal" sugar-jhbuild installation.
+
All the changes have been landed in the master branches. Make sure you have the sugar-toolkit-gtk3 repository checked out and installed. There has been a fix in pygobject. Either compile/install the master branch or in F16 you can install as well the [http://koji.fedoraproject.org/koji/buildinfo?buildID=279522 recent pygobject3] release.
  
Apply this patch to sugar-jhbuild: http://dev.laptop.org/~dsd/20111029/sugar-jhbuild-sugar-toolkit-gtk3.patch
+
== Pending work ==
  
Select gtk3 brach of sugar-artwork for the new theme:
+
* shortcuts in palettes: button tooltips should show the shortcut, if any, next to the tip.  Like in the Stop button, "Stop Ctrl+Q"
 +
* title in menus (e.g. 'Back' in the Browse back button palette)
  
<pre>
+
===sugar-toolkit-gtk3===
cd source/sugar-artwork
+
* take screenshot: the code has to be ported to cairo, see [http://git.sugarlabs.org/browse/mainline/blobs/master/webactivity.py#line541 _get_screenshot in Browse] as an example
git pull
+
* toolbars: finish the sub-toolbar look-alike like in gtk2
git checkout gtk3
+
* finish porting the 'do_expose_event' calls to 'do_draw' calls
make install
 
cd ../..
 
</pre>
 
  
The sugar-toolkit gtk2 version needs some modifications for some restructuring that gtk3 work has prompted. Check out our branch where this happens;
+
===sugar-artwork===
 +
* [http://bugs.sugarlabs.org/ticket/3143 deprectate icon-slicer]
 +
* finish [[Features/GTK3/Theme|the theme]]
  
<pre>
+
== Pending upstream work ==
git remote add -f gtk2-mods-for-gtk3 git://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3.git
+
 
git checkout -b gtk2-mods-for-gtk3 gtk2-mods-for-gtk3/sucrose-0.94
+
All of these have been worked around (or will be worked around) for now, at the sugar level.
make install
+
 
</pre>
+
* gobject introspection bindings for librsvg: https://bugzilla.gnome.org/show_bug.cgi?id=663049 ''Solved: fix has been pushed to librsvg master in http://git.gnome.org/browse/librsvg/'', is in  2.35.0
 +
** related gobject-introspection fix for libxml2 https://bugzilla.gnome.org/show_bug.cgi?id=663048 ''Solved: fix has been pushed to gobject introspection 42e9ea858c454646ecf5d4b9579ea7a2ce4192fd''
 +
* enable GDK introspection access to X11 window properties: https://bugzilla.gnome.org/show_bug.cgi?id=663261. [http://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3/commit/c22ec39980f47e78f2341da54f13324333e3d2f0 current workaround patch in sugar-toolkit ] (Raul) 
 +
* extend gio mime type API so that we can drop our xdgmime copy (e.g. need to be able to get default file extension for a given mime type)
 +
* chaining up in vfuncs: https://bugzilla.gnome.org/show_bug.cgi?id=662994 ''Solved: fix has been pushed to pygobject master  http://git.gnome.org/browse/pygobject/commit/?id=2fd3aa9d4ca0906a5e609845ee500ba72e358f94''
 +
* implementing GtkContainer::forall: https://bugzilla.gnome.org/show_bug.cgi?id=644926, also needs https://bugzilla.gnome.org/show_bug.cgi?id=663052
 +
* missing parts in pango introspection, [https://bugzilla.gnome.org/show_bug.cgi?id=646788 646788] does contain what we need (there are quite a few introspection related pango bugs open atm, from a quick look I found  https://bugzilla.gnome.org/show_bug.cgi?id=660070, https://bugzilla.gnome.org/show_bug.cgi?id=627973, https://bugzilla.gnome.org/show_bug.cgi?id=645792, https://bugzilla.gnome.org/show_bug.cgi?id=645871, https://bugzilla.gnome.org/show_bug.cgi?id=646788 even with patches attached already for a while)
 +
* GLib.utf8_validate does segfault: https://bugzilla.gnome.org/show_bug.cgi?id=672889
 +
* Can not listen to signals in subclassed subclasses: https://bugzilla.gnome.org/show_bug.cgi?id=672864

Latest revision as of 07:43, 27 March 2012

This page includes repo details and how to get sugar-jhbuild set up with the GTK3 work.

Repos

jhbuild setup

All the changes have been landed in the master branches. Make sure you have the sugar-toolkit-gtk3 repository checked out and installed. There has been a fix in pygobject. Either compile/install the master branch or in F16 you can install as well the recent pygobject3 release.

Pending work

  • shortcuts in palettes: button tooltips should show the shortcut, if any, next to the tip. Like in the Stop button, "Stop Ctrl+Q"
  • title in menus (e.g. 'Back' in the Browse back button palette)

sugar-toolkit-gtk3

  • take screenshot: the code has to be ported to cairo, see _get_screenshot in Browse as an example
  • toolbars: finish the sub-toolbar look-alike like in gtk2
  • finish porting the 'do_expose_event' calls to 'do_draw' calls

sugar-artwork

Pending upstream work

All of these have been worked around (or will be worked around) for now, at the sugar level.