Progress report for period June 12th - June 25th
Before I considered applying for SoC this summer, I talked to potential mentors and mentioned that my studies finish on June 15th, and they said it was no problem. Although my initial schedule did consider first two weeks, where it mentioned that during that period, code should be analysed and it should be discussed what should be done. I tried to stick to the schedule as much as possible, but in the end, it did not work as I planned. So, starting at June 16th, I started to become more involved with the discussion, as well as some coding. That covers "why you didn't blog earlier?" question someone might ask.
During the coding period, I discovered that MetaDisplay, main GObject of Mutter had a lot of X11 specific fields, so I had to move them into something else, which we (mentors and myself) decided to call MetaX11Display. A lot of code had to be modified, and that had to be carefully approached, so nothing got broken in the process. The "coding" I had done was just moving stuff around, between files, adjusting for new structure fields, and so on. It was, I might say, a rather boring experience. But, someone had to do it, as it is a requisite for all of my future work. Note that even at the moment of writing, all of X11 specifics have not been ironed out. While trying to efficiently split MetaDisplay, I stumbled upon MetaScreen, a structure which previously used to contain reference to X Screen it was managing. The comments in the code pointed out that, while Mutter used to contain more than one X Screen, nowadays it manages only one. So, again, we realized that structure needs to be split somehow, since it contains (as expected) lot of X11 specifics, but also some code that can be used for Wayland environment. The decision was made to move the fields into MetaDisplay and MetaX11Display, depending in which environment it might be useful. Sadly, I did not get around to start disassembling the screen management code in this period. So, that's what my next adventure will be all about. All of the work that was done is available on my Github repository .
This covers the work of past, say, 10 days or so(?), given that I started working very late. I sure hope this would not pose a problem for evaluation, which has already started (yay, I'm late!). For some reason, this blog has not been added to Planet GNOME, so this blog post won't appear on there.
Until next writing.