Awn

Fail gracefully in a non-composited environment

Bug #128383 reported by Neil J. Patel on 2007-07-25
8
Affects Status Importance Assigned to Milestone
Awn
Medium
haytjes

Bug Description

Awn should fail gracefully when it is started in an non-composited environment, instead of showing a large black bar across the bottom of the screen.

Neil J. Patel (njpatel) on 2007-07-25
Changed in awn:
assignee: nobody → njpatel
importance: Undecided → Medium
status: New → Confirmed
Michael Rooney (mrooney) wrote :

Defining "fail gracefully" could be challenging. For me, I don't have any other task list, so if I need to disable compositing temporarily, it is useful to still have it there to switch tasks, even if it doesn't look at greatest. Otherwise I would have to add a new panel to Gnome and add a Task List, then remove it later.

For users who permanently can't use it, I guess I see where this might be annoying, but then why are they running it?

One thought that I had was that maybe one of the first lines in AWN could attempt to detect a running compositor and if the test fails display a dialog saying that AWN doesn't run without a compositor. The main issue I can see with that would be that on log in often AWN starts before Compiz. I know that can be fixed but the whole point seems to make AWN easier for the normal user so do we really want them messing that much with their sessions?

To answer the question "For users who permanently can't use it, I guess I see where this might be annoying, but then why are they running it?"

It seems to be a good idea to inform them why they can't run it as opposed to making them think AWN is just messed up.

haytjes (h4writer) wrote :

Okey, I was wrong.
I found the detection method. Will write now something that will detect everything and fail gracefully (if in a non-composited environment) ...

Changed in awn:
assignee: njpatel → h4writer
haytjes (h4writer) on 2007-09-04
Changed in awn:
status: Confirmed → In Progress
haytjes (h4writer) wrote :

Here is the patch.

If no composited environment is founded, it will hide everything (so you don't see the black boxes) and from the moment a compositing manager is started everything will get visible. That way there isn't a problem when awn is started before compiz and does AWN fail gracefully when there is no compositing manager. It also prints a message in the Terminal that you need to start a compositing manager.

Can some guys test it out, before I commit it to bzr.

haytjes (h4writer) wrote :

Improved it a bit (now you only get the error when you start it without compositing manager) and committed to bzr.

Changed in awn:
status: In Progress → Fix Committed
Garoth (garoth) on 2007-09-25
Changed in awn:
status: Fix Committed → In Progress
Garoth (garoth) wrote :

Sorry, I re-opened this bug.

The patch is very nice, and it impressed me considerably, but there is still an issue with the new patch. Sometimes, the there is a problem after the switch. It may not actually be AWN's fault, but I thought I'd bring it up.

Please see attachment for a screenshot explaining this better than I can by words.

Some notes about under what conditions this happens...

1) Beryl
2) After running a fullscreen, 3D program outside of composting mode. In my case, Tremulous (the open source FPS).

Considering that fullscreen 3D programs are atm the #1 reason to switch out of composting... this is somewhat of an issue. Again, though, I'm not sure where a fix for this would lie. Naturally. close this bug again if you think that nothing can be done/this is not the fault of AWN.

Garoth (garoth) wrote :

Hmm... sometime while I was writing the last note, AWN actually corrected itself without any further interference. Thought to mention this.

Garoth (garoth) wrote :

Drat, I keep noticing useful things... there is some irregular behaviour in my log while awn did the above mentioned sub-bug... The following is the area around where the issue comes up.

get_name_app: Tremulous
get_name_window: Tremulous
name: Tremulous

Screen is composited.

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed

(lt-avant-window-navigator:16299): Wnck-CRITICAL **: wnck_application_get_name: assertion `WNCK_IS_APPLICATION (app)' failed
get_name_app: Top Expanded Edge Panel
get_name_window: Top Expanded Edge Panel
name: Top Expanded Edge Panel

get_name_app: lt-avant-window-navigator
get_name_window: lt-avant-window-navigator
name: lt-avant-window-navigator

get_name_app: lt-avant-window-navigator
get_name_window: lt-avant-window-navigator
name: lt-avant-window-navigator

get_name_app: lt-avant-window-navigator
get_name_window: awn_elements
name: awn_elements

Mark Lee (malept) wrote :

Awn should probably show a message dialog that says something to the effect of "In order to run Awn, you need to run a compositing manager. See the wiki's Installation page for details."

Although, this will be moot once Neil makes Awn usable in non-composited environments. But, this would be nice for, say, 0.2.2, if it ever materializes.

haytjes (h4writer) wrote :

Don't think it's needed to have a message. Thinking about: first awn starts and afterward compiz. You will see a message that compiz need to be running, but it is already...
This message on the command line is good enough...

Changed in awn:
status: In Progress → Fix Committed
Changed in awn:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments