ozonos / atom-dock

Custom Dock for Ozon Desktop
GNU General Public License v3.0
72 stars 13 forks source link

Uses separate AppIconMenu forked from 3.12 and 3.10, for each shell version respectively #23

Closed kyuucr closed 10 years ago

kyuucr commented 10 years ago

Fixes #20 ? The original popover uses AppIconMenu which defaults the PopupMenu to appear on right side (or left side if you're RTL) by calling it's parent initialization (which is PopupMenu) this.parent(source.actor, 0.5, side); I need to change the side to St.Side.TOP. If I could only easily extends the original AppIconMenu and change it, but can't. Extending original AppIconMenu means if I call this.parent() it means that I call AppIconMenu initialization, which has no side option. Therefore, I choose to fork AppIconMenu from 3.12, which will give a problem in 3.10.

Picture below is a screenshot of implemented popover versus the original one. The implemented one has more options that should not be available in 3.10, but clicking those items has no effect whatsoever. screenshot from 2014-04-16 05 20 38 screenshot from 2014-04-16 06 31 42

I need all of your suggestion, should we use the AppIconMenu forked from 3.12 or the original 3.10? And should we choose only one version to develop in?

me4oslav commented 10 years ago

The ideal variant would be to have this fixed on both, but if it comes to selecting a version I would be in favour of supporting the latest one.

kyuucr commented 10 years ago

Please ignore my rants above, now I use the same method of determining Shell version by @mpnordland, version fragmentation should not be a problem, thanks dude! :+1:

Not yet tested in 3.10 though

me4oslav commented 10 years ago

@cldx Can you test if it works on 3.10? @ndyakov Code review?

kyuucr commented 10 years ago

I've got a hold on machine running 3.10 and tested it and it looks okay

kyuucr commented 10 years ago

Fixed hover not synced when popup menu closed because forgot to emit the event. Also, I noticed that this:

this.dash.connect('menu-closed', Lang.bind(this, this._box.sync_hover));

doesn't seem to call sync_hover correctly, so I revert to the original:

this.dash.connect('menu-closed', Lang.bind(this,
    function() {
        this._box.sync_hover();
    })
);

I suggest we have to be more careful when cleaning that kind of function.

kyuucr commented 10 years ago

Tested on 3.10 and 3.12 and merged