<<<
Some of the things (in very short form) that need to be done to E17...
(These are in no particular order)
>>>

[[[
-------------------------------------------------------------------------------
  BUGS / FIXES
-------------------------------------------------------------------------------

* BUG: e often forgets what window is focused so ctrl+alt+x for example doesnt
  close the current focused window... hmmmm
* e_hints.c manually changes flags on a border instead of calling
  e_border_stick() for example or the calls in e_border.c - add calls as needed
  to e_border.c. before calling check the lock flags too.
* BUG: in general fullscreen needs work, cleaning and testing. dont allow
  desktop switches for the desk a fullscreened window is on, nor allow windows
  to be raised above the fs win etc. ie the app must seem to be entirely fs for
  that zone.
* BUG: if i downclock my machine to like 400mhz (make it sloooow) or load it
  down with lots of load and then hold down ctrl+alt+right for a while
  windows on desktops vanish... there must be a race condition with a
  map/unmap event and something else... they still are around in x- just e
  hides them and never shows them again
  fullscreen. is this correct?
* BUG: Check stacking in pager, doesn't care about below, above.
  e_container_border_raise/lower should return what window they are above/
  below.
* 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
* BUG?: xine's ui window/panel is under its video window when u go fullscreen
]]]

[[[
-------------------------------------------------------------------------------
  ESSENTIAL FEATURES
-------------------------------------------------------------------------------

* desktopname could reaally be part of pager - and display a full pager layout
  of all desktops and whihc one of them just got selected
* if a parent window is "on top" child dialog windows should also be "on top"
* in addition to smart place should add manual placement and place at pointer
  and maybe a few others.
* support xrandr to change res from e itself (and save it etc.)
* emit signal to submenu entries if they have a submenu shown for them or not
* add fullscreen support (e16 xvidmode or xrandr style)
* implement thees maximise/fullscreen modes:
  Which of these should be different modes, and which should be options for
  a mode? i think they all should be distinct actions of their own bound
  to a key, button etc. which one of these the maximize button on a window
  will execute should be a configuration value though :)
  1. fullscreen (no border - resizes to default screen res). window is locked,
     no mouse bindings work. any focus change out of thsi window will go out of
     fullscreen  mode
  2. zoom (changes screen res to match window, or closest res thats bigger
     than the window, centers it - no borders/title etc). window is locked, no
     mouse bindings work. any focus change out of thsi window will go out of
     zoom  mode
  3. maximise (only title is displayed - program fills the rest of the screen)
     disable resize, shade, move etc. in this mode. iconify is ok.
  4. maximise2 (maximise window up to the edge of panels, gadgets etc. -
     disable all resizing and moving just like 1, 2 nd 3 (maybe make border
     thinner to indicate this). disable stuff like 3.
  5. expand (just resize window to fill the same space as 4. - but it still can
      be shaded, resized, moved etc.)
  6. fill (expand to the nearest window edge or screen edge)
  for 5 and 6 u want to able to do this independently for width and height as
  well as for both at once. for 1. & 2. if window max size (or aspect
  adjusted size) is smaller that screen max size, fill in space in between
  with black. for 3. we want to fill the inbewteen space with some theme
  defined image data
* implement a better dialog for things like "do you want to do X - yes or no?"
* dialogs for generic contents too
* netwm window types and states need addressing (do special/appropriate things)
  for each of them.
* netwm frame extents request (_e_manager_cb_frame_extents_request) needs
  to properly choose the border based on client window properties.
* do something with the icccm urgency field hint
* different borders for non-resizable windows, shaped windows etc.
* break out ipc to set names for desktops (and get names/list them)
* some sort of gui display of a desktop name (in the pager?)
* window icons should be able to be chosen if e eapp icon overrides netwm
  icon or the other way around (and remember this).
* transients should have option to always follow parent
  (move/resize/raise/lower) (and remember this).
* actions to make current zone different (warp mouse to there)
* actions to make the current container different
* titlebar/border expansion/gadget panel for modules to put window widgets in
* break out desks x/y size config so you can have a different desktop size
  per zone - right now there is a signle global (use this later as the default
  for new/unconfigured zones)
* language packs: need to have a tool to load/setup a language pack (which
  means .mo compiled files from a .po, an optional font and a config file that
  specifies the locale and font) and then install the font(s) either as a user
  or superuser, and the .mo in the system or a user locales dir.
* all menus need icons if they dont have them  yet:)
* gadget containers (shelves?) using popups as well as in-line in a canvas
* add key input focus control for desktop modules
* finish off icccm support
* finish complete netwm support
* make the cursors an edje buffer canvas for changing cursor depending on
  context
* different cursors for different parts of the screen
* add a "taskbar" module
* add cpu load module
* add a way to access "all" apps app dir
* dnd from pager to other pagers/ to desktop/ibox etc.
* ibar should enable user to select different dirs to view per bar and allow
  new bars to be created or bars to be deleted
* ibar need to support label pop-ups
* ibar should support subdirs with pop-up icons...
* borders need to be able to change border theme on the fly by menu or app
  properties
* add window glueing
* add setup/install wizard to seed eap files etc. etc.
* support text and color classes
* add clientinfo pane/popdown for borders
* add sliders, radio and check buttons for clientinfo pane
* make xrandr support get rotation and store it
* add separate app menu bars at top of screen support
* add really nice "about" box with theme, authors credits list etc etc.
* theme about data/box
* gui config tools for bg's, keybindings, etc. etc. etc.
* "control panel" app to launch the gui config tools
* make it possible to disable border buttons/actions (tell theme what is
  disabled)
* modules need config dialogs instead of long winded menus
* remove module config menus (make them part of the module control panel etc.)
]]]

[[[
-------------------------------------------------------------------------------
  CLEANUPS
-------------------------------------------------------------------------------

* winlist should support place for window "screenshot" in list as well as
  app icon
* winlist should in theory allow horizontal list layout not just vertical (set
  by the theme)
* winlist could divide windows up into blocks - sub-lists within a container
  per desktop (with stick windows considered to live on the "current" desk
  when winlist starts)
* make it easy for modules to hook into ipc and extend it for themselves
* gadman needs some changes to virtualise the canvas/container the gadget
  ends up in (eg in popups or border)
* perhaps we should 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...
* module api needs to move label and icon to data file (.eap file?), not api
* ibar lamp needs short timer on mouse out for hide before hiding (and del
  the time on mouse in)
* allow object paranoia to be a runtime option too
]]]

[[[
-------------------------------------------------------------------------------
  "NICE TO HAVE" FEATURES
-------------------------------------------------------------------------------

* screensaver/lock module
* tip/hint/suggestion dialog app (textblock etc.)
* add tooltips
* add locale and encoding fields to eapp files (to launch eapp in that
  locale+encoding)
* add input method selector stuff to eapp - same as locale
* "run command" typebuffer thing
* setup configs for gnome and kde (as options) if they are installed (eg
  run gnome-settings-daemon).
* check evas has eet support early on.
* pagers should be able to be configured to control more than the current zone
  (select which zone they control)
* start module needs to have a way to alert users to "click here" and back
  off alerting users as they learn what it is (over time)
* non opaque move/resize
* add window tabs (multiple clients in 1 border)
* add a button area expansion for borders ???
* add template button for expanded buttons ???
* maybe add systray module/support?
* add "osd" subsystem for things like volume controls on keybboards, etc.
  that overlay the screen
* file icons on the desktop (people ask for it) - xdnd for these
]]]

[[[
-------------------------------------------------------------------------------
  OPTIMISATIONS
-------------------------------------------------------------------------------

* optimize clock theme (speed/cpu) (rotation in edje??? or evas???)
]]]

