xpra icon
Bug tracker and wiki

Opened 6 years ago

Last modified 9 months ago

#508 assigned enhancement

MS Windows taskbar integration

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 5.0
Component: platforms Version:
Keywords: win32 taskbar Cc:

Description (last modified by Antoine Martin)

Windows 7 onwards support customization of the taskbar entry for our application, we could do something with it:

  • simply add the most common tray menu options there (since the tray is now also hidden by default..)
  • use it for forwarding application menus if it has some (see #228 for Ubuntu's global menu)

Pointers:

See also #472

Attachments (1)

TaskbarLib.idl (2.7 KB) - added by Antoine Martin 4 years ago.
copy of the idl file

Download all attachments as: .zip

Change History (9)

comment:1 Changed 6 years ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to Antoine Martin
Status: newassigned

comment:2 Changed 5 years ago by Antoine Martin

Milestone: future0.15

Scheduling for this release, together with #472 and #476.

comment:3 Changed 5 years ago by Antoine Martin

Milestone: 0.150.16

Too late, re-scheduling.

comment:4 Changed 4 years ago by Antoine Martin

Best example code found so far:

Changed 4 years ago by Antoine Martin

Attachment: TaskbarLib.idl added

copy of the idl file

comment:5 Changed 4 years ago by Antoine Martin

The examples in comment:4 work but this is not the interface we need. We could still use them to enhance the tray/menu classes with progress bar support, etc.

  • make the tlb:
    midl TaskbarLib.idl /tlb TaskbarLib.tlb
    
  • use it with GTK: (requires comtypes)
    import gtk
    window = gtk.Window()
    window.show()
    
    import comtypes.client as cc
    cc.GetModule("TaskbarLib.tlb")
    import comtypes.gen.TaskbarLib as tbl
    taskbar = cc.CreateObject("{56FDF344-FD6D-11d0-958A-006097C9A090}", interface=tbl.ITaskbarList3)
    taskbar.HrInit()
    taskbar.SetProgressValue(window.get_window().handle,40,100)
    

For the menus, what we want is Tasks and more specifically: AddUserTasks.
There is some support for it in pywin32 already:

> from win32com.shell import shell
> shell.CLSID_DestinationList
IID('{77F10CF0-3DB5-4966-B520-B7C54FD35ED6}')

comment:6 Changed 4 years ago by Antoine Martin

Milestone: 0.16future

By the looks of things, "tasks" is not it: present even when the application is not running. Maybe Jump Lists?
But even that is not a good fit...

The only workable solutions that I can think of are:

Both of which would have all sorts of interesting interactions with window hints, size constraints, events, position...


Unrelated:

Last edited 4 years ago by Antoine Martin (previous) (diff)

comment:7 Changed 21 months ago by Antoine Martin

Milestone: future4.0

comment:8 Changed 9 months ago by Antoine Martin

Milestone: 4.05.0

Milestone renamed

Note: See TracTickets for help on using tickets.