From cb4ea83664e1a815075ff9a2120fda2e23b85cc6 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 24 Jun 2005 03:12:05 +0000 Subject: [PATCH] bugs/fixes on top as i think these should take priority - todo list is leaner now. SVN revision: 15512 --- TODO | 135 +++++++++++++++++---------------------------- src/bin/e_border.c | 10 +++- 2 files changed, 59 insertions(+), 86 deletions(-) diff --git a/TODO b/TODO index 09bfaa99f..681d28ea9 100644 --- a/TODO +++ b/TODO @@ -1,48 +1,50 @@ -MINI FREEZE: - -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 -feature. - -This issues list must be brought to 0 size before E17 features can move -further. - -Current freeze issues are: - -ISSUES: - - - - - - Some of the things (in very short form) that need to be done to E17... +(These are in no particular order) -Also look at all the .c files - they have their own localized TODO lists +------------------------------------------------------------------------------- + 1. BUGS / FIXES +------------------------------------------------------------------------------- -These are in no particular order: +* need to hide other windows while doing fullscreen. +* bug: on font apply borders need to be adjuted for size changes +* bug: font apply doesnt seem to keep working (edje problem?) unless you + restart +* bug: alt +click window (or just click its title) and start a move. if you + flip desktop WHILE moving (with key binding) the window will follow but the + pager doesnt update. +* bug: if you flip desktops while resizing resize should get aborted, not + continue. +* bug: if i downlock 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 +* bug: quit app while in fullscreen black bg stays +* bug: if focus changes while in fullscreen, un-fullscreen the app and deal + with focus +* pug?: pager problems. Seems to loose or mess up windows sometimes. +* bug?: xine's ui window/panel is under its video window when u go + fullscreen. is this correct? +* bug: pager doesnt handle container/zone resize properly (and goes a weird + size)??? (try resize screen to like 480x640 (new aspect)) +* bug: sometimes the mouse gets locked to a window with a mouse grab of some + sort in x (it gets the down event and not the up?) so e thinks its down but + it isn't +* bug: maximised apps when e restarts are not recognised as maximised +* bug: sometimes windows that get shut down/closed get unparented but the whole + border stays around - something is keeping extra references maybe? it is + hidden, until you flip desktops then it appears again - but with no client + around. currently they have a dangling reference - need to find out WHO + added that ref and didnt remove it (i haven't seen this for ages now) +* bug: fix action delete (can segv if action is stored for "long runing actions" + like move/resize) +* 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 - - -1. essential features +------------------------------------------------------------------------------- + 2. ESSENTIAL FEATURES +------------------------------------------------------------------------------- * add fullscreen support (e16 xvidmode or xrandr style) * implement thses maximise/fullscreen modes: @@ -155,48 +157,9 @@ These are in no particular order: as separate executables) * actuallly break out ipc and config to set bg per desktop (per zone) -2. fixes - -* need to hide other windows while doing fullscreen. -* bug: on font apply borders need to be adjuted for size changes -* bug: font apply doesnt seem to keep working (edje problem?) unless you - restart -* bug: alt +click window (or just click its title) and start a move. if you - flip desktop WHILE moving (with key binding) the window will follow but the - pager doesnt update. -* bug: if you flip desktops while resizing resize should get aborted, not - continue. -* bug: if i downlock 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 -* bug: resize of xmms playlist is broken when sizing up -* bug: this same bug can be seen resizing eclipse - it stays 1 event behind -* bug: quit app while in fullscreen black bg stays -* bug: if focus changes while in fullscreen, un-fullscreen the app and deal - with focus -* pug?: pager problems. Seems to loose or mess up windows sometimes. -* bug?: xine's ui window/panel is under its video window when u go - fullscreen. is this correct? -* bug: pager doesnt handle container/zone resize properly (and goes a weird - size)??? (try resize screen to like 480x640 (new aspect)) -* bug: sometimes the mouse gets locked to a window with a mouse grab of some - sort in x (it gets the down event and not the up?) so e thinks its down but - it isn't -* bug: maximised apps when e restarts are not recognised as maximised -* bug: sometimes windows that get shut down/closed get unparented but the whole - border stays around - something is keeping extra references maybe? it is - hidden, until you flip desktops then it appears again - but with no client - around. currently they have a dangling reference - need to find out WHO - added that ref and didnt remove it (i haven't seen this for ages now) -* bug: fix action delete (can segv if action is stored for "long runing actions" - like move/resize) -* 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 - -3. cleanups +------------------------------------------------------------------------------- + 3. CLEANUPS +------------------------------------------------------------------------------- * make auto kill client and the kill() stuff config options * make 10.0 sec ping time and the 10.0 sec wait for a SIGKILL an option @@ -215,13 +178,15 @@ These are in no particular order: the time on mouse in) * allow object paranoia to be a runtime option too -4. optimisations +------------------------------------------------------------------------------- + 4. OPTIMISATIONS +------------------------------------------------------------------------------- * could speedup dropshadow's gaussian blurr with mmx and sse by doign 2 or 4 rows at once * optimize clock theme (speed/cpu) (rotation in edje??? or evas???) -5. nice to have features + 5. "NICE TO HAVE" FEATURES * "run command" typebuffer thing * icons should be able to be overidden from the theme (eapp and menu stuff diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 8ac7de584..7519b9f0c 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2691,6 +2691,8 @@ _e_border_cb_sync_alarm(void *data, int ev_type, void *ev) if (!bd) return 1; bd->client.netwm.sync.wait--; bd->client.netwm.sync.time = ecore_time_get(); + if (bd->client.netwm.sync.wait <= 0) + _e_border_resize_handle(bd); return 1; } @@ -3277,12 +3279,18 @@ _e_border_cb_mouse_move(void *data, int type, void *event) } else if (bd->resize_mode != RESIZE_NONE) { +#if 0 + /* FIXME: it seems we send sync requests we dont get replies to */ + /* ie our sync wait > 1 often - try eclipse - its slow enough to */ + /* REALLY show how bad this is */ + printf("SYNC %i - %3.3f\n", bd->client.netwm.sync.wait, + ecore_time_get() - bd->client.netwm.sync.time); if ((ecore_time_get() - bd->client.netwm.sync.time) > 0.5) bd->client.netwm.sync.wait = 0; if ((bd->client.netwm.sync.request) && (bd->client.netwm.sync.alarm) && (bd->client.netwm.sync.wait > 1)) return 1; - +#endif _e_border_resize_handle(bd); } else