Posts

Showing posts from August, 2017

Progress Report July 31st - August 13th

Some may notice that there's a week missing since my last progress report. That week was GSoC second evaluation week, and my mentors were notified in advance why I was absent during that week.
Since last time I posted, I have completed my primary goal to make mutter start without Xwayland present. Note however, that this is just like I said, "make mutter *start* without X11 present", and nothing else. Window managing is a bit mess, and that was set as my second goal, if the primary one was accomplished much earlier in the SoC. So yes, you can start but you can't use mutter without X11 if you use my latest work.
So, what remained to be done since the last time I posted? Not much. Workspace management had lot of X11 specifics, such as getting workspace layout, names and such from X11 atoms. It was easily fixed by splitting X11 specific code to meta-x11-display.c and making that code run when or after MetaX11Display was created, either in meta_x11_display_new (), or us…

Documented Mutter API changes after main GSoC goal was reached

A new object, MetaX11Display, was added, and owned by MetaDisplay. It holds X11 specific objects of MetaDisplay, as well MetaScreen. Creating and destroying the object should be possible all the time, anytime. Helper function, meta_get_x11_display (MetaDisplay *) was added to retrieve MetaX11Display object currently owned by MetaDisplay. All public X11 functions referenced below are defined inside meta/meta-x11-display.h
Second new object, MetaWorkspaceManager, was also introduced to hold workspace management parts of MetaScreen, to avoid cluttering MetaDisplay a lot. It is owned by MetaDisplay, and can be retrieved by using meta_display_get_workspace_manager (MetaDisplay *). All public functions referenced below are defined inside meta/meta-workspace-manager.h
MetaScreen, which previously had an instance for all of the screens mutter managed became an single object nowadays, as it only manages one screen. Because of that, MetaScreen was removed, and objects it managed were split bet…