Screenlets hide on show desktop without compiz

Bug #217507 reported by Oleg Vaskevich
32
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Screenlets
Won't Fix
Undecided
Unassigned
screenlets (Ubuntu)
Triaged
Low
Unassigned

Bug Description

Binary package hint: screenlets

Hello, I am using Ubuntu 8.04 Hardy Beta with Screenlets 0.0.12.

This version allows using Screenlets without Compiz (just metacity), and the problem is, clicking on the Show Desktop button hides the Screenlets along with other windows. It would be better if there was some option to oppose this behavior. This becomes a bit annoying after a while when it is necessary to minimize all windows to see the Screenlets. GDesklets however, don't dissapear on show desktop.

Many thanks for a fix or a solution!

[EDIT]
Hi I'm using Ubuntu 8.10 (tested under 9.04 alpha5 too)

Same problem, but with no difference using compiz or not.

Revision history for this message
Marcel Stimberg (marcelstimberg) wrote :

Confirming this issue for 0.0.12-0ubuntu4.

Changed in screenlets:
status: New → Confirmed
Revision history for this message
Kjell Braden (afflux) wrote :

Thanks for your report, I've forwarded it to the developers of the software.

Changed in screenlets:
status: Confirmed → Triaged
Revision history for this message
Helder Fraga (whise) wrote :

i have no idea how to stop them from doing that , if someone know please tell me , any gtk hint or something?

Revision history for this message
Kjell Braden (afflux) wrote :

some research brought me to gtk.Window.set_keep_below and gtk.Window.set_keep_above. I'm not sure whether set_keep_above needs explicitly to be false though. (checking gdesklets source, they're doing this reaaally complicated: they wrote a C-module which sends X events, I hope you won't need something like this as set_keep_below should do the same AFAICT).

Revision history for this message
Helder Fraga (whise) wrote :

the keep_above and kee_bellow is used to make windows go above and bellow all other windows , so i think its not related , there must be some other atribute

Revision history for this message
Kjell Braden (afflux) wrote : Re: [Bug 217507] Re: Screenlets hide on show desktop without compiz
  • unnamed Edit (189 bytes, application/pgp-signature; name=signature.asc)

Am Freitag, den 18.04.2008, 18:16 +0000 schrieb Whise:
> the keep_above and kee_bellow is used to make windows go above and
> bellow all other windows , so i think its not related , there must be
> some other atribute
>

You were right, I should've tested it. Further examining of the
gdesklets code showed that the following works for me:

window.set_skip_taskbar_hint(True)
window.set_skip_pager_hint(True)
window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
window.set_keep_below(True)

As far as I can see, the first two lines are already implemented in
screenlets.

Revision history for this message
Helder Fraga (whise) wrote :

looks like setting the window as a dock stops the window from hiding , however , it cant me moved as a normal window

Kjell Braden (afflux)
Changed in screenlets:
importance: Undecided → Low
Revision history for this message
Helder Fraga (whise) wrote :

it would have to be a big rewrite for this to happend

Changed in screenlets:
status: New → Won't Fix
Revision history for this message
Tiede (marcarthur) wrote :

I am confused...
Does that mean it won't happen, will take a while to happen, or we just can't tell?
shouldn't window.set_keep_below be mapped to that? currently, AFAICT, window.set_keep_below and window.set_keep_above are inverses of each other. Why not set the former to take care of this? It can get quite annoying after a while otherwise...

Revision history for this message
Helder Fraga (whise) wrote :

after some searching arround...

metacity hides all windows that dont have certain atributes

WINDOW_TYPE_HINT_DOCK atribute , prevents windows from hiding , this has nothing to do with keep above and bellow...

changing the screenlets to WINDOW_TYPE_HINT_DOCK , breaks the screenlet drag move system... so , it cant be done, would be easier if metacity just have a compiz like system

Revision history for this message
MeduZa (meduzapat) wrote :

I have the same problem here, metacity without compiz on a laptop and screenlets go down when I press show desktop button.

where I need to change the WINDOW_TYPE_HINT_DOCK attribute? I don't understand and I don't find, can you give me a path to the file that need to be edited please

Thanks

Revision history for this message
Fabio Marzocca (thesaltydog) wrote :

Can someone post the workaround to change the window attribute, please?

Revision history for this message
fabioxxxx (fabioxxxx) wrote :

Source:https://answers.launchpad.net/screenlets/+question/33930

Worked for me in the Ubuntu Hardy.
vi /usr/lib/python2.5/site-packages/screenlets/__init__.py
change to line :614 remove the comment in :
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
restart screenlets
You will not be able to drag the screenlet with the mouse. Use the X,Y options to move the screenlets

See ya.

Revision history for this message
mliwski (matias-liwski) wrote :

Actually with Screenlets 0.1.2 in the Ubuntu Hardy, I have to add the line:
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
in line 815 (If window manager != (kwin or sawfish) ) of /usr/lib/python2.5/site-packages/screenlets/__init__.py file.

Hope this help...

Best Regards.

Matías.

Revision history for this message
Ivan Stetsenko (stetzen) wrote :

Yes, editing __init__.py file solve the problem, but after editing this it looks like the screen area is given only once for each screenlet (when it starts), so that if the screenlet tries to change its size or shape later (as Clear Weather screenlet does), the transformed screenlet steel has the same shape. Probably, the best way to solve this problem is to add to the Metacity option "don't hide if skips taskbar".

description: updated
Revision history for this message
rasmus (razzbarr) wrote :

I'm using Ubuntu Intrepid (gnome) with screenlets version 0.1.2.

I edited __init__.py and replaced the line

self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_TOOLBAR)

with

self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)

As stated earlier this fixed the problem with the screenlets disappearing but the wierd thing is; the screenlets are still movable!

So far I have found nothing broken - maybe this should be a permanent change?

Revision history for this message
ouinouin (julien-bresciani) wrote :

I also got the same problem with metacity, I did the trick mentionned above, but one problem subsists : all screenlets with text input area for example the browser or the youtube screenlet doesnt work as expected : i cant input text , i can only select, copy and paste text...

Revision history for this message
ubisnick (geoff1) wrote :

I have the same problem with Ubuntu 9.04 and screenlets 0.1.2.
Problem is the same, if I clicking on the Show Desktop button hides the Screenlets along with other windows.

There is no compiz, metacity or another "special" program installed only the 9.04 pure and the screenlets package.

Is there any simple solution?

Revision history for this message
ubisnick (geoff1) wrote :

I tested the idea from fabioxxxx.

I found the file in

/usr/lib/python2.6/dist-packages/screenlets/__init__.py

I found the self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)

in the line 810.

Deleted the #. Save, restart.

Problem is still the same.

Revision history for this message
Dane Argan (dane-argan) wrote :

Found a work around for Cinnamon
Edit:
/usr/share/pyshared/screenlets/__init__.py

elif name == "is_sticky":
   if value == True:
    self.window.stick()
    self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)

Added:
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
to line 1076

Now choose Sticky under window settings, restart screenlets and show desktop still displays screenlets.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.