Long overdue entry (yet again), but hopefully not really too late. For the people living in a cave: we released GTK+ 2.10 right after GUADEC, together with GLib 2.12. You can find the tarballs at the usual place. At GUADEC we had a gtk-dev meeting in real life. I took some notes which you can find here. It includes the plans for GTK+ 2.12 (I will update the website soon, promised). There's some nice stuff coming up for 2.12 and we hope to release 2.12.0 around January 2007. There were also a couple of GTK+ related presentations at GUADEC; Alex and John talked about the new printing API, Emmanuele about the new recent files API, Mitch about using GTypeModule, Tim and I talked about GTK+ 2.10 and friends in general. You can find links to the slides of those talks at our new papers and slides page over at gtk.org. Also, 3.0 is not really in sight at this moment. We created a tracker bug (#347771) to keep track of bugs which require incompatible changes. I don't have much more to tell, life after 2.10.0 is not much more than fixing bugs and waiting for the 2.10 branch to be created ;). I will be back once the first 2.12 features are trickling in.
Category: Uncategorized
GTK+ 2.10 / Project Ridley Progress Blog (Episode 5)
Now the first development release, 2.9.0, has been released, I guess it is time for a new entry (: We've been pretty busy and a bunch of big features landed:
- The recent files code landed. (Has a nice test app called testrecentchooser in the tests/ subdirectory).
- The printing branch has been merged to HEAD (see Alex' blog entry). Also has a nice test app in the tests/, called print-editor.
- The asynchronous file chooser branch (kris-async-branch) has also been merged to HEAD.
- Also the federico-filename-branch has been merged to HEAD. There's a button left of the path bar now, when clicked it will present a location entry in the file chooser dialog.
Also some smaller changes:
- Yet another cell renderer got added: GtkCellRendererSpin. I guess the name says enough, you can change the value of this cell with a spin button.
- Dialogs have been made more consistent with the HIG. (See bugzilla #163850).
- You can now cancel drags of scrollbars and other GtkRange derivatives with ESC.
- The GIF loader in gdk-pixbuf now only loads the first frame if you don't ask for an animation. You will only notice this change when you are working with multi-MB animated GIFs (for example byzanz screencasts).
- GtkTreeView got some new properties, which allow you to customize it a bit more. The properties in question are “show-expanders” and “level-indentation”. You can, for example, use these to do grouping as demonstrated in the testgrouping app in the tests/ subdirectory.
- The discussion on the new tooltips API continued, read the latest thread here.
- And a lot of bug fixes, really.
Like Emmanuele said earlier, you can find all feature additions and improvements in the NEWS file. The NEWS file is not as detailed as it usually is, because there are way too many changes from GTK+ 2.8.x to 2.9.0. Note that with GTK+ 2.9.0 the binary interface version has been bumped to 2.10.0 (from 2.4.0). This means that all third party modules (theme engines, input method modules, pixbuf loaders, file system backends) will have to be rebuilt so they are installed in the right place. Sorry for the somewhat short entry, but I am really going to stop here before it gets out of hand ;)
GTK+ 2.10 / Project Ridley Progress Blog (Episode 4)
Yes, clearly time for a new entry again. As always, lots of things going on, we're still trying to get everything ready in time for a release in May. This entry will be a quick update of what happened since half of January. Those interested in the big picture / small summary might be interested in the slides of my short talk at FOSDEM 1.5 weeks ago. There isn't much new in there for the regular readers of these blog entries. Also, GLib 2.10.0 got released meanwhile, and we are already at GLib 2.10.1. Pango 1.12.0 is supposed to be released soon, lastest release is 1.11.99. Ok, on to the features:
- GtkAssistant, the replacement for GnomeDruid*, landed on HEAD in January. Seems to be in good shape, packed with nice features and a fun test application.
- Another new widget from libegg, now named GtkLinkButton, landed. After a short discussion a global hook function was added to set up the URI handler. Using this hook every platform can setup a nicely working URI handler.
- A “touchscreen mode” was added to GTK+. It's an XSetting, and when enabled widgets can take this into account and change their behaviour, since manipulating items with a touchscreen is a little different than when using a mouse.
- The DirectFB backend landed on HEAD! Sweet!
- Notebook tab drag-and-drop. Yay! Finally! And it looks/works awesome too.
- A scroll menu patch went in, which gets rid of the blank area which sometimes appeared in for example popup menus and annoyed/confused a lot of people.
- Another nice little API addition: input shaping, which is really support for the seperate mask for input which is provided by XShape 1.1.
- Rich text copy/paste, copy and paste text complete with all formatting and images to/from GtkTextViews. Landed today!
- Short tree view update, it's now possible to provide your own positioning function for the search dialog, also you can provide your own entry (packed somewhere in your interface) to be used as search dialog. Selected rows are now also row hinted. There's a bunch of cool tree view stuff coming up, more on that later.
- The recent files code is nearing completion and will undergo review soon. Hopefully it will land within the coming two weeks.
- Lots of progress has been made on printing, detailed mail to gtk-devel-list.
- (I'm still thinking about tooltips, proposal and discussion is here and will come up with an updated proposal soon. Really! Promised!)
- And of course, bug fixes all over the place.
Sorry for the somewhat rushed entry, but need to go back coding. I really think this GTK+ release is going to rock, don't you?
could we just quit stressing and relax now?
yay, fosdem is already coming weekend. i will be there, probably mostly be hanging out in the gnome room (surprise!!) over day, and in some pub at night. also, i will be giving a talk on ridley and gtk+ 2.10 on sunday in the gnome room. i guess i will put the slides online after the conference and hope they will make up a next blog entry on ridley/gtk+2.10, since i didnt have time to write a normal one yet. my apologies to all people who responded to my tooltips mail on gtk-devel-list; i didnt have the time/inspiration yet to reply. i will soon! a little over two weeks ago i finally moved to my new place (away from my parents). it's almost done, today i finally arranged some better lighting from the ceiling and a new fridge arrived (you don't want to know how dirty the old ones were. well, actually, you don't want to know how dirty the entire kitchen was before i moved in. really). two more ikea boxes to put in the garbage container and then it's in a good enough shape for a while. living much closer to university means that you don't have to deal with the public transit system on a daily basis anymore. and i figured that that means less stress. the people here are so fucking stressed out that it is not even funny anymore (“want to be the first person to enter the train, even before all people who want to get out actually got out” or for a bicycle rider in leiden “let's try to run as many red lights as possible, so i will be home one full minute earlier”, i don't run red lights though). at least my stress level decreased.
GTK+ 2.10 / Project Ridley Progress Blog (Episode 3)
Here (finally!) is a new episode of the irregular GTK+ 2.10 progress blog. More than three months passed since the latest blog entry (posted on October, 4th, last year), my apologies for that, I was just really busy with some projects at university, etc, etc. I think almost everybody noticed the totally cool optimization frenzy at the end of last year. This moved the focus to pango and glib for a while and because of that Project Ridley stalled a bit. However, this doesn't mean nothing happened at the GTK+ front! And we're getting back to Ridley now, really. Well, let's start then with the optimizations, since people focussed on that for a while. A lot of time was spent on profiling pango, I think Federico's “Profiling the file chooser” blog entries give a nice summary on that: [part 5] [part 6] [part 7] [part 8] [part 9]. Most of the improvements landed in pango CVS HEAD, for all to test and try out. And there are also some tarballs out there: ftp://ftp.gtk.org/pub/gtk/v2.9/. Other news in optimizations, the g_slice_*() allocator made its way into GLib CVS. This allocator is faster than malloc() and provides a performance win over allocating with mem chunks. You can read more about this in Tim Janik's blog: [part 1] [part 2]. Also, a lot of GTK+ code has been changed to take advantage of this new slice allocator. The new allocator can of course be found in GLib HEAD, and there are also tarballs already! Same place as the pango tarballs above, grab and test! Next to moving code in GTK+ over to the new allocator, work has also been done on reducing the signal overhead. Alright, those were the optimizations, now on to other GTK+ stuff. A lot of changes went into the GTK+ module, mostly fixing bugs, adding little features and API additions, refining the file chooser and other widgets, etc, etc. Of course mentioning everything is undoable, fortunately you can all read the ChangeLog for that. A few things deserve to be highlighted of course:
- Lots of stuff happened in the win32 port, among those commits are a win32 implementation of GtkStatusIcon and improved clipboard support.
- Talking about ports, a port of GTK+ to native OSX has been committed to the HEAD branch! More information and build instructions can be found over here.
- It is now possible to turn off all animations in GTK+ by setting the gtk-enable-animations XSetting to FALSE.
- Button press timeouts are not hardcoded anymore and can now be configured using the gtk-timeout-initial and gtk-timeout-repeat XSettings.
- We now have “symbolic themable colors!”. Huh? A piece in Jonathan's blog will probably help you understand what it is all about.
- Support for closing and migrating to other displays (in the X11 sense) has been greatly improved.
- There's an implementation of an asynchronous file chooser (just the file chooser everybody knows, but with updated backends) in the kris-async-branch of GTK+. Why asynchronous? Because the currenct file chooser totally freezes when you try to, for example, browse unreachable ftp sites, and with the asynchronous file chooser this doesn't happen anymore. Hooray! Though some more solid testing would be appreciated!
- Themability improvements like new style properties in the notebook, the pixbuf engine can now theme expanders and resize grips.
- The GtkTreeModelSort and GtkTreeModelFilter (and especially the filter) have undergone a lot of fixage. If your application is using one of these models, be sure to test it with GTK+ HEAD soon!
Let's have a quick peek at the upcoming features, so you have something to look forward to until the next blog entry appears (which might be quite a while, as we noticed ;). Mostly complete:
- The GtkAssistant. Part of Project Ridley, goal is to move GnomeDruid to GTK+ (#115348).
- A hyperlink button. #314808
- Notebook Drag and Drop.
- GtkRecentChooser and related recent files code.
Work started:
- Putting libglade inside GTK+. More in #172535.
Prototypes/ideas available, but a lot left to be done: (but still in GTK+ 2.10 hopefully, and if you want to be sure, help out!)
- Printing. Cairo in CVS now has fallbacks for all drawing code, so that all operations work when exporting to pdf. This is a major milestone in getting cairo ready to replace libgnomeui. Application authors might want to start taking a look at cairo for printing, to make sure it works well for them.
And GTK+ developers too, Jonathan Blandford is going to start up the work on the printing dialog again, after it went silent in the weeks after the 2005 GNOME Summit. Do you care about printing? Want to help? You know who to talk to ;).
- A canvas. As part of Project Ridley we want to replace GnomeCanvas with some cairoified canvas, and put that canvas in GTK+ of course. You can play with goocanvas. There are some threads on gtk-devel-list here (achtung! this thread spans several months!), here and here. A lot of work is needed here still.
There is a lot left though. For more information on Project Ridley, see the wiki page. [oh right, and what am i doing myself? slacking? no no no, i am slowly starting working on treeview again, need to get the bug count under control. and i promised to do something about the tooltips situation in gtk+, i hope to write some mail to gtk-devel-list soon, really! promised!]
Flow control: xon/xoff
It has just come to my attention that i forgot to blog about gtk2.10/ridley for like, more than a month. Sorry. However it is not going to happen today, maybe some other day. I am wondering whether there are even more (I know a few persons with this problem) irssi/screen users who are experiencing random freezes. What basically happens is that irssi blocks on a write call, which is, according to a friend of mine, caused by some bug in screen. I've never found a solution for this problem and I wonder if there even is one (a solution that is, there is a problem for sure). I hope the mighty lazyweb has an answer. Lately I am spending way too much time reading istheshit.net and uncyclopedia. Though it wasn't that bad today. It looks like I am getting nothing done, but but but, there is one positive accomplishment: I managed to build a new fileserver and migrate to it (after 3 or 4 months of comtemplating which components to buy). I now have a fun little fanless Epia board, in a big ATX case. Ripped a stack of CDs last weekend, since I finally had the space again to store new mp3s. My Opeth “mood” turned into a nofx “mood”. I wonder what's next. Oh, and the new System Of A Down album appears to be out, totally need to get it tomorrow.
GTK+ 2.10 / Project Ridley Progress Blog (Episode 2)
Hello and welcome to the second episode of this irregular GTK+ 2.10 progress blog. It has been about two weeks since the last entry already, and some progress has been made in several areas. For people tracking GTK+ 2.10 progress for the various new API calls, this small change will be important: GtkCellRendererKeys has been renamed to GtkCellRendererAccel. We did this to make it more consistent with the terminology used throughout GTK+. Ross Burton announced that he is working on a stylus mode for GTK+. A must for handhelds devices, tablet notebooks, etc. You can find his announcement on gtk-devel-list, and there's also a Wiki page over at live.gnome.org. Work has also continued on the recent files implementation, Emmanuele Bassi has been researching the Windows-way of storing recently opened files. Of course we want to be sure that the recent files API can be implemented nicely on Windows platforms. You can read about his findings in his post to gtk-devel-list. Federico is still going strong making the file chooser ultrafast. Learn more about file chooser optimizations in the lastest episodes of “Profiling the file chooser”: [part 2] [part 3] [part 4]. And there's a new cool offscreen rendering demo from Alex Larsson! Watch!. Last but not least, the usual share of bugfixes, small updates (also a bunch of win32 updates), etc. [I have been slacking. I will get to treeview-feature-hacking soon! Really!]
GTK+ 2.10 / Project Ridley Progress Blog (aka GtkGtk links)
During the last GTK+ meeting I got the idea that it might be nice to have a development blog about GTK+ 2.10 and Project Ridley. Some people shared my opinion that this might be a nice idea, but didn't feel the need to set up a separate blog for this. So, I decided to volunteer to write this up, and hope to post regular updates on the progress of GTK+ 2.10 and Project Ridley here. Of course that does not go without saying that GTK+ 2.10 is not, and will not be, the same as Project Ridley. One of the most interesting changes is probably the addition of GtkStatusIcon, a cross-platform API for “tray icons”. It has been based on EggStatusIcon, and in the progress of integrating in into GTK+ some small features have been added. There's a single API issue, namely notification. Those interested can find the header file of GtkStatusIcon here. Another thing which has been moved over from libegg to GTK+ is a cell renderer for displaying and editing accelerators/keybindings, now known as GtkCellRendererKeys. Also, support was added for extra virtual modifiers, so users can use the extra modified keys on their keyboards (like the Windows and Apple keys) when creating new keybindings. That work was discussed in here. Owen worked on a patch to rework the Unicode hex input code. With this new input code you can input a hex Unicode sequence in the following way: start by pressing Ctrl-Shift-U, and with Ctrl-Shift still held enter a sequence of hex digits. If you release one of the Ctrl or Shift keys or press on space, the character will be committed. More information on this patch is here. Alex Larsson has been working on rendering widgets to offscreen buffers, something we are going to use in the new canvas. You can read more about this in his recent blog entry. Don't miss out the demo! Federico returned to hacking GtkFileChooser and did some interesting optimizations. At last, we also got a bunch of new stock items: GTK_STOCK_CONNECT, GTK_STOCK_DISCONNECT and GTK_STOCK_SELECT_ALL. I hope to get another entry out within two weeks. Any comments on how to make entries like this more useful are always appreciated.
switching jobs
Good bye Mathematical Institute. Hello Imendio! (oh, can somebody create a hackergotchi for me? I dunno how long pgo exists already, but i still dont have one. /me feels sad).
incrementally fixing incremental reflow
I *think* I fixed a bunch of scrolling issues in GtkTreeView. The patch (against GTK+ HEAD) is here. If you have time to test it against your application using TreeView, please do. If it breaks anything, please tell me (and it would be really great if you could provide me with a small testcase which isolates the problem). After some more testing this will hopefully land in GTK+ HEAD, so I can continue with the other bugs. The #gnome-nl people had some beer last Wednesday. Most people also watched the soccer match (against Finland). Some photos are here. Hopefully these do not have (fucked up) color profiles. Apparently there is still something wrong with the combination of my Mac mini, my 19″ CRT and photos with color profiles. (GUADEC photos are coming up soon, since this non-iPhoto gallery creation thing appears to work fine). Also bought a bunch of concert tickets today. Am going to see 'The Sex Pistols Experience', 'System Of A Down', and 'Anti-Flag'. Apparently Pennywise is coming to the Netherlands too, need to get tickets for that later. Also, NX really rocks. Try it. Luis: The Germans are not the only Europeans to pay people to check train tickets. In Netherlands we do so too. IIRC in Belgium too.