wmbiff: tidy up socket connexions.
[dockapps.git] / wmswallow / todo
blobfb26bb334eb8c1620d6769f2e4e2991bc97bba95
1                                         -*- text -*-
2 TODO:
3         Bugs:
4 -------------
6         Feature-wishes:
7 -----------------------
8         detect automatically if a window wants to be managed or not (should be
9         easy, but the -unmanaged switch works well, too)
11         Kill apps nicely when killed. (Some signal handling)
13         Make wmswallow not only accept mouseclicks on ButtonPress, but also get
14         some contents of the cutbuffer on (say) a middleclick, and then do
15         something user-defineable about it. (generic solution for wmnetselect
16         stuff)
18         Write manpage
20         Maybe write freebsd port
22         Do things reliably/the clean way
23            -> I mean, don't wait for some microsecs, when you can ask the app
24               what's up -> find out how! -> XSync seems to work...
25            -> Wait a second at the right moment helps some things greatly!
26               Still i don't know if it's the "right thing"[TM]
28         Problems (maybe unresolvable):
29 --------------------------------------
30         WindowMaker segfaults if an instance of wmswallow hangs when
31         the wm is restarted -> Probably windowmaker bug, but can be fixed by
32         better signal-handling on behalf of wmswallow
34         If you swallow apps on the clip *and* in the dock at the same time,
35         the apps for the clip wander to the dock and vice versa...
36             Huh? This is most strange. I fear that looks like one of
37             WindowMaker's many bugs.. :) (Yeah, blame it on others, good
38             strategy!)
40         Shaped apps that change their shape will look "out of sync". This is
41         especially visible with
42         wmswallow xdaliclock xdaliclock -24 -transparent -cycle \
43                        -geometry 61x61 -fn fixed -oink-oink
44         There are other problems with xdaliclock -transparent (flicker, the
45         seconds are lagged behind respectively out of beat) which do not
46         depend on wmswallow and can be noticed as well, when
47         xdaliclock -transparent is not being swallowed.
49         perfmeter objects to have its mouseclicks selected
50                 -> As a workaround, i make the XInputSelect Mask dependant on
51                    whether the user wants to click on the window, or not. But
52                    i'd like to do it better (i.e. force perfmeter to accept
53                    the change)
54                 -> In fact, for every application that selects ButtonPress
55                    events, the same events cannot be selected twice (manpage
56                    of XSelectInput(3))
57                 -> It seems, this "Problem" cannot be fixed!
59         click works only on the surface of the swallowed window:
60         (Obviously, because the rest of the area belongs to the
61         dock... Or can that be redeemed?)
64 ===============================================================================
65 DONE:
66         Make basic dockable App
68         Then steal code off fvwm2 to learn how to swallow stuff
69                 -> done.. Wow! That's easy!
71         Resize swallowed window appropriately
73         Judge what to get by following rule:
74                 1. name
75                 2. class
77         Get command to run from commandline and spawn program.
79         Somehow handle shaped windows (Like xeyes)
80                 -> Ok, even resizing works
82         Option: -updateshape (or similar) for apps that change their shape
83                 (like oclock -transparent)
84                 -> is done by default behaviour! :-)
86         Clean up allocated space (fix memory holes)!
87                 -> Looks ok now. Sending multiple Events under X11 has evil
88                    effects!
90         Better command-line switch handling. Following commandline-switches:
91                 -noshape/-shape : Switch shape functionality on or off
92                 -getclick: Define commandline to exec when window is clicked
93                 -geometry: Define geometry of swallowed application!
94                         (Size is useful, position as well, to adjust asclock)
95                 -id: Give Window-id to swallow
97         Freshmeat announcement
99         Let apps take keyboard focus
100             -> might or might not be a problem with windowmaker/dock
101             -> It wasn't... :-) wmMand used Enter and Leave events and then set
102                the focus for himself. And i blatantly stole the code... (just
103                2 lines...) :-)
105         The currently focused window flickers, when the shape gets updated.
106         This is especially strong with
107              wmswallow xdaliclock xdaliclock -24 -transparent -cycle \
108                        -geometry 61x61 -fn fixed -oink-oink
109         This also interferes with focus, and it can be seen that the shape
110         gets updated in an unclean way, i.e. the shape and the graphics seem
111         "out of sync"
112              -> Action on Focus event shortened, XMapSubwindows and XMapWindow
113                 weren't necessary, stealshape only grabs the shape to the
114                 iconwin
116         Swallowing sometimes is unreliable (especially on WindowMaker start
117         with many instances) ... Why?
118                 -> Theory: Maybe when several instances of wmswallow start,
119                    the tree of windows gets changed in a way that sometimes a
120                    window cannot be found anymore.
121                 -> Jason helped a little, i figured the rest out... every
122                    windowmanager reparents windows, and waiting for that is
123                    very reliable...
124                         -> done!
126         some apps cannot be found (xmountains). Why? xmountains in particular
127         seems to lack a window-id. I didn't know that was possible...
128                 -> resolved by Jason, i did not really check the WM_NAME
130         just made an rpm specfile