help-emacs-windows
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [h-e-w] Windows 10 Taskbar Behavior


From: Eli Zaretskii
Subject: Re: [h-e-w] Windows 10 Taskbar Behavior
Date: Fri, 09 Oct 2015 10:40:19 +0300

> Date: Thu, 8 Oct 2015 23:09:18 -0400
> From: Rob Davenport <address@hidden>
> Cc: "address@hidden" <address@hidden>
> 
> This issue intrigued me so I kept looking into it and here's what I've found.

Thank you for your research.

> In Windows 7 and newer, the shell (Explorer.exe) changed the behavior of the
> taskbar, and groups taskbar items (processes, files, windows, etc.) to make it
> easier to find what you're working on (and share features like the jumplists
> and taskbar preview). In order to do that, the shell needs a way of 
> identifying
> what to group.It does this using the "Application User Model ID". (See
> https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
> and http://blogs.msdn.com/b/oldnewthing/archive/2012/08/20/10341464.aspx for
> some good details.)
> 
> The Windows shell uses some heuristics to try to identify what should be
> grouped but it isn't perfect. For example, for programs started via shortcuts,
> the target in the shortcut must be the same. So if you have two shortcuts to
> the same program but with different command line parameters, they would be
> considered different and not be grouped. For processes it assumes only
> processes with the same name should be grouped. And that's the situation with
> Emacs - emacs.exe and runemacs.exe aren't considered the same by the Windows
> shell and it doesn't group the icons on the taskbar and similar undesired
> behavior we see. 
> 
> Microsoft says the way to solve this is to explicitly set an AppID which
> overrides the heuristics. So for better behavior in Windows 7 and later, all
> emacs processes (emacs.exe, runemacs.exe, emacsclientw.exe, etc.) should be
> modified to call SetCurrentProcessExplicitAppUserModelID() during their
> startup.

Yes, that's true.  However, Emacs on Windows has been doing precisely
that, i.e. calling SetCurrentProcessExplicitAppUserModelID, since
2009, i.e. since Emacs 23.2 at least.  And IME it works fine on
Windows 7.  The question is, why doesn't it on Windows 10?

IOW, the issue is not the changes in Windows 7, which we already
handle, AFAIK, but the changes in Windows 10.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]