135 lines
6.4 KiB

Status: OFF
What is this:
We will have lots more of these during e17 devel for serveral reasons. A mini
freeze is a call to STOP adding new features and funkiness. It means people
need to stop and go BACK over their code and fix FIXME's. All those bits of
code where things are string together with sticky tape and chewing gum need
to be fixed PROPERLY. This may mean pooling code into a common subsystem
(this is not a new feature. it is fixing loose ends with design). This may
mean adding api calls to make implementation cleaner or remove hacks. it may
mean more debugging tools in things like e_object and more checks for sanity.
This means testing stuff so it doesnt crash. or make things unusable or leak
memory. check leaks (use valgrind or whatever tools) to check for leaks, and
for stability issues. double check you return the correct values from
functions or use return values. Check callbacks. Compile with -W -Wall to
help find obvious bugs waiting to happen. Modules need to clean up on
shutdown. Code needs to use the appropriate subsystem that is available for
what it wants OR a subsystem needs writing if it will be a shared/common
This issues list must be brought to 0 size before E17 features can move
Current freeze issues are:
<add more issues as they are found>
FIXME: group these TODO items into:
1. essential features
2. fixes
3. cleanups
4. optimisations
5. nice to have features
Some of the things (in very short form) that need to be done to E17...
Also look at all the .c files - they have their own localized TODO lists
These are in no particular order:
* perhaps we shoudl split focus and "Selected" windows. selected window is
what ocused is now and focus is something only affectinbg keyboard input. if
the focus window becoems another managed window it becoems the selected
window - otherwise click to focus or pointer focus will chose the selected
window that may get the focus if it allows it...
* mplayer fullscreen screws up (reparenting issues)
* check window max size. if < size of zone (or maximisation area) disallow maximising and tell border edje object (via signals) to somehow disable the maximise buttons :) (and remove from the menu)
* drag and drop subsystem (just handling dragging with some icon being dragged around and then a drop somewhere)
* drag window icon (top-left) uses drag and drop to be able to drop on pager module and maybe ibar (to add the app to it?)
* bug: if you have 2 zones and you fill up zone 2 (right) mostly and then run a big xev (xev -g 1280x1024) that wont fit it gets placed offscreen to the right of zone 2
* gadman gadget menu needs icons :)
* module api needs to move label and icon to data file, not api
* gadman edit mode for simple gadgets activate with a key combo (eg alt+click on module)
* edit mode keybindings :)
* "start button" module to pop up the e menu (left mouse right now)
* click to focus
* make e17 re-locatable (ues environment var, or find out by hunting path argv[0] if its not a full path or munge the full path to the exe in argv[0])
* java apps seem to have a hard time if we dont pretend to be kwin (see e_hints.c) - get this stuff upstream to sun and get things fixed in java.
* gadget containers (shelves)
* track mouse location on a border/desktop level
* add key input focus control for desktop modules
* finish off icccm support
* optimize clock theme (speed/cpu) (rotation in edje???)
* add "icon box"
* add netwm support
* different cursors for different parts of the screen
* alt+tab status list of windows
* add a "taskbar" module
* add cpu load module
* make root menus configurable (what mouse/key brings up what)
* add a way to access all apps
* optimise client manage: list window properties then only fetch the ones that exist on window map
* non opaque move/resize
* ibar need to support label pop-ups
* ibar should support subdirs with pop-up icons...
* support dnd for ibar etc.
* borders need to be able to change border theme on the fly
* add window glueing
* add window tabs (multiple clients in 1 border)
* add setup/install wizard to seed eapp files etc. etc.
* make ipc try open on other ports numbers if current is taken
* make ipc try re-open if connection dies
* add clientinfo pane/popdown for borders
* add a button area expansion for borders
* add template button for expanded buttons
* add a status area expansion for borders
* add a status module template for borders
* support text and color classes
* add tooltips
* add fullscreen support (e16 xvidmode or xrandr style)
* add screen rotation info to managers (from xrandr)
* make xrandr support get rotation
* add rotation to containers
* fix multihead support (executing with DISPLAY=:0.1 on screen 1 for example)
* maybe add systray module/support?
* allow object paranoia to be a runtime option too
* add sliders, radio and check buttons for clientinfo pane
* add separate app menu bars at top of screen support
* add "osd" subsystem for things like volume controls on keybboards, etc. that overlay the screen
* add really nice "about" box with theme, authors credits list etc etc.
* init splash needs te be able to be signalled "end of init" and it can respond with a "splash end" signal
* "immortal" windows (e will not allow that window to be closed or will refuse to exit as long as the immortal flags is set until it is unset to stop users from doing silly things like logging out while important stuff is happening in that window -a menu option for this woudl be nice)
* ibar lamp needs short timer on mouse out for hide before hiding (and del the time on mouse in)
* need to be able to remember client positons/etc.
* file icons on the desktop (people ask for it) - xdnd for these
* gui config tools for bg's, keybndingins, etc. etc. etc.
* go through e16 features we dont have and implement the most useful ones (or re-design and implement)
* libehack from old e17 wrapper for executing apps
* use libehack stuff to track launches of apps etc.
* make it possible to disable border buttons/actions (tell theme what is disabled)
* make status modules (like cpu meter per window) use ehack to get pid to monitor it's cpu load
* modules need config executables with proper widgets (sliders, check boxes, radio etc. not massive menus)
* module control panel app
* remove module config menus (make them part of the module control panel and as separate executables)
* ipc needs to be massively useful and give all sorts of info and control
* tip/hint/suggestion dialog app (textblock etc.)
* segv/restart handler like e16.