GNOME Bugzilla – Bug 128309
Sort tasklist by window position?
Last modified: 2005-01-22 21:22:33 UTC
This should really be added to the bug about tasklist ordering, but I can't find that now so I'll mention it here before I forget... It's just occurred to me that I almost always look for things on the tasklist relative to where I last saw the corresponding window on the screen. E.g. I always have my terminal open in the bottom right, so when I go to the tasklist, I always look for a terminal button on the right-hand side. It's rarely there :) So perhaps it would be interesting to experiment with an ordering algorithm that ordered the buttons left-to-right (or top-to-bottom, for vertical tasklists) based on the windows' x-coords (or y-coords, for vertical tasklists)? Not sure what you'd do for grouped windows, though.
Any idea what you'd do for maximized windows, Calum? (generally the idea sounds reasonable to me, but then again I run all my windows maximized, most of the time.)
Good question... perhaps it should just work on 'restored' positions only, so if you maximized a window it would still stay in the same place in the task list. Or maybe when you maximized a window it would go to the beginning or the end of the list. That's why I used the word "experiment" :)
I would think that if you had all your windows maximize that the algorithm would then order the taskbar according to the Z-Order of all your windows. (front to back == cultural_read_direction; where cultural_read_direction == right to left || left to right) Hm, I think I just made that part a little overly complicated. So now the next obvious question is, what about when only some of the windows are maximized? I would say that the positioning would win over maximized windows. So a terminal on the right would appear in the right side of the maximized windows. This would put the list of maximized windows in the center, then ordered by their z-axis. For the experimentation puposes, perl has bindings for the wnck library which could get you the window list and sizes. You should be able to quickly build an app that does this ordering. (assuming you know a little perl) :-)
I wouldn't use Z-order for sorting: If I click on the taskbar, Z-order will change, so the list will rearrange when I'm trying to click on taskbar items. This will probably be very confusing. IMHO, the perceived window position is the Window center. So in that case, windows should be sorted by the center position. That solves the special case of maximized windows (they will keep at the middle of the bar), and looks quite ok in common cases like having a document maximized, with a couple of palette windows open (that will look like: left palette, maximized document, right palette). Possibly using y coordinate of the center as secondary sort key (or x for vertical taskbars), is useful, when having a tiled grid of windows that would show left column (top to bottom), middle columns (top to bottom), right column.
The bug about tasklist ordering is bug 37787... It could be marked as a duplicate, but manual reordering vs. a specific spatial ordering seem different enough to me that I'd rather someone else made that decision.
Using the suggestions here would result in the tasklist rearranging. Federico pointed out on d-d-l (http://mail.gnome.org/archives/desktop-devel-list/2004-October/msg00383.html) that people found reordering to be confusing when Microsoft tried it for Windows (though they tried it with most recently used order as opposed to spatial location order). Note that many have found the ordering of the tasklist to be unintuitive/unrememberable/"random" (it actually wasn't random, but many thought it was). However, that should be fixed now with the patch in bug 52225 that was just applied, and considering the weight of opinion there (including Calum's!), I believe we want to go with that fix instead of this behavior. I'm going to go ahead and close as WONTFIX. If any usability people, panel people, or Havoc disagrees, feel free to LART me and reopen. ;-)