mate-desktop / mate-panel

MATE panel
https://mate-desktop.org
GNU General Public License v2.0
184 stars 118 forks source link

Mate panel drawer applet doesn't work - mostly #44

Closed rebelxt closed 9 years ago

rebelxt commented 12 years ago

I have problems with the mate panel drawer applet. I add it to the panel, add an applet to the drawer, and may or may not have access to that applet. If I reboot, the drawer never works.

I have tested this with Mint 13 Mate 32 bit and 64 bit, on a bare metal install and under VirtualBox on two different computers. I even installed Mate 1.4 on one of the VirtualBox Mint test machines; same results. I also see the same results in a VirtualBox installation of Salix Mate 13.37-64.

However, the drawer applet in an installation of SnowLinux 2 Cream 64bit does work properly. I can see that the SnowLinux implementation does handle the panel configuration files differently than the other implementations. This could imply that they have modified their panel programs.

The installation of Mate 1.4 on a Mint 13 test machine, and seeing it fail, leads me to believe that SnowLinux has a fix for the problem. If I'm wrong, and the Mint people have screwed up their implementation, let me know, and I'll go bug them.

The other possibility that comes to mind is that SnowLinux 2 is using GTK2, where the other implementations are using GTK3 in their desktop environments. Could that be the incompatibility? If so, whose problem is it?

rebelxt commented 12 years ago

After some trial and error, it does seem that adding the System Monitor applet to the drawer is causing the problem. Initially after adding the applet, the monitor works as expected. Then, using the monitor itself, end the 'mate-panel' process. Mate-panel will automatically restart. At this time the drawer will no longer open. A logout, login cycle will also demonstrate the problem. Next remove the System Monitor applet. This is a bit tricky, because it can no longer be done from the drawer itself. In the ~/.mateconf/apps/panel folder, locate the applets/applet* folder most recently added. Delete that folder. Then edit the applets/general/%mateconf.xml file, delete the three lines that define the monitor applet (same applet* name as the folder), and save the file. Logout. Login. The drawer again opens. For whatever reason, just ending/restarting the mate-panel process does not reset the drawer.

I have tried this with Mint 13 Mate 64bit (bare metal), SnowLinux 2 Cream 64bit (VirtualBox), and Mint 13 Mate 32bit live CD (VirtualBox) with identical results.

stefano-k commented 12 years ago

I'm migrating mate-panel to gsettings, so I'll debug this issue once completed migration.

stefano-k commented 11 years ago

Did you try mate-panel 1.5?

rebelxt commented 11 years ago

No. How would I do that? My primary system is Mint 13, but I would prefer trying it in my Mint 14 test system.

I did look at the Mate install wiki, but there are no clear instructions for installing Mate 1.5. Is it possible to install mate-panel 1.5 without the entire Mate 1.5 desktop?

rebelxt commented 11 years ago

Sorry, the issue close was just a finger cramp.

stefano-k commented 11 years ago

No, to try mate-panel-1.5.x you need to update the entire desktop. You can use this experimental repository: http://dev.mate-desktop.org/ubuntu quantal main

rebelxt commented 11 years ago

OK, I added that repository to the system sources. Then I appended:

 Package: *
 Pin: origin dev.mate-desktop.org
 Pin-Priority: 700

to /etc/apt/preferences. Reloading the package information in synaptic resulted in this error: synaptic error

How do I fix this? The distro is Mint 14 Mate.

stefano-k commented 11 years ago

It seems you have quantal/quantal (quantal twice) on link. Can you paste the row you added on sources.list?

rebelxt commented 11 years ago

/etc/apt/sources.list:

deb http://packages.linuxmint.com/ nadia main upstream import
deb http://archive.ubuntu.com/ubuntu/ quantal main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ quantal-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ quantal-security main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ quantal partner
deb http://packages.medibuntu.org/ quantal free non-free
# deb http://archive.getdeb.net/ubuntu quantal-getdeb apps
# deb http://archive.getdeb.net/ubuntu quantal-getdeb games
deb http://dev.mate-desktop.org/ubuntu quantal quantal main
deb-src http://dev.mate-desktop.org/ubuntu quantal quantal main

(Sorry about the formatting. Don't know why it's like that.)

stefano-k commented 11 years ago

deb http://dev.mate-desktop.org/ubuntu quantal quantal main should be deb http://dev.mate-desktop.org/ubuntu quantal main

rebelxt commented 11 years ago

The sources are now correct, but the update still doesn't work. The Update manager is showing this error:

W: GPG error: http://dev.mate-desktop.org quantal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 68980A0EA10B4DE8

How do I fix it?

stefano-k commented 11 years ago

That's only a warning, but you can fix it installin mate-archive-keyring from the official repository

rebelxt commented 11 years ago

OK. The Update Manager says all updates are successfully installed. After a re-boot, the Mate panel version is 1.5.5, but the desktop is all buggered up. The mint menu is no longer there. I can add a drawer to the panel, but cannot add anything to the drawer.

Also, in trying to eliminate the public key warning:

$ sudo apt-get update . . . Reading package lists... Done W: GPG error: http://dev.mate-desktop.org quantal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 68980A0EA10B4DE8 $ sudo apt-get install mate-archive-keyring Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package mate-archive-keyring

stefano-k commented 11 years ago

but the desktop is all buggered up

You're using an unstable release! mintmenu doesnt support mate 1.5, at the moment

$ sudo apt-get install mate-archive-keyring

this package is in main repository (1.4), not in 1.5

rebelxt commented 11 years ago

Then the outstanding problem would be that I can't add anything to the drawer.

rebelxt commented 11 years ago

More accurately, there are no indications of a problem while doing the add, but the drawer won't open to show the applet.

LenW2 commented 11 years ago

@stefano-k Just to clarify, do you believe that the drawer problem will be fixed in Mate 1.6 ? (Any idea when 1.6 will be available, and will it be available on Mint-14?)

Also, in my experience, the drawer seems to work fine until a reboot, or even just a logout. Seems that either the logout or the login is not handling this kind of panel properly. (I'm running Mint-14).

Thanks, -Len

szesch commented 11 years ago

Does this issue still exist in 1.6?

rebelxt commented 11 years ago

Using Mint 15 Mate RC, which has Mate 1.6, the symptoms are different, but the drawer applet doesn't work.

Add a drawer to the panel. Add an applet to the drawer, the drawer icon disappears from the panel. Clicking on the place in the panel where the icon was will show the drawer and the added applet. The applet will run at this time. Logoff and login and the drawer icon is again showing on the panel, but clicking on it does not show the added applet, so said applet can not be started.

pefu commented 11 years ago

On my old laptop (an HP nw9440 from 2007) I ran Ubuntu 10.04 LTS with Gnome 2.30.2 On my new laptop I've just installed mate 1.6.1 on top of Ubuntu 13.04 (with Bumblebee due to the Optimus Chipset). First of all let me thank all those persons who made the project "mate" possible!

But I experienced bug with drawer (in german called "Schublade"). In my .xsession-errors file I saw the following error message: (mate-panel:3073): Gtk-CRITICAL **: IA__gtk_widget_map: assertion `gtk_widget_get_visible (widget)' failed This seems to be a problem which also occured to other people here: https://bugs.launchpad.net/ubuntu/+source/gnome-panel/+bug/786223 How can I help to fix this?

sanscore commented 11 years ago

I'm experiencing oddness with the drawer applet using Fedora 19, MATE 1.6.1. The first time I add a drawer, it will appear for a second and then disappear. I can find it by clicking in the general vicinity of where I initially right clicked on the panel. It will open horizontal drawer that is roughly 75% the length of the screen; I'm using a standard top and bottom panel setup, and I am trying to add to the top panel (dead center).

(Without removing the first) I'll try to add a second drawer, but I'll never see it appear. I can find it as well, but the drawer will open vertically taking up 100% of the screen between the top and bottom panels.

The third drawer will appear and function fine.

Subsequent drawers (in my case, 4 and 5) are not visible and not discoverable. At this time, I removed the first two drawers. I then attempted to 'Move' the third panel, but horizontal movement was impeded. I could move the visible drawer to the bottom panel and return it to the top panel to get around the impediment.

After a restart, logout\login, or simply 'mate-panel --replace', I could see the missing drawers located precisely at the impediment. The drawers functions properly, however

1) the first of the hidden, previously impeding drawers outputted the following error:

$ mate-panel --replace

(mate-panel:1306): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'

(mate-panel:1306): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed

\ (mate-panel:1306): CRITICAL **: panel_toplevel_set_name: assertion `PANEL_IS_TOPLEVEL (toplevel)' failed

(mate-panel:1306): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(mate-panel:1306): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(mate-panel:1306): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed

(mate-panel:1306): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `ButtonWidget'

\ (mate-panel:1306): CRITICAL **: button_widget_set_icon_name: assertion `BUTTON_IS_WIDGET (button)' failed

And, 2) the second impeding drawer crashed 'mate-panel'. I removed the third drawer without an error, unfortunately I closed my MATE Terminal prior to removing the last.

I'm attaching my nohup.out which contains only information relevant to this report.

---[ nohup.out ]------------------------------------------------------- $ cat nohup.out

(mate-panel:1411): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'

(mate-panel:1411): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed

(mate-panel:1612): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'

(mate-panel:1612): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed

\ (mate-panel:1612): CRITICAL **: panel_toplevel_set_name: assertion `PANEL_IS_TOPLEVEL (toplevel)' failed

(mate-panel:1612): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(mate-panel:1612): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(mate-panel:1612): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed

(mate-panel:1612): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `ButtonWidget'

\ (mate-panel:1612): CRITICAL **: button_widget_set_icon_name: assertion `BUTTON_IS_WIDGET (button)' failed

(mate-panel:1612): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'

(mate-panel:1612): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed

\ (mate-panel:1612): CRITICAL **: panel_toplevel_set_name: assertion `PANEL_IS_TOPLEVEL (toplevel)' failed

(mate-panel:1612): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(mate-panel:1612): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(mate-panel:1612): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed

(mate-panel:1612): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `ButtonWidget'

\ (mate-panel:1612): CRITICAL **: button_widget_set_icon_name: assertion `BUTTON_IS_WIDGET (button)' failed Panel leaving: a new panel shell is starting.

(mate-panel:1612): EggSMClient-CRITICAL **: egg_sm_client_set_mode: assertion `global_client == NULL || global_client_mode == EGG_SM_CLIENT_MODE_DISABLED' failed

(mate-panel:1728): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'

(mate-panel:1728): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed

\ (mate-panel:1728): CRITICAL **: panel_toplevel_set_name: assertion `PANEL_IS_TOPLEVEL (toplevel)' failed

(mate-panel:1728): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(mate-panel:1728): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(mate-panel:1728): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed

(mate-panel:1728): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `ButtonWidget'

\ (mate-panel:1728): CRITICAL **: button_widget_set_icon_name: assertion `BUTTON_IS_WIDGET (button)' failed

(mate-panel:1728): GLib-GObject-WARNING **: invalid uninstantiatable type GdkDisplay' in cast toGObject'

(mate-panel:1728): GLib-GObject-CRITICAL **: g_object_get_data: assertion `G_IS_OBJECT (object)' failed

\ (mate-panel:1728): CRITICAL **: panel_toplevel_set_name: assertion `PANEL_IS_TOPLEVEL (toplevel)' failed

(mate-panel:1728): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `GdkDisplay'

(mate-panel:1728): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(mate-panel:1728): GLib-GObject-CRITICAL **: g_object_set: assertion `G_IS_OBJECT (object)' failed

(mate-panel:1728): GLib-GObject-WARNING **: invalid uninstantiatable type GdkDisplay' in cast toButtonWidget'

\ (mate-panel:1728): CRITICAL **: button_widget_set_icon_name: assertion `BUTTON_IS_WIDGET (button)' failed

sanscore commented 11 years ago

I very quickly did some more ad-hoc testing and the behaviours seem to be a variation on the theme and not necessarily in my described order. Some will appear and disappear depending on the number of drawer panels. Some will open horizontal and others vertical. Etc.

I'll watch this thread and, if necessary, do my best to respond to questions and requestis accordingly.

sanscore commented 11 years ago

And another thing...

Checking dconf-editor, it appears that each new drawer creates a new toplevel_XX database path, however they are never deleted and unrecoverable without using dconf. Also, all items located in a lost toplevel_XX path are unrecoverable. (I'm currently upto to toplevel_17 from my testing.)

sanscore commented 11 years ago

My last comment for the day. To recover any lost panel objects, use dconf-editor and search for "toplevel_". For any panel object with a bad toplevel-id, modify the KEY to a working toplevel which can be found on /org/mate/panel/toplevels/; the default toplevels are 'top' and 'bottom'.

Use the following command to remove all 'toplevel_' DIRs:

for x in `dconf dump /org/mate/panel/toplevels/` | grep -e '^\[toplevel_[0-9]\+\]' | tr -d '[]'`; do dconf reset -f "/org/mate/panel/toplevels/$x/"; done
flexiondotorg commented 10 years ago

@stefano-k - I can confirm what @sanscore reported above. I can reproduce this in mate-panel 1.6.2 and 1.7.2.

udiii1 commented 10 years ago

I'm a linux distro mint 17 mate and after installing compiz as the link http://community.linuxmint.com/tutorial/view/1298 my mate-panel doubles and one panel is matte-ghost and the other does not I can open anything, anything to minimize the mate-panel but when I touch the cursor in transparent mate-panel top it back up and running. Someone could direct me to some topic please. I'm an academic IT and would love to collaborate with my knowledge and learn a lot too. This is the video I made of my desktop http://youtu.be/ggXLU4GjCi4. THX!

infirit commented 9 years ago

Please try the following commit and check if this solves the weirdness for you. For me I have a working drawer now.

https://github.com/mate-desktop/mate-panel/commit/d87ffd3403e55087ee99a2c237d909503494dd6c.patch

samandiriel commented 9 years ago

I'm having related issues. The drawer, after a reboot or logoff/on, will either disappear completely and be unclickable (pic attached), or will disappear but can still be clicked and the drawer spans the entire screen, or will work as expected. No pattern discernable as to which mode is used.

Using Mint 17 + MATE 1.8.1

Drawer should appear right next to "Menu" in the screenshot. screenshot_101

rebelxt commented 9 years ago

I see the same thing samandiriel does, except for the unclickable part; even when the icon is not displayed, the spot has always been clickable.

Using Mint 17.1 + Mate 1.8.1

monsta commented 9 years ago

Looks like it's still an issue in 1.10. I've added a drawer, put a trash applet inside it for a test, then logged out and back in. Drawer won't open now and I get this in ~/.xsession-errors file after every click on drawer:

(mate-panel:14819): Gtk-CRITICAL **: IA__gtk_widget_map: assertion 'gtk_widget_get_visible (widget)' failed
raveit65 commented 9 years ago

confirmed that adding the trash applet to drawer breaks it

monsta commented 9 years ago

Everybody: please try https://github.com/mate-desktop/mate-panel/pull/319 and check if the issue goes away.

samandiriel commented 9 years ago

What release will this fix go into then?

monsta commented 9 years ago

It's in 1.10.1 already

samandiriel commented 9 years ago

Has it been released to the updates channel? I tried adding a drawer and then adding some custom app launchers to it, and I didn't even have to log out and in again before it vanished itself itself behind the panel and also stretched itself to the top of the screen when I clicked on where the icon should have been. Using mate-panel 1.10.0-1, which is ambiguous enough that I don't know if that's 1.10.1 or not... screenshot-gir1 2-mate-panel properties

monsta commented 9 years ago

You have upstream version 1.10.0. All the stuff after '-' character is standard Debian/Ubuntu suffix for specifying distro's own version/release of package. Wait for @clefebvre to push all updated 1.10.x packages to Mint repos :smile:

monsta commented 9 years ago

That said, you seem to have a different issue with drawer. I think it has been reported here as well.

This issue is closed because the original reporter's problem has been fixed:

I have problems with the mate panel drawer applet. I add it to the panel, add an applet to the drawer, and may or may not have access to that applet. If I reboot, the drawer never works.

samandiriel commented 9 years ago

Oh - drat. OK... do you happen to know which issue it is, so I can keep an eye on progress? It's a huge downer for me, I like to organize using drawers and it's sad-making that they're still not working right :(

Is it this one? https://github.com/mate-desktop/mate-panel/issues/120