Attachment '20101214.txt'

Download

   1 < ebassi> as usual, the meeting agenda is here: http://live.gnome.org/GTK%2B/Meetings
   2 < ebassi> • Release date for 3.0
   3 < ebassi> • Pending tasks
   4 < ebassi> • Wevsite update
   5  * mclasen thought we had more
   6 < tristan> pending tasks includes a few items
   7 < kris> there's a bunch of subpoints below pending tasks
   8 < Company> that's because "pending tasks" has more
   9 < tristan> :)
  10 < mclasen> oh, ok
  11 < garnacho_> too late to add one more for pending tasks?
  12 < Company> we basically only have "pending tasks" ;)
  13  * mclasen follows the link
  14 < Company> garnacho_: go ahead
  15 < ebassi> yeah, writing the sub-points takes time :-P
  16 < mclasen> should we start with pending tasks, or just go top-down ?
  17 < Company> i guess deciding on the release date after pending tasks is a good idea
  18 < tristan> seems to make sense to do "release date" after pending tasks
  19 < ebassi> +1
  20 < mclasen> ok, so pending tasks first
  21 < ebassi> • treeview refactor
  22 < ebassi> which I guess is for tristan and kris
  23 < martyn> right
  24 < kris> yes so tristan did a lot of work on this
  25 < garnacho_> hrm, lost the lgo password
  26 < kris> and move all cell allocation/rendering/etc code into GtkCellArea/GtkCellAreaContext and related classes
  27 < kris> which can be re-used by other widgets, for example icon view, combo box
  28 < mclasen> so, what is the plan here, land this all in one big drop ?
  29 < tristan> yup, dont mean to interrupt... I (we) think it's ready to land
  30 < kris> we think it is about ready to land
  31 < tristan> treeview-refactor branch at least
  32 < kris> if somebody would like to review the new GtkCellArea* classes that would be great
  33 < kris> i tried to keep up with tristan :)
  34 < tristan> icon-view-refactor is a small diff... would be nice to get a review
  35 < kris> and reviewed a good amount of code, especially the changes impacting tree view
  36 < tristan> and then there's combo-refactor which would be also nice to get a review
  37 < kris> We can land this for GtkTreeView, without changing API in GtkTreeView, so the end-user impact is neglectible
  38 < mclasen> not changing widget apis is very good news indeed
  39 < mclasen> how about cell renderers ?
  40 < tristan> adds one or 2 apis but doesnt change anything
  41 < kris> cell renderers already got API extensions for hfw some months ago
  42 < kris> no changes apart from that
  43 < tristan> on a semi-related note I've been wanting to change cell-renderer (text cell renderer) properties a bit
  44 < tristan> because setting "wrap-width" in terms of pixels is just uncomfortable... but anyway
  45 < mclasen> kris: does the refactoring relate to your treeview-ng plans at all ?
  46 < kris> mclasen: a big part of treeview-ng was actually refactoring
  47 < kris> mclasen: so that's basically done by this work
  48 < mclasen> ok, nice
  49 < kris> another part of treeview-ng is re-considering all the validation machinery
  50 < kris> and I think that will happen in the near future as well, as doing height-for-width properly in GtkTreeView will require a re-consideration of that code anyway
  51 < mclasen> I see
  52 < kris> a height-for-width implementation is something we are not sure we will get done for 3.0
  53 < kris> but all the API and groundwork should be in place so that it can be done at a later stage without API-compatible changes
  54 < mclasen> I already stated my vague concern about the general direction of this work (ie duplicating a lot of the widget machinery for cell renderers)
  55 < mclasen> but I'll basically defer to you as the treeview authority, kris
  56 < kris> but this code duplication is not new, is it?
  57 < tristan> unifying all of that stuff would imply separating size negotiation tactics from widgets, in a way
  58 < tristan> because widgets are 1 for 1
  59 < tristan> cell renderers need alignments etc
  60 < tristan> ofcourse cell rendering using widgets is doable somehow, I wont argue that
  61 < mclasen> kris: true, it is not new. but cell renderers were much more limited so ar
  62 < Company> did you do any tests on multiple thousand row treeviews?
  63 < mclasen> now we get containers there, and focus navigation, and ...
  64 < kris> mclasen: focus navigation was first hidden in GtkTreeView, so that is not especially new
  65 < tristan> and icon view
  66 < Company> mclasen: i think for 4.0 we want to get rid of cell renderers
  67 < mclasen> kris: as I said, this is just a vague feeling, and may be entirely unjustified
  68 < Company> mclasen: we'll otherwise grow 2 different toolkits - one based on GtkWidget, one based on GtkCellRenderer
  69 < mclasen> if you think this is the way forward, by all means, lets get it merged
  70  * Company waits for GtkCellRendererTreeView
  71 < kris> we have not really added any new capabilities to cell renderers
  72 < mclasen> with GtkCellRendererCombo, we are already using cell renderers recursively...
  73 < kris> I think for a large extent, the work can be seen as splitting code out of GtkTreeViewColumn and making it suitable for height-for-width
  74 < Company> the problem is that so far widgets couldn't be used the way cell renderers are
  75 < Company> because they have GDK windows and all that mess, but that'll be going away
  76 < tristan> a possible future I could see, is GtkCellRendererWidget
  77 < tristan> if widgets can be usable to render cells, that could obsolete all the renderers
  78 < mclasen> lets not get too distracted by 4.0 stuff in this meeting, though
  79 < ebassi> or make GtkCellRenderer an interface implementable by Widget
  80 < tristan> ebassi, or that yes
  81 < tristan> the cell-area semantics take care of something not done by normal containers
  82 < mclasen> kris,tristan: is there a list of branches that need review, do we need to look for volunteers to do that ?
  83 < tristan> and that is cell alignments mostly
  84 < tristan> context of requesting a group of rows etc
  85 < kris> mclasen: I think it would be good if somebody would review the API of the new GtkCellArea* classes, which are in treeview-refactor
  86 < kris> mclasen: and we need a volunteer for combo-refactor I guess
  87 < kris> mclasen: I can have a look at combo-refactor as well, but I have not been maintaining for the last few years
  88 < tristan> that would be good, combo-refactor also introduces GtkTreeMenu
  89 < mclasen> whats the timeline for getting reviews done and moving on the merges ?
  90 < tristan> which we can keep private or expose, but I've written all the docs for it as a clean exposable class
  91  * mclasen would like to do a close to api-final snapshot this week
  92 < kris> I am about done with treeview-refactor
  93 < ebassi> tristan: I'm not so sure about TreeMenu for 3.0
  94 < kris> so it depends on how quick somebody can have a look at GtkCellArea*
  95 < kris> and at combo-refactor
  96  * mclasen would be much more comfortable to keep the treemenu private for now
  97 < Company> kris: i think if you and tristan agree on CellArea, then it's ok to merge
  98 < kris> i guess then we can consider merging treeview-refactor this week, so it will make mclasen's snapshot
  99 < kris> what about combo-refactor?
 100 < mclasen> I agree about merging the treeview-refactor
 101 < mclasen> and I can try to look over the combo-refactor branch
 102 < tristan> the diff of gtkcombobox.c is mostly api removals
 103  * mclasen is at least as interested in the iconview-refactor
 104 < tristan> I originally went with a "clean house" in combobox.c but got bitten by merges
 105 < mclasen> is iconview-refactor ready ?
 106 < tristan> yes.
 107 < tristan> icon-view-refactor was easier than I expected
 108 < kris> I think iconview-refactor doesn't do any API-incompatible changes, does it?
 109 < tristan> and it removes all the box[] arrays and hand dealing with renderers
 110 < tristan> no it doesnt
 111 < kris> treeview-refactor is most important to land, since it adds a good bunch of API
 112 < tristan> it's clean
 113 < mclasen> that only cellareafies the icon view ? does it also hfw it ?
 114 < tristan> mclasen, internally it does to an extent, but it doesnt hfw it completely
 115 < tristan> by that I mean... that all icons always had the same width
 116 < tristan> so, the width of an icon is determined by its smallest icon
 117 < mclasen> might be good to have mitch testdrive the iconview-refactor, he's had some fun with icon views in the gimp...
 118 < tristan> cells in the area require only the height for that width
 119 < tristan> that applies to a manually set "item-width" too
 120 < tristan> but things I'd like to do:
 121 < tristan>   - Let icon view return proper min/nat widths
 122 < tristan>   - handle icon view with a fixed number of columns in a hfw way
 123 < Company> oh that reminds me
 124 < Company> did we agree on the get_foo apis never needing to return more than screen width/height?
 125 < Company> get_preferred_foo()
 126 < Company> so that iconview can actually stop computing height for width once it hits a certain size
 127 < tristan> that's still a theory ... but I agree
 128 < Company> so that my home dir in an iconview actually resizes before i alt-tab?
 129 < tristan> for a treeview or icon view that needs to answer height-for-arbitrary-width...
 130 < tristan> it only needs to calculate screen height for that width yes
 131 < tristan> this is under the assumption that views not in a scrolled window are not super huge (taller than the screen)
 132 < Company> why?
 133 < tristan> views that are in a scrolled window, the scrolled window is only concerned with "whether the height will fit the allocation"
 134 < tristan> i.e. if it needs a vscrollbar or not
 135 < tristan> after that it gives the view an allocation
 136 < Company> even if i stuff a treeview into the toplevel directly
 137 < tristan> the allocation is different than the request
 138 < tristan> with an allocation you push the adjustment values as you caluclate the million rows in the background
 139 < Company> what does it help you that the natural height is 1892034839 pixels?
 140 < tristan> Company, I think we agree here
 141 < Company> i'll add code that manually clamps it then
 142 < tristan> I'm not arguing, just explaining why its not needed to calculate more than screen height for a request
 143 < Company> so we can test that it works
 144 < tristan> ok, so ... lets move on... we land treeview-refactor in the next days ? I wait for a go-ahead for combo-refactor and icon-view-refactor ?
 145 < ebassi> sounds okay to me
 146 < tristan> what should I do for "privatizing treemenu" ?
 147 < tristan> remove index from gtk-docs.sgml ?
 148 < tristan> and gtk.symbols/gtk3-sections.txt ?
 149 < ebassi> just put it in an non-installed header, and prefix every function in the header with '_'
 150 < ebassi> and remove it from the API reference
 151 < ebassi> (if it's used internally)
 152 < tristan> alright, I'll do that
 153 < ebassi> if not, just move it to a separate branch
 154 < tristan> ebassi, it's what does the combo-box menu
 155 < ebassi> okay, then the privatization of the symbols should be enough
 156 < ebassi> right, do we have other issues with this?
 157 < kris> Company: I will also test the new code with a very large tree view btw (a bit late reply)
 158 < ebassi> (mclasen dropped :-/)
 159 < ebassi> any takers for reviewing combo-box-refactor?
 160 < mclasen> GRR
 161 < Company> there we go :)
 162 < kris> ebassi: mclasen said he would have a look
 163  * mclasen hit an awesome patch of rawhide instability
 164 < mclasen> at-spi triggering iptables which in turn run into some selinux kernel oops...
 165 < ebassi> kris: thought it was for icon-view-refactory -- but sounds okay :-)
 166 < kris> ebassi: i will probably have a look as well, but that will defintely not be before next week
 167 < krh> mclasen: did you at least get the kms enabled oops? :)
 168 < mclasen> the screen continued to look shiny, it just stopped responding...
 169 < mclasen> what decisions did I miss ?
 170 < krh> oh, it should bounce back to a very unshiny kms textmode
 171  * krh shuts up
 172 < mclasen> krh: thats what happened after my first few reboots...
 173 < ebassi> mclasen: nothing much
 174 < mclasen> still discussing tree/icon/combo refactor ?
 175 < tristan> mclasen, we know that nobody ever wants to look at combo-box code...
 176 < ebassi> mclasen: finishing now with a missing reviewer
 177 < tristan> and are looking for volunteers
 178 < mclasen> I will try to take a look
 179 < mclasen> and we agree to land the tree and iconview parts this week ?
 180 < ebassi> right, we should probably jump to the next item
 181 < mclasen> or just treeview ?
 182 < ebassi> treeview was agreed
 183 < mclasen> ok
 184 < mclasen> let move on
 185 < ebassi> iconview depended on a reviewer
 186 < tristan> we agreed on treeview, icon-view is really not such a big deal to review
 187 < Company> treeview, release, then iconview i'd say
 188 < tristan> and it doesnt break api either so, its not blocking 3.0 technically
 189 < Company> because then it's easy to pinpoint cellarea vs iconview issues with "were they in the release?"
 190 < mclasen> makes sense
 191 < mclasen> next topic was gdk-backend ?
 192 < ebassi> yes
 193 < mclasen> so, to sum that up, I've been toiling to implement the plan that alex layed out on the list a few weeks ago
 194 < mclasen> the goal is to enable having multiple backends in gdk at the same time
 195 < mclasen> and pick one at runtime
 196 < mclasen> I guess alex motivation was his html5 backend
 197 < mclasen> but we will need something like this for x/wayland coexistence too
 198 < Company> and we can do quartz/x11 on OS X
 199 < mclasen> true
 200 < pbor> does it close this bug https://bugzilla.gnome.org/show_bug.cgi?id=97081 ?
 201 < Company> which should make kris happy
 202 < mclasen> pbor: technically not
 203 < pbor> (not that I care, just looking through bugs)
 204 < Company> i'd close it - because it has the same result
 205 < mclasen> but practically, yes
 206  * mclasen is out for 30 seconds
 207 < ebassi> I guess backend maintainers need to jump in and see what the backend branch requires
 208 < mclasen> the work on the branch is not quite finished
 209 < mclasen> what has been done so far includes changing things around so that there is only libgtk.so
 210 < Company> the only issue i have with that work is that we found quite a few GDK APIs that suck
 211 < mclasen> thats one point I wanted to discuss today - do we need a separate libgdk.so ?
 212 < Company> other than that, it's just something that needs to happen in an API-compatible way
 213 < mclasen> ebassi: I think you had some concerns about the fate of libgdk ?
 214 < mclasen> the other work that has happend in the branch so far is mainly
 215 < ebassi> it was mostly a concern about dependencies; if I wanted to have a gdk backend for clutter then it would have been nice not to bring the whole gtk on top
 216 < mclasen> - hide class and instance structures
 217 < mclasen> - add vfuncs for anything thats currently done in ad hoc ways via windowing functions implemented in each backend
 218 < mclasen> ebassi: I'd be open to unroll that unification one level
 219 < mclasen> ie we could have libgdk.so and libgtk.so
 220 < mclasen> just no more libgdk-x11.so vs libgdk-win32.so vs...
 221 < ebassi> mclasen: sounds fine to me
 222 < Company> we could also still do that, as we basically only need one entry point ("open a display")
 223 < mclasen> right
 224 < Company> but i'd rather not get into the loadable modules business...
 225 < mclasen> that entry point is gdk_display_manager_get() in the branch
 226 < mclasen> thats the function that decides which backend to instantiate
 227 < mclasen> that is the singleton we rely on
 228 < tristan> I guess a minor point, it's nice if backend maintainers can still maintain a backend not included in libgdk
 229 < ebassi> I've noticed that GdkDisplay is not abstract
 230 < ebassi> tristan: that would mean adding extension points
 231 < mclasen> ebassi: oh, we could certainly make those abstract
 232 < tristan> i.e. able to link libgtk to mycustomgdkbackend
 233 < mclasen> tristan: its not possible now, really
 234 < ebassi> tristan: but the objects rely on a lot of internal API
 235 < Company> tristan: NO
 236 < krh> tristan: I'd ver very wary about exposing so much internal api
 237 < Company> tristan: that way we double our exposed api
 238 < ebassi> it would mean making internal API public
 239 < mclasen> in terms of api/abi breaks, what is left to do is
 240 < krh> and with git, everybody can just clone gtk and hack away
 241 < krh> it's what I do ;)
 242 < mclasen> - turn gdkcursor into an object and make it opaque
 243 < tristan> ok, I'll shut up :)
 244 < mclasen> - decided what to do with a lot of the sucky apis that are left for virtualization
 245 < Company> gdkcursor is my job, once i can compile without warnings again
 246 < mclasen> let me list some of the 'sucky' apis (and what I thought we might do with them)
 247 < mclasen> gdk_atom_... - should really generic, ie not depend on backends
 248 < krh> mclasen: don't you want that to hook into the X atoms?
 249 < mclasen> krh: yes, we have functions that translate gdkatom <> x atom
 250 < ebassi> krh: we already have code to turn an X11 atom to/from Gdk atom
 251 < Company> mclasen: why do we have gdk atoms even?
 252 < mclasen> we already needed that because x atoms are per display
 253 < Company> mclasen: can't we just use strings?
 254 < krh> mclasen: so how can it not depend on the backend?
 255 < Company> krh: all functions that take GdkAtoms are virtualized
 256 < Company> krh: and the x11 ones do get_xatom_for_gdk_atom
 257 < mclasen> currently each backend implements its own functions for turning strings into gdkatomes
 258 < mclasen> I think we should lift them to the generic gdk code
 259 < mclasen> anyway, moving on 
 260 < Company> mclasen: why not use strings?
 261 < mclasen> gdk_error_trap_... - really only does anything on X
 262 < mclasen> dunno, don't really want to discuss each api at length right now
 263 < Company> just making sure i don't miss things
 264 < mclasen> gdk_keyval_from/to_name - should probably just be generic as well
 265 < mclasen> osx and win32 already have their own tables for that, the x backend uses the xlib api for it atm
 266 < mclasen> then there is a bunch of text encoding stuff like utf8_to_string, utf8_to_compound_text, etc
 267 < mclasen> I
 268 < mclasen> I'd tend to say anything touching compound text should be x-specific api
 269 < Company> that
 270 < Company> or we should have a generic dnd api (or a text atom) that does this text magic automatically
 271 < Company> ie move things from GtkSelection t gdk selection code
 272 < mclasen> possibly, but probably not before 3.0...
 273 < mclasen> then there is the foreign window stuff
 274 < mclasen> gdk_window_foreign_new_for_display etc
 275 < mclasen> I think that should also be backend-specific
 276 < krh> I think that should be X specific
 277 < krh> or backend specific
 278 < Company> mclasen: you mean gdk_x11_window_foreign_new_for_display() ?
 279 < mclasen> yeah, returning a GdkWindow
 280 < mclasen> not good ?
 281 < mitch> i think there should be a generic window handle object for native/foreign windows
 282 < Company> yes, my idea exactly
 283 < krh> no
 284 < Company> mitch: GdkWindow
 285 < krh> yea, that's good
 286 < mclasen> the last in my list of sucky apis is gdk_spawn...
 287 < krh> not a GdkNativeWindow wrapper around whatever the gd-backend native type is
 288 < mitch> Company: yes, but the things need to be passed around, no?
 289 < mclasen> only the X implementation is not a straight wrapper around g_spawn
 290 < mclasen> and it only sets display
 291 < Company> dunno
 292 < mclasen> so I'd like to deprecate/remove it in favor of g_spawn and/or g_app_launch ...
 293 < Company> that works
 294 < Company> just don't make it backend specific
 295 < tristan> huh ? you mean to get a foreign window you need to be the one who launched the foreign process ?
 296 < tristan> what have I missed ?
 297 < Company> because that'd require ifdefs where none were necesary before
 298 < ebassi> gchar **gdk_x11_set_environment (const gchar * const orig_env[])
 299 < Company> tristan: you're mixing 2 topics up
 300 < tristan> oh /me sees gdk_spawn, sorry
 301 < pbor> I do not like killing, gtk_spawn: then you are just pushing apps to do ifdef themself or be buggy when it comes to screen handling
 302 < mclasen> ebassi: GdkAppLaunchContext does that already for you...
 303 < mclasen> pbor: g_app_info_new_from_commandline, no ifdefs
 304 < pbor> is that new?
 305 < pbor> I do not see it in the docs
 306 < pbor> anyway ok, as long as there is a "right" way to do it, I take back my concern :)
 307 < mclasen> http://library.gnome.org/devel/gio/2.27/GAppInfo.html#g-app-info-create-from-commandline
 308 < Company> mclasen: also, if we move the error trap apis to x11, we should rename them sanely
 309 < Company> mclasen: pop_ignored() => pop()
 310 < mclasen> I don't know if we really want to move them to x11
 311 < Company> and invent a better name for pop_ignored()
 312 < mclasen> that would mean lots of ifdefs in gtk
 313 < Company> socket and plug do that
 314 < Company> and selection
 315  * mclasen finds 8 source files with error_trap in them in gtk/
 316 < mclasen> less than I expected
 317 < Company> most of them are *-x11.c :p
 318 < mclasen> no
 319 < kris> ah ja sucky GDK APIs
 320 < mclasen> so, that sums up my collection of sucky gdk apis
 321 < mclasen> I'm looking for some guidance for how to proceed with this work
 322 < mclasen> we probably won't get parallel backends working for 3.0
 323 < mclasen> but I'd like to get the abi/api changes in place
 324 < Company> hrm
 325 < kris> having things like atom, text conversion, selection, etc. generic like you mention sounds like a good plan
 326 < krh> mclasen: but it can happen for 3.x?
 327 < mclasen> one concern is that I haven't kept quartz/win32 in sync on the branch
 328 < Company> depending on the release date, we should at least get the basics done
 329 < mclasen> so there will be fallout for other backends if we merge now
 330 < Company> because currently we regress
 331 < Company> in that it's not possible to install multiple gtks
 332 < kris> mclasen: how many changes did you make?
 333 < krh> Company: good point
 334 < Company> kris: the vfuncization is quite a bit of (bring) work
 335 < kris> mclasen: if you think I can sync up quartz in an hour or 2, I can look at that before the end of the week
 336 < Company> *boring
 337 < mclasen> kris: more like an evening, I guess
 338 < ebassi> krh: 135 files changed, 6686 insertions(+), 5493 deletions(-)
 339 < ebassi> (against master)
 340 < mclasen> dangit, +1000
 341 < krh> ebassi: kr<TAB>?
 342 < mclasen> but the code gets much cleaner, so its worth the extra lines
 343 < ebassi> yeah, sorry - 'twas for kris :-)
 344 < Company> mclasen: we can get the lines back if we remove some more useless apis! ;)
 345 < kris> mclasen: ok, then it depends really on how quick I get the final pixel nitpicking done for treeview-refactor
 346 < kris> mclasen: which I had schedule for one or two evenings starting tomorrow
 347 < mclasen> kris: I can probably get a bunch of the conversion done blindly
 348 < mclasen> I'll just have to rely on you to make things build and work afterwards...
 349 < kris> that's not a problem, I've done that for rendering-cleanup as well
 350 < mclasen> ok, I can sink some time into catching up the other backends then
 351 < mclasen> Company: can you help out with dealing with some of the sucky apis ?
 352 < Company> mclasen: when i know about them, yes
 353 < mclasen> Company: and do you think that installing multiple gdks in parallel is a very common thing ?
 354  * mclasen has never heard of it
 355 < mclasen> Company: do you know about them now that I've listed them ?
 356 < Company> mclasen: nope, don't think so - but i don't see why parrallel installed gdk are so far off from once we get gdk-backend merged
 357 < Company> mclasen: "know about them" == have a clue what the apis are ncecessary and used for
 358 < Company> mclasen: ie i still don't understand the selection code
 359 < Company> mclasen: also, how api-break happy are we for those apis?
 360 < Company> get-them-right vs get-them-to-continue-working
 361 < kris> the selection api is also on my list of apis to learn to understand ;)
 362  * mclasen thinks that dnd+selection is in for some high-level review for gtk4
 363 < pbor> Company: I'd say let's see case by case: rarely used apis -> fix properly, common apis -> evaluate pro/cons
 364 < mclasen> yeah
 365 < Company> pbor: in general gdk api's are the first case ;)
 366  * mclasen already 'broke
 367 < mclasen> ' one api by moving set_sm_client_id to X11 specific
 368 < mclasen> I guess nobody will ever notice
 369 < krh> I guess the parallel installable gdk/gtk is less interesting since an application can only link to one of them
 370 < mclasen> yeah, its really only for installer-doesnt-use-X kind of situations
 371 < Company> true
 372 < mclasen> and in that case, you can just as well install the app-specific gtk somewhere else...
 373 < krh> and you can still do it by just renaming the libraries
 374 < Company> krh: i guess we don't regress then
 375 < krh> which is an appropriate ad-hoc hack for the installer case
 376 < mclasen> ok, how does this fit in our schedule ?
 377 < krh> mclasen: I guess there are two things here: gdk-backend and fixing the broken APIs
 378 < mclasen> yeah
 379 < krh> gdk-backend seems doable for 3.0
 380 < mclasen> I'll switch the gdk-backend branch back to separate libgdk
 381 < krh> but the interesting thing to do for 3.0 is fixing the broken apis
 382 < mclasen> then we need the cursor work done
 383 < mclasen> I think that is doable this week
 384 < mclasen> fixing remaining sucky apis will probably take longer
 385 < mclasen> so would have to be deferred until the xmas snapshot
 386 < Company> yes, cursor is easy
 387 < pbor> if they do not affect 99% of apps, it is not a problem
 388 < Company> cursor is only gdk_cursor_ref/unref vs g_object_ref/unref
 389 < Company> and we can keep them deprecated if we want to
 390 < mclasen> Company: I think we probably want cursor_ref/unref in place for now, as deprecated #defines ?
 391 < Company> right
 392 < pbor> so to move on, there are few other api issues open I think (though mostly minor?)... /me pastes a list he prepared in the mean time
 393 < pbor>  - review api issues in bugzilla that are on the 3.0 milestone
 394 < pbor>  - what's the status with GtkApplication?
 395 < pbor>  - what happen to GPeriodic and the corresponding gtk business?
 396 < pbor>  - Alex's radio
 397 < pbor>  - Are there still api issues open related to Style? GdkColor?
 398 < pbor> also while working on pygobject some issues showed up
 399 < pbor>  - does scrollview_new still needs param?
 400 < pbor>  - GtkBuildable seems super broken: it is an interface but none of its implementors implement all its methods
 401 < ebassi> for GPeriodic, I think we need to back it out
 402 < mclasen> pbor: thanks for the list
 403 < ebassi> I haven't had much time for porting clutter, and we still need some reviewing for that
 404 < pbor> ebassi: that was kind of my implied point :)
 405 < ebassi> GtkApplication is still pending on the action API that desrt was working on
 406 < mclasen> ebassi: since we haven't gotten the gtk integration done, its not big loss to back it out
 407 < ebassi> though generally I think we can punt that for the time being
 408 < mclasen> yeah, gtkapplication is useful as it is now
 409 < ebassi> since apps have been ported and they work already
 410 < mclasen> even if incomplete
 411  * Company votes YES on gperiodic backout
 412 < mclasen> now sure what is broken about GtkBuildable ?
 413 < mclasen> does it not work ?
 414 < tristan> pbor, is it language bindings your concerned about for buildable ?
 415 < mclasen> so we tell desrt to try again for gtk4 ?
 416 < pbor> mclasen: well, it works because the few callers assume that some of the function are safe to call just under some conditions
 417 < pbor> which kind of defeats the point of an interface
 418 < tristan> that's not exactly true
 419 < tristan> how so ?
 420 < mclasen> who do you expect to call buildable functions ?
 421 < ebassi> mclasen: for GPeriodic, yes
 422 < pbor> tristan: it came up in laguage bindings because for a bit pygobject enforced the if an object implements an interaface all its method must have an implementation up the hierarchy
 423 < pbor> thought now the enforcing has been removed
 424 < mclasen> sounds like an unwarranted assumption on their part
 425 < pbor> sure, that's why the enforcing has been removed
 426 < tristan> right, I have noticed some places where the implementations fail to chain up to parent classes
 427 < tristan> but those are class-specific bugs
 428 < tristan> i.e. get_internal_child() has to chain up
 429 < pbor> tristan: it is not about chain up, look at container: it is buildable but it only implements some methods
 430 < tristan> sure
 431 < tristan> and that is a problem because... ?
 432 < pbor> and container's derivative do not implement them
 433 < mclasen> moving up the list, scrolled_window_new could certainly loose those arguments
 434 < mclasen> but I guess that would be a painful api break this late in the game
 435 < tristan> gtk_buildalbe_* *apis* are safe to call
 436 < tristan> pbor, and why would a containers derivative have to implement something that it trusts the container's implementation to take care of ?
 437 < pbor> anyway, let's drop the buildable thingie... it is not even an api issue
 438 < tristan> I'd love to drop the "constructor" stuff... if we could drop uimanagers... but we still cant do that :(
 439 < mclasen> I think we dropped the ball for scrolledwindow and have to live with NULL, NULL for a little longer 
 440 < pbor> ok
 441 < ebassi> right, moving on: GtkRadioGroup?
 442 < mclasen> I think it is in the little gain, big pain category of api breaks
 443 < mclasen> so, I did some work on that; desrt wasn't really happy with it
 444 < mclasen> since he wanted to have buttons backed by actions as models
 445 < mclasen> and only group the models
 446 < mclasen> there is a branch where we tried to work out the necessary button changes for that idea
 447 < mclasen> but it is not complete
 448 < ebassi> I think that'll have to wait, now
 449 < mclasen> yeah, I guess so too
 450 < mitch> from my pov,e.g. in gimp there are at least 4 ways to construct button groups
 451 < mclasen> I may still land a small part of the button branch
 452 < mitch> and they all make sense
 453 < mitch> forcing them into a GtkRadioGroup would make things more complicated in some cases
 454 < mclasen> (the part about having a indicator-style property on GtkButton)
 455 < mclasen> so, what else is left on the 3.0 api issues list ?
 456 < pbor> mmm, to be honest I was happy enough with alex original proposal
 457 < pbor> anything is better than GList as is now
 458 < mitch> garnacho_: what about the remaining input issued?
 459 < garnacho_> mclasen: I've yet to land my xi2 patches
 460 < mclasen> yes, you do
 461 < mitch> heh
 462 < garnacho_> can do that tonight
 463 < mclasen> ok
 464 < Company> mclasen: i still have an open question about removing GtkStyle and GdkColor completely
 465  * mitch wants get_source_event
 466 < mclasen> I can't see us doing that at this point, really
 467 < mclasen> we are not even there yet in terms of having replacements for all color properties
 468 < Company> i don't see the usefulness at all in keeping them
 469 < Company> because everybody that is porting must do the expose => draw port
 470 < mitch> if you want that, i want gtkhbox and gtkvbox gone :P
 471 < Company> which touches all the style functions
 472 < Company> note that gtk_paint_foo() are breaking API
 473 < garnacho_> Company: I think most people has ported by now to that, because it's only changing one parameter :/
 474 < Company> garnacho_: most people = only gnome
 475  * mclasen just doesn't believe we can do big api removals at this point
 476 < Company> garnacho_: and mitch
 477 < mclasen> the concern is not third party stuff, but just gnome three dot oh
 478 < Company> garnacho_: neither mozilla nor openoffice nor inkscape nor transmission did
 479 < Company> mclasen: do we have an idea how big the 3.0 impact is?
 480 < Company> mclasen: do we need to activate fredp magic again? :)
 481 < garnacho_> Company: right, but telling them it was just a bump in the rollercoaster... :)
 482 < mclasen> you mean the impact of removing gtkstyle and gdkcolor ?
 483 < Company> mclasen: yeah
 484 < pbor> maybe we should try coccinelle on gnome :)
 485 < mclasen> I don't, and I really don't think we can do it anymore
 486 < mclasen> people are going into xmas break now
 487 < mitch> so let's break a bit :P
 488 < mitch> ha ha
 489 < mclasen> we can't afford to loose half of january for playing catchup with last-minute gtk api breaks
 490 < Company> our very own xmas break \o/
 491 < mitch> mclasen: at this point in time, i give in and agree
 492 < krh> yeah, xmas api break
 493 < mclasen> it will all be deprecated
 494 < tristan> where are we right now then, somewhere in the middle of "last minute breaks" ?
 495 < mclasen> and we can take our time to port gtk internally to the new stuff
 496 < garnacho_> mclasen: and I have a patch to reduce the code behind it to a minimum
 497 < mclasen> and we will survive ignoring gtkstyle until 4.0 '
 498 < mclasen> just like we did with GtkList and GtkText and whatnot
 499 < mitch> mclasen: oh btw, do we have removal of all sealed members on the 3.0 blocker list?
 500 < mclasen> mitch: the gdk-backend branch does a good bunch of that for gdk
 501 < mclasen> since it hides all instance and class structs for good
 502 < mitch> yes but gtk is much worse
 503 < Company> yeah, if we actually port stuff to GdkRGBA and style context internally
 504 < Company> stuff should look reasonably contained
 505 < Company> at least if we don't also support GdkColor everywhere
 506 < mclasen> mitch: I haven't actively followed the sealing work, really
 507 < mclasen> mitch: not sure if jjardon is around
 508 < mitch> mclasen: but it is indeed a blocker
 509 < mclasen> yes, I agree
 510 < mclasen> we should do that
 511 < mclasen> any volunteers ?
 512 < mitch> grep GSEAL gtk/*.h | wc
 513 < mitch>     195     940   10520
 514 < mitch> 195 members to go
 515 < mclasen> not too bad
 516 < mitch> indeed
 517 < mitch> i'm off for xmas vacation, so we must chain jjardon back to the keyboard
 518 < mclasen> I'll see what I can done by Monday
 519 < martyn> mclasen: so what's the ETA for for 3.0 then, are we delaying things?
 520 < martyn> mitch: :)
 521 < jjardon> not all the widgets are ported, sorry lack of time :/
 522 < mclasen> ok, time to bring that topic up, I guess
 523 < mclasen> release date
 524 < mitch> jjardon: real jobs suck :)
 525 < Company> mclasen: i'd like to do a feature freeze
 526 < mitch> martyn: sorry :P
 527 < jjardon> mitch: indeed ;)
 528 < Company> mclasen: that way things can settle and we can fix messes that we still encounter
 529 < mclasen> Company: a little late for that...
 530 < Company> lik the extension event stuff from today
 531 < martyn> mitch: grmbl
 532 < mclasen> or do you mean, delay the official 3.0 ?
 533  * martyn gets mitch to clean the toilets
 534 < Company> mclasen: indeed, but we're still actively doing features
 535 < mitch> haha
 536 < mclasen> and instead realease something like 2.99 in early january ?
 537 < Company> mclasen: yeah, delay the official 3.0
 538 < Company> yeah
 539 < mitch> i'm all for delaying
 540 < mclasen> whats the general feeling on that ?
 541 < krh> mclasen: if missed the conclusion on gdk-backed vs gtk 3.0
 542 < krh> s/if/I
 543 < tristan> delay++, api freeze soonish
 544 < Company> we need to stop people from bringing up gdk-backend and tree menus and cell areas and more gdk cleanup and
 545 < mitch> 4 more weeks in the new year (after xmas break) woulb be really good for the shape of 3.0
 546 < mclasen> krh: I think the conclusion was to try and get the api/abi changes landed
 547 < tristan> wait, what is the release date before delaying it ?
 548 < ebassi> delaying two or three weeks and do a feature freeze around xmas sounds good to me
 549 < krh> mclasen: excellent
 550 < ebassi> tristan: the endgame for 3.0 was end of this month
 551 < garnacho_> I guess delaying should be fine as long as we're (close to) api stable anyway
 552 < Company> tristan: "this year" was what we told release-team
 553 < mclasen> tristan: the original plan was 'end of year'
 554 < tristan> right
 555 < mclasen> so we will have to deliver something that is api stable and feature frozen, more or less
 556 < mclasen> at that date
 557 < martyn> I don't think we should really care what we told people or what the plan was, we should make sure it is right
 558 < tristan> I think delay official 3.0 is important
 559 < martyn> it's done when it's done
 560 < mclasen> I think calling it 2.99 and holding out for a few weeks is ok
 561 < mitch> yes we must not rush it out, or pain is guaranteed
 562 < tristan> yeah, still feature/api frozen by that time
 563 < martyn> we can alleviate this with the 2.99 as mclasen says
 564 < mitch> tristan: minus missing api that is discovered late, and we will have that :(
 565 < mclasen> practically, the difference between 2.99/3.0 vs 3.0/3.0.1 is probably small
 566 < Company> 2.99/3.0 allows api breaks
 567 < Company> if deemed necessary
 568 < mclasen> but since we have been pushing hard with features and api changes until late in the game, giving things some time to settle might be good
 569 < Company> "oops, forgot this tiny thing" kind of failures :)
 570 < mitch> and nothing keeps us from making a real soon 3.2 if we find something is really b0rk
 571 < mclasen> I will take this to the release team, I guess
 572 < jjardon> about gseal work, we still dont have a clear history about gtkadjustment
 573 < mclasen> don't really want to surprise them with that
 574 < mclasen> we can probably also use the weeks we win to sort out some of the theming fallout
 575 < mclasen> garnacho_: how has style-context been received so far ?
 576  * mclasen saw jimmac pull out some hair earlier today...
 577 < mitch> i think it's great since i understand it :)
 578 < garnacho_> mclasen: yeah, he found out some real bugs
 579 < tristan> a couple of things I wanted to look at before freezing up: "changing the minimum-for-minimum" strategy for toplevel windows discussion we had last month on gtk-devel-list
 580 < garnacho_> so far reception seems positive, only one crazy engine dev asking for widget pointers back :P
 581 < ebassi> garnacho_: are we allowed to mock this guy? :-)
 582 < tristan> ... being an api breaker (as things might work differently implicitly)
 583 < garnacho_> ebassi: I'll be polite and not embarrass him :)
 584 < mclasen> tristan: I don't recall the outcome of that discussion, tbh
 585 < garnacho_> but "i need to connect to signals" wasn't a compelling argument
 586 < tristan> mclasen, what do you think about that one... we make labels return a very small minimum width by default
 587 < tristan> and then we say that one should set a minimum width of the toplevel window
 588 < tristan> so as to avoid rediculously large heights
 589 < tristan> it's basically moving all the per-widget compensation to the top-level
 590 < tristan> hp said that the reasonable window width could be a complex guess one shot on the top-level
 591 < tristan> I dont know
 592 < tristan> but I remember owen felt very strongly about this
 593 < tristan> as it stands the minimum width of a label by default is much wider than it's actual minimum width... so that minimum-for-minimum on the toplevel doesnt give you a whacky size
 594 < mclasen> so you want to make things so that windows by themselves snap to a very narrow, tall shape ?
 595 < mclasen> and expect people to force a reasonable size by putting a min width on the window ?
 596 < tristan> that's the general idea, the author decides a decent ratio for the window instead of tinkering with individual label sizes to get the size right
 597 < tristan> I think its very late in the game for such a change, I know havoc had an idea to make the ratio decent by default
 598 < mclasen> as a general idea, avoiding label-level tinkering seems right
 599 < Company> hrm
 600 < mclasen> but as you say, scary change late in the game
 601 < Company> can't we default windows to screen-ratio?
 602 < Company> ie if the screen is 4:3, make the window as close to 4:3 as possible?
 603 < mclasen> it might be less scary if we could somehow make this opt-in by some policy property on the window
 604 < tristan> right, something like that, it requires a bisection of height-for-width requests initially if a manual width is not explicitly set
 605 < tristan> mclasen, make label's implied minimum width change depending on a top-level window setting ?
 606 < tristan> possibly
 607 < mclasen> no, that doesn't sound right :-(
 608 < mclasen> but I see we are beyond the 2 hour mark
 609 < mclasen> anything we need to nail down today, still ?
 610 < mclasen> website update ?
 611 < ebassi> xi2 stuff?
 612 < mclasen> martyn: whats your thought on that ?
 613 < mclasen> what xi2 stuff ?
 614 < mclasen> oh turning it on by default ?
 615 < martyn> mclasen: there isn't really anything to cover
 616 < garnacho_> mclasen: yes, I put it late in the list
 617 < martyn> I think the website design which we went through a few months back is really quite comprehensive
 618 < mclasen> I guess the question is, do you want to go ahead with the new website when we release 2.99, or wait for 3.0 ?
 619 < mclasen> garnacho_: I saw it; I think I said earlier that I am not opposed to changing the default
 620 < garnacho_> oh, didn't imply that :)
 621 < garnacho_> alright
 622 < garnacho_> will push that patch as well
 623 < garnacho_> err s/imply/infer/
 624 < martyn> crap
 625 < martyn> damn machine rebooted
 626 < martyn> about the website ...
 627 < martyn> I was really just checking for a release date to co-inside with the official release
 628 < jjardon> I'd say wait for GTK+3
 629 < martyn> since we're delaying the release until late ? January, we can revisit this in a later meeting I think
 630 < mclasen> lets make that a little more concrete
 631 < martyn> from my point of view, the work for the website is really just a switch over
 632 < mclasen> I'll say I do the 2.99 release in the first week of January
 633 < mclasen> should we plan for 3.0 one month after that ?
 634 < martyn> mclasen: first week in Feb?
 635 < mclasen> yes
 636 < martyn> sure makes sense to me
 637 < ebassi> mclasen: sounds like a plan
 638 < martyn> though I would also be happy with only 2 to 3 weeks personally, but you know me, we release a lot on the Tracker team ;)
 639 < mclasen> oh tracker
 640 < mclasen> good point
 641 < martyn> uh oh what did I say
 642 < mclasen> did you want to merge that rewritten search engine ?
 643 < martyn> mclasen: done
 644 < mclasen> or did you do it and I didn't notice :-)
 645 < mclasen> good work
 646 < martyn> mclasen: np
 647 < jjardon> for the record, GNOME api freeze is on Jan 31 
 648 < ebassi> we're special :-)
 649 < mclasen> ok, we'll beat that by declaring 2.99 api frozen except for emergencies
 650 < jjardon> :)
 651 < mclasen> anything else for today, or should we wrap up ?
 652 < martyn> mclasen: there was the case where you wanted to have the work as a backend for nautilus too with some integration in GIO perhaps (IIRC)
 653 < pbor> gnome does not have much api to freeze anymore
 654 < mclasen> should there be another meeting before xmas ?
 655 < martyn> mclasen: did you want that done before 3.0 ?
 656 < mclasen> martyn: didn't expect it, no
 657 < martyn> ok
 658 < mclasen> that was more medium-term talk
 659 < martyn> let's leave it for now
 660 < ebassi> mclasen: 21 or 28?
 661 < mclasen> I'll be gone on 28, I think
 662 < mclasen> we can also just play it by ear and see if there's anything to discuss next week
 663 < ebassi> sounds good to me
 664 < mclasen> ok then
 665 < mclasen> time to stop
 666  * mclasen is hungry
 667 < ebassi> right
 668 < tristan> time to sleep
 669 < ebassi> thanks everyone
 670 < mclasen> later
 671 < pbor> 'night
 672 < martyn> thanks all
 673 < martyn> good night
 674 < ebassi> as usual, minutes on the list and log on the wiki as soon as I can

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2021-02-25 09:59:10, 13.2 KB) [[attachment:20080108.txt]]
  • [get | view] (2021-02-25 09:59:10, 14.9 KB) [[attachment:20080212.txt]]
  • [get | view] (2021-02-25 09:59:10, 8.5 KB) [[attachment:20080513.txt]]
  • [get | view] (2021-02-25 09:59:10, 22.1 KB) [[attachment:20080603.txt]]
  • [get | view] (2021-02-25 09:59:10, 8.9 KB) [[attachment:20080617.txt]]
  • [get | view] (2021-02-25 09:59:10, 19.7 KB) [[attachment:20080701.txt]]
  • [get | view] (2021-02-25 09:59:10, 17.5 KB) [[attachment:20080722.txt]]
  • [get | view] (2021-02-25 09:59:10, 24.1 KB) [[attachment:20080812.txt]]
  • [get | view] (2021-02-25 09:59:10, 8.0 KB) [[attachment:20080826.txt]]
  • [get | view] (2021-02-25 09:59:10, 10.6 KB) [[attachment:20080923.txt]]
  • [get | view] (2021-02-25 09:59:10, 9.0 KB) [[attachment:20081007.txt]]
  • [get | view] (2021-02-25 09:59:10, 11.4 KB) [[attachment:20081111.txt]]
  • [get | view] (2021-02-25 09:59:10, 18.3 KB) [[attachment:20081125.txt]]
  • [get | view] (2021-02-25 09:59:10, 9.0 KB) [[attachment:20081216.txt]]
  • [get | view] (2021-02-25 09:59:10, 3.8 KB) [[attachment:20090217.txt]]
  • [get | view] (2021-02-25 09:59:10, 24.9 KB) [[attachment:20091006.txt]]
  • [get | view] (2021-02-25 09:59:10, 34.8 KB) [[attachment:20091020.txt]]
  • [get | view] (2021-02-25 09:59:10, 25.5 KB) [[attachment:20091027.txt]]
  • [get | view] (2021-02-25 09:59:10, 17.1 KB) [[attachment:20091110.txt]]
  • [get | view] (2021-02-25 09:59:10, 25.6 KB) [[attachment:20091124.txt]]
  • [get | view] (2021-02-25 09:59:10, 37.6 KB) [[attachment:20100323.txt]]
  • [get | view] (2021-02-25 09:59:10, 26.8 KB) [[attachment:20100504.txt]]
  • [get | view] (2021-02-25 09:59:10, 23.0 KB) [[attachment:20100511.txt]]
  • [get | view] (2021-02-25 09:59:10, 13.2 KB) [[attachment:20100525.txt]]
  • [get | view] (2021-02-25 09:59:10, 29.9 KB) [[attachment:20100608.txt]]
  • [get | view] (2021-02-25 09:59:10, 24.6 KB) [[attachment:20100622.txt]]
  • [get | view] (2021-02-25 09:59:10, 22.8 KB) [[attachment:20100706.txt]]
  • [get | view] (2021-02-25 09:59:10, 35.0 KB) [[attachment:20100817.txt]]
  • [get | view] (2021-02-25 09:59:10, 32.4 KB) [[attachment:20100907.txt]]
  • [get | view] (2021-02-25 09:59:10, 20.6 KB) [[attachment:20100921.txt]]
  • [get | view] (2021-02-25 09:59:10, 26.9 KB) [[attachment:20101012.txt]]
  • [get | view] (2021-02-25 09:59:10, 40.6 KB) [[attachment:20101214.txt]]
  • [get | view] (2021-02-25 09:59:10, 17.8 KB) [[attachment:20110308.txt]]
  • [get | view] (2021-02-25 09:59:10, 23.6 KB) [[attachment:20110510.txt]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.