Photoshop transient windows

Just wondering if anyone out there has had success in taming photoshop windows in Fvwm. Fluxbox seems to handle them well. Here’s what I’m currently doing…

Style Photoshop.exe MiniIcon photoshop:16x16, WindowListSkip
  1. using !DecorateTransient makes the UI windows look right but also removes decoration on dialogues (like color) that I’d like to be able to move (so I can see what’s happening while I do it).

  2. I end up needing to use WindowListSkip to keep from every photoshop related window showing up in my windowlist. I’ve tried to identify the problematic windows, but they give me the same information as the main photoshop window.

Thoughts?

What does the output of “xprop” say about these windows?

– Thomas Adam

One quick comment before the code: I took WindowListSkip off for the photoshop windows and although only the one window shows up on my FvwmIconMan, all of the windows show up in my window list (i.e. alt+tab) without names.

xprop for the main photoshop window:

XKLAVIER_STATE(INTEGER) = 0, 0
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_WIN_AREA(CARDINAL) = 0, 0
_WIN_WORKSPACE(CARDINAL) = 0
_WIN_LAYER(CARDINAL) = 4
_WIN_STATE(CARDINAL) = 0
_NET_FRAME_EXTENTS(CARDINAL) = 2, 2, 22, 2
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 2, 2, 22, 2
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_STICK
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_ICON_VISIBLE_NAME(UTF8_STRING) = 0x41, 0x64, 0x6f, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, 0x6f, 0x70
_NET_WM_VISIBLE_NAME(UTF8_STRING) = 0x41, 0x64, 0x6f, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, 0x6f, 0x70
_NET_WM_NAME(UTF8_STRING) = 0x41, 0x64, 0x6f, 0x62, 0x65, 0x20, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, 0x6f, 0x70
WM_ICON_NAME(STRING) = "Adobe Photoshop"
WM_NAME(STRING) = "Adobe Photoshop"
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
		bitmap id # to use for icon: 0x20000a2
		bitmap id # of mask for icon: 0x20000a1
		window id # of group leader: 0x2600005
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x3e, 0x7e, 0x7f22f5b4, 0x460
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified location: 152, 52
		window gravity: Static
XdndAware(ATOM) = ATOM
_NET_WM_PID(CARDINAL) = 27519
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "dell-desktop"
WM_CLASS(STRING) = "Photoshop.exe", "Wine"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING, WM_TAKE_FOCUS

Compared with the photoshop navigator window:

WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_WIN_AREA(CARDINAL) = 0, 0
_WIN_WORKSPACE(CARDINAL) = 0
_WIN_LAYER(CARDINAL) = 4
_WIN_STATE(CARDINAL) = 0
_NET_FRAME_EXTENTS(CARDINAL) = 2, 2, 22, 2
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 2, 2, 22, 2
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_STICK
_NET_WM_DESKTOP(CARDINAL) = 0
_NET_WM_NAME(UTF8_STRING) = 
WM_ICON_NAME(STRING) = 
WM_NAME(STRING) = 
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
		window id # to use for icon: 0x260001d
		window id # of group leader: 0x2600005
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x3, 0x4, 0x0, 0x7f22efc4, 0xd1
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_UTILITY
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified location: 1004, 127
		program specified minimum size: 212 by 131
		program specified maximum size: 212 by 131
		window gravity: Static
WM_TRANSIENT_FOR(WINDOW): window id # 0x2600005
XdndAware(ATOM) = ATOM
_NET_WM_PID(CARDINAL) = 27519
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "dell-desktop"
WM_CLASS(STRING) = "Photoshop.exe", "Wine"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING, WM_TAKE_FOCUS

Thanks!

Well, this is always going to be an oddity, since it’s a Wine issue – the application you see is… not what you’d think.

I do note from the xprop output that one of those windows breaks the ICCCM by having:

WM_NAME(STRING) =

Now unless that’s a typo, there should be something there.

I don’t think you can achieve what you want directly, you’d have to try and see what happens with various ordering of your Style lines to alternate between this “Photoshop.exe” stuff and the “Wine” class of windows.

– Thomas Adam

Thanks for your help Thomas.

I tried xprop on the navigator window again and it turns out it wasn’t a typo. Normally I’m prepared for just about anything when running a windows program through wine, but since KDE and Fluxbox seemed to handle it well I thought maybe I just needed the right Style commands.

The issue certainly isn’t a big deal, other than the fact that I get caught up with trying to fix it when I should be using the program to get some work done. I’ve tried a few different combinations for my Style commands (one for wine, one for photoshop), and played with the ordering but haven’t succeeded yet.

One last interesting tidbit is that when I ran the same version of photoshop using crossover office, the transient window problem didn’t exist (though I think their were other issues; hence why I’m not using it anymore).