[Sugar-devel] [PATCH sugar-toolkit-gtk3] sugar-activity: import and make independent of sugar-toolkit GTK versions

Simon Schampijer simon at schampijer.de
Tue Dec 13 15:32:01 EST 2011


On 13/12/11 16:47, Daniel Drake wrote:
> As we move to adding support for a second UI toolkit (GTK+ 3.x),
> the sugar-activity binary used by all activities must become
> backend-toolkit-independent. It would be wasteful to have two backend
> toolkits loaded in memory, and in the GTK2/GTK3 case, it is impossible
> (importing both results in an instant crash).
>
> To achieve this, we split the existing sugar-toolkit activity/main.py:main()
> functionality into two parts, moving it into the sugar-activity binary and
> the Activity class as follows:
>   1. All toolkit-specific stuff is moved into the Activity class (i.e.
>     everything that interacts with GTK)
>   2. Everything that can be reasonably/easily moved into the Activity class
>     is also moved.
>   3. What remains is the stuff that is inherently involved with the
>     construction of the Activity object, not related to UI toolkits. This
>     is moved into the sugar-activity binary.
>
> main.py is then removed from sugar-toolkit, and sugar-activity is moved
> from sugar to sugar-toolkit-gtk3 in order to keep toolkit-related code
> with the toolkit itself.
>
> With this work done, the one remaining question is how to invoke the main
> loop. An optional run_main_loop() method is added to the activity class,
> for GTK2 this will run the GTK2 main loop, for GTK3 the GTK3 main loop will
> be run, etc.
>
> Signed-off-by: Daniel Drake<dsd at laptop.org>

Looks good, thanks for updating the patch.

Please push with the appropriate sugar-toolkit-gtk2 patch.
    Simon




More information about the Sugar-devel mailing list