GNOME Bugzilla – Bug 651510
Window tracker doesnt handle MATLAB windows
Last modified: 2011-12-30 15:58:15 UTC
The shell does not group MATLAB windows as I would expect. This makes managing a MATLAB session with many figures cumbersome. xprop output follows ==== ============= xprop output on main MATLAB window: XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0 _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x2f, 0x0, 0xc0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0 XdndAware(ATOM) = BITMAP _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 0, 26 program specified location: 0, 26 program specified size: 1280 by 967 window gravity: NorthWest _NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 31, 0 WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" WM_CLIENT_LEADER(WINDOW): window id # 0x3c0002e _NET_WM_ICON_NAME(UTF8_STRING) = "MATLAB 7.8.0 (R2009a)" WM_ICON_NAME(STRING) = "MATLAB 7.8.0 (R2009a)" _NET_WM_NAME(UTF8_STRING) = "MATLAB 7.8.0 (R2009a)" WM_NAME(STRING) = "MATLAB 7.8.0 (R2009a)" ============= xprop output on MATLAB editor window: XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0 _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x90, 0x1, 0xc0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0 XdndAware(ATOM) = BITMAP _NET_WM_STATE(ATOM) = WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 32, 2 WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 71, 26 program specified location: 71, 26 program specified size: 1056 by 929 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" WM_CLIENT_LEADER(WINDOW): window id # 0x3c0002e _NET_WM_ICON_NAME(UTF8_STRING) = "Editor - /home/john/PhD.git/matlab/hough/yarr3.m" WM_ICON_NAME(STRING) = "Editor - /home/john/PhD.git/matlab/hough/yarr3.m" _NET_WM_NAME(UTF8_STRING) = "Editor - /home/john/PhD.git/matlab/hough/yarr3.m" WM_NAME(STRING) = "Editor - /home/john/PhD.git/matlab/hough/yarr3.m" ============= xprop output on figure windows: XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 32, 2 _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0 _NET_WM_STATE(ATOM) = WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 358, 14 program specified location: 358, 14 program specified size: 560 by 475 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" WM_CLIENT_LEADER(WINDOW): window id # 0x3c0002e _NET_WM_ICON_NAME(UTF8_STRING) = "Figure 3" WM_ICON_NAME(STRING) = "Figure 3" _NET_WM_NAME(UTF8_STRING) = "Figure 3" WM_NAME(STRING) = "Figure 3"
Could you try copying the .desktop file for Mathlab to ~/.local/share/applications/com-mathworks-util-PostVMInit.desktop? It's probably a common bug where the application doesn't set WM_CLASS to a string matching the .desktop file name (OK, in GNOME2 it was not required...). The real solution is to fix Mathlab (please file a bug there if you can); the workaround is creating that desktop file, or naming it that way in packages. Colin: Maybe there's another improvement the Shell could get here: even if the .desktop file is missing, windows should be grouped correctly according to their WM_CLASS. Currently, it seems that all windows grouping is lost when it's missing. I suspect that's because ShellAppTracker doesn't create an item for this app. It should probably create a dummy item. (We've already seen this problem with other programs lacking a correct WM_CLASS.)
(In reply to comment #1) > Could you try copying the .desktop file for Mathlab to > ~/.local/share/applications/com-mathworks-util-PostVMInit.desktop? It's > probably a common bug where the application doesn't set WM_CLASS to a string > matching the .desktop file name (OK, in GNOME2 it was not required...). The > real solution is to fix Mathlab (please file a bug there if you can); the > workaround is creating that desktop file, or naming it that way in packages. Renaming the desktop file does not make any difference. I will email commercial support for MATLAB but frankly I do not hold much hope. > > Colin: Maybe there's another improvement the Shell could get here: even if the > .desktop file is missing, windows should be grouped correctly according to > their WM_CLASS. Currently, it seems that all windows grouping is lost when it's > missing. I suspect that's because ShellAppTracker doesn't create an item for > this app. It should probably create a dummy item. (We've already seen this > problem with other programs lacking a correct WM_CLASS.)
If my trick doesn't work, there's something weird going on, and there's no point in contacting MATLAB for now. But I find it weird it doesn't work. Have you restarted the Shell after renaming the .desktop file? I don't remember whether it's needed or not.
(In reply to comment #3) > If my trick doesn't work, there's something weird going on, and there's no > point in contacting MATLAB for now. > > But I find it weird it doesn't work. Have you restarted the Shell after > renaming the .desktop file? I don't remember whether it's needed or not. Yeah, a restart of the shell does not make any difference. I suspect that is also changes WM_CLASS after startup is finished. When first started MATLAB shows a splash screen with the following props XKLAVIER_STATE(INTEGER) = 0, 0 _NET_WM_STATE(ATOM) = WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 32, 2 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_MESSAGES(ATOM) = _MOTIF_WM_OFFSET WM_PROTOCOLS(ATOM): protocols _MOTIF_WM_MESSAGES, WM_DELETE_WINDOW WM_CLIENT_LEADER(WINDOW): window id # 0x240000c WM_LOCALE_NAME(STRING) = "en_NZ.utf8" WM_CLASS(STRING) = "MATLAB", "MATLAB" WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified location: 442, 125 program specified size: 394 by 394 window gravity: NorthWest WM_CLIENT_MACHINE(STRING) = "nzjrs-netbook" WM_ICON_NAME(STRING) = "MATLAB" WM_NAME(STRING) = "MATLAB" A special hack for matlab would be much appreciated (or the ability to add such hacks via extension, they used to be in C IIRC) - MATLAB is ubiquitous in education/science/engineering
Ah, good catch! If it changes WM_CLASS dynamically, then a recent commit should improve things. See bug 649315. Were you using the Shell from git? If not, would be worth trying.
This is still true on gnome-shell 3.2 (Fedora 16). Very frustrating with a dozen matlab figures open and my dash ends up with tiny little icons. It also means the application-based alt-tab is difficult to use. I've tried messing around with various com-mathworks-util-PostVMInit.desktop files including various settings to StartupWMClass=com-mathworks-util-PostVMInit, StartupWMClass=MATLAB, etc. Happy to help debug if possible. I spend a few minutes looking at the gnome-shell source but I can't even find which js file is responsible for window matching.(looking at the patch in 651014 suggests its in the C code).
What does 'xprop' run on the MATLAB window say? Still the same? It would be good to file a bug against MATLAB, anyway.
(In reply to comment #7) > What does 'xprop' run on the MATLAB window say? Still the same? > > It would be good to file a bug against MATLAB, anyway. What should the bug say exactly? If you tell me, I will file it. I think it is worth working around - old MATLAB versions persist in use for a long time (because depending on your university/company/cod/ upgrading can be daunting and prohibitively expensive)
Here are four different xprops. I think it looks similar to the OP. *** Startup splash screen *** XKLAVIER_STATE(INTEGER) = 0, 0 _NET_WM_STATE(ATOM) = WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 25, 2 _NET_WM_DESKTOP(CARDINAL) = 4 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_MESSAGES(ATOM) = _MOTIF_WM_OFFSET WM_PROTOCOLS(ATOM): protocols _MOTIF_WM_MESSAGES, WM_DELETE_WINDOW WM_CLIENT_LEADER(WINDOW): window id # 0x300000c WM_LOCALE_NAME(STRING) = "en_US.utf8" WM_CLASS(STRING) = "MATLAB", "MATLAB" WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified location: 439, 141 program specified size: 400 by 400 window gravity: NorthWest WM_CLIENT_MACHINE(STRING) = "aconite.localdomain" WM_ICON_NAME(STRING) = "MATLAB" WM_NAME(STRING) = "MATLAB" -------------------------------------------------------- *** Main matlab window ("matlab -desktop", not all users will see this) *** XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_DESKTOP(CARDINAL) = 4 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0 _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x3e, 0x0, 0x40, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0 XdndAware(ATOM) = BITMAP _NET_WM_STATE(ATOM) = WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 25, 2 WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 321, 178 program specified location: 321, 178 program specified size: 742 by 499 window gravity: NorthWest _NET_WM_ICON(CARDINAL) = Icon (32 x 32): ---8<--- WM_PROTOCOLS(ATOM): protocols WM_TAKE_FOCUS, WM_DELETE_WINDOW WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" WM_CLIENT_LEADER(WINDOW): window id # 0x440002f _NET_WM_ICON_NAME(UTF8_STRING) = "MATLAB R2011b" WM_ICON_NAME(STRING) = "MATLAB R2011b" _NET_WM_NAME(UTF8_STRING) = "MATLAB R2011b" WM_NAME(STRING) = "MATLAB R2011b" -------------------------------------------------------- *** a matlab figure window (I would typically have lots of these) *** XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_DESKTOP(CARDINAL) = 4 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0 _NET_WM_STATE(ATOM) = WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 349, 15 program specified location: 349, 15 program specified size: 560 by 475 window gravity: NorthWest _NET_WM_ICON(CARDINAL) = Icon (48 x 48): --- 8< ---- _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 25, 2 WM_PROTOCOLS(ATOM): protocols WM_TAKE_FOCUS, WM_DELETE_WINDOW WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" WM_CLIENT_LEADER(WINDOW): window id # 0x440002f _NET_WM_ICON_NAME(UTF8_STRING) = "Figure 1" WM_ICON_NAME(STRING) = "Figure 1" _NET_WM_NAME(UTF8_STRING) = "Figure 1" WM_NAME(STRING) = "Figure 1" -------------------------------------------------------- *** a matlab editor (I never use this but many people will) *** XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_DESKTOP(CARDINAL) = 4 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x1, 0x1, 0x0, 0x0 _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0xeb, 0x0, 0x40, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0 XdndAware(ATOM) = BITMAP _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 25, 2 _NET_WM_STATE(ATOM) = WM_HINTS(WM_HINTS): Client accepts input or input focus: False Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 53, 68 program specified location: 53, 68 program specified size: 780 by 490 window gravity: NorthWest _NET_WM_ICON(CARDINAL) = Icon (48 x 48): --- 8< --- WM_PROTOCOLS(ATOM): protocols WM_TAKE_FOCUS, WM_DELETE_WINDOW WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "com-mathworks-util-PostVMInit" WM_CLIENT_LEADER(WINDOW): window id # 0x440002f _NET_WM_ICON_NAME(UTF8_STRING) = "Editor - /home/cbm/cbm_interp1.m" WM_ICON_NAME(STRING) = "Editor - /home/cbm/cbm_interp1.m" _NET_WM_NAME(UTF8_STRING) = "Editor - /home/cbm/cbm_interp1.m" WM_NAME(STRING) = "Editor - /home/cbm/cbm_interp1.m"
I have a workaround! short version: the .desktop file needs to be all lowercase. (i.e., not what is output from xprop). I read the source code (shell-window-tracker.c) further and put in some debugging codes. Basically the matlab windows always hit the "last resort" case of get_app_for_window(). Is the lowercase thing a gnome-shell bug or is it supposed to be that way? If creating a .desktop file based on WM_CLASS of xprop is a common workaround, then this would be easy to miss.
(In reply to comment #10) > I have a workaround! short version: the .desktop file needs to be all > lowercase. (i.e., not what is output from xprop). So what is the name? com-mathworks-util-postvminit.desktop matlab.desktop ?
Actually, I can confirm that naming the desktop file com-mathworks-util-postvminit.desktop seems to work. Thanks
Good catch! (In reply to comment #10) > Is the lowercase thing a gnome-shell bug or is it supposed to be that way? If > creating a .desktop file based on WM_CLASS of xprop is a common workaround, > then this would be easy to miss. I don't think that's really intended. It would be easy to convert both strings to lowercase before comparing them. Actually, since you found the code that compares the strings, you can probably write a small patch. ;-) (In reply to comment #8) > What should the bug say exactly? If you tell me, I will file it. They should use a correct WM_CLASS, in their case the most logical name would be MATLAB, just like they do for the splashscreen. But the only requirement is that the .desktop file uses the same string as the second WM_CLASS string (which is currently com-mathworks-util-PostVMInit).
Created attachment 204333 [details] com-mathworks-util-postvminit.desktop Instructions for anyone who gets here looking for the workaround: Save this .desktop file in ${HOME}/.local/share/applications (or /usr/local/share/applications). It must be all lowercase. You can get a nice icon from http://www.mathworks.com/matlabcentral/fileexchange/24085
It's at least mentioned in a drive-by comment in https://live.gnome.org/GnomeShell/ApplicationBased For some reason apps usually have capitalized WM_CLASS, and the desktop files are lower-case.
(In reply to comment #15) > It's at least mentioned in a drive-by comment in > https://live.gnome.org/GnomeShell/ApplicationBased That page says "n.b. case is not important"
(In reply to comment #16) > (In reply to comment #15) > > It's at least mentioned in a drive-by comment in > > https://live.gnome.org/GnomeShell/ApplicationBased > > That page says "n.b. case is not important" Meh. I corrected this. I guess it's more correct now, on account of it working...
Bug #667011 for the lowercase/uppercase thing.
OK, thanks for the debugging. I'm closing this report as it's about a problem in MATLAB, but let's keep the new one open for the part that should be fixed in the Shell (lowercase/uppercase issue). If you file a bug against MATLAB, please post the link here for reference.
@Colin, Does R2011 even install a desktop file? I don't remember if R2009 does or if I created it manually. @Milan, Can a workaround be added that aliases bla-bla-postvminit.desktop to matlab.desktop (or whatever desktop file matlab installs)? As I said, the life-cycle of matlab is quite long, in addition to the low likelihood of this proprietary application fixing this minor bug report within some finite time. IIRC there used to be work arounds for OOo, and that had a much higher chance of getting fixed (and a shorter life-cycle).
@John, AFAIK, matlab doesn't install a matlab.desktop. If one also creates a matlab.desktop file, then that will match the matlab splash screen. Which will give it a nice icon on the dash but otherwise doesn't seem to do much (note that its a separate icon on the dash then the eventual matlab window and figures). ---- I just tested with GNU Octave and it has a similar problem, each figure window has a WM_CLASS of "FLTK" (using the fltk backend). With gnuplot backend, there is not WM_CLASS (!). I'll file a bug with octave---lets get our own house in order before we worry about the proprietary folks :-) Ipython 0.12 seems to work (i.e., matplotlib figures share a single dash item). ---- @Milan, are there any plans for a "quirks" db to handle various old applications? E.g., that could feed into the window tracker "heuristics" function.
Here's the octave bug: http://savannah.gnu.org/bugs/index.php?35199
I'm really not the one deciding whether or not quirks should be added for specific applications, but we've never done this in the past, except for LibreOffice. The latter is a little special since a failure to detect it means Writer can appear as Draw, etc. Personally, I'm not opposed to it at all, but you should ask walters on IRC.