Closing #212: Panel buttons are reodered on titlebar click.

By default, pekwm will reorder window list on input focus (probably to optimize things) and this would also reorder buttons inside taskbar. Also, on new window list, all panel buttons would be recreated again, causing many allocations and deallocations. Now, window list received from wm is compared agains internal window storage for diffs.

Fixing this issue made removal some old edewm specific code and made panel nicely working under sawfish ;)
This commit is contained in:
Sanel Zukan
2012-12-17 15:49:33 +00:00
parent 9751acdd9e
commit fb708f76ed
6 changed files with 115 additions and 91 deletions

View File

@@ -44,6 +44,7 @@ static int handle_xevent(int e) {
}
} else if(fl_xevent->type == DestroyNotify) {
XDestroyWindowEvent xev = fl_xevent->xdestroywindow;
E_DEBUG(E_STRLOC ": Unock request for %i\n", fl_xevent->xclient.data.l[2]);
curr_tray->unembed_window(xev.window);
return false;
} else if(fl_xevent->type == ConfigureNotify) {
@@ -67,6 +68,7 @@ static int validate_drawable(Display *d, Window xid) {
}
Tray::Tray() : Fl_Group(0, 0, 1, 25), opcode(0) {
//color(FL_RED);
box(FL_FLAT_BOX);
register_notification_area();
}
@@ -87,6 +89,7 @@ void Tray::distribute_children(void) {
Y = y();
for(int i = 0; i < children(); i++) {
child(i)->position(X, Y);
E_DEBUG(E_STRLOC ": child %i at %i %i\n", i, child(i)->x(), child(i)->y());
X += child(i)->w() + TRAY_ICONS_SPACE;
}
}