Difference between revisions of "Features/GTK3/Development"

From Sugar Labs
< Features‎ | GTK3
Jump to navigation Jump to search
 
(21 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
== Repos ==
 
== Repos ==
  
* http://git.sugarlabs.org/~erikos/sugar-toolkit/sugar-toolkit-gtk3 - branch 'master': 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.
* http://git.sugarlabs.org/~erikos/sugar/sugar-gtk3 - branch 'master': we are not (yet) porting the sugar shell to GTK3, but a handful of structural changes are needed.
+
* 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 'gtk3': mainline sugar-artwork repo containing the new theme work (folder GTK3)
+
* http://git.sugarlabs.org/sugar-artwork - branch 'master': mainline sugar-artwork repo containing the new theme work (folder gtk3)
* http://git.sugarlabs.org/~dsd/browse/browse-gtk3 - branch 'master': Browse port to 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/hello-world - branch 'master': hello-world ported to GTK3
* http://cgit.collabora.com/git/user/rgs/abacus-gtk3/ - branch 'master': Abacus ported to GTK3 and to use cairo for drawing
+
* 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.
  
Compile/install a fixed pygobject with [https://bugzilla.gnome.org/show_bug.cgi?id=662994 this chain-up fix]. F16 build available from http://koji.fedoraproject.org/koji/taskinfo?taskID=3473257
+
== Pending work ==
  
Apply this patch to sugar-jhbuild: http://dev.laptop.org/~dsd/20111029/sugar-jhbuild-sugar-toolkit-gtk3.patch and build the new GTK3 based sugar toolkit:
+
* 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===
./sugar-jhbuild build sugar-toolkit-gtk3
+
* 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
</pre>
+
* toolbars: finish the sub-toolbar look-alike like in gtk2
 +
* finish porting the 'do_expose_event' calls to 'do_draw' calls
  
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]
<pre>
+
* finish [[Features/GTK3/Theme|the theme]]
cd source/sugar-toolkit
 
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
 
make install
 
cd ../..
 
</pre>
 
 
 
And similarly for sugar:
 
 
 
<pre>
 
cd source/sugar
 
git remote add -f erikos-gtk3 git://git.sugarlabs.org/~erikos/sugar/sugar-gtk3.git
 
git checkout -b gtk3 erikos-gtk3/master
 
make install
 
cd ../..
 
</pre>
 
 
 
Select gtk3 brach of sugar-artwork for the new theme:
 
 
 
<pre>
 
cd source/sugar-artwork
 
git pull
 
git checkout gtk3
 
make install
 
cd ../..
 
</pre>
 
  
 
== Pending upstream work ==
 
== Pending upstream work ==
Line 57: Line 34:
 
All of these have been worked around (or will be worked around) for now, at the sugar level.
 
All of these have been worked around (or will be worked around) for now, at the sugar level.
  
* 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/''
+
* 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
* enable GDK introspection access to X11 window properties (Raul)
+
** 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)
 
* 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''
 
* 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
 
* 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 06: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.