icewm
icewm copied to clipboard
Another window switching method
Hello,
I've added a different window switching method: https://github.com/bbidulock/icewm/commit/f30129fef6861be5aca7573bd37f6787a512fd18
(There are already comments there, not sure why those comments don't show up under my fork at https://github.com/ldarby2/icewm/tree/ldarby-taskbar-zorder, and not sure why it's visible at all under bbidulock's repo)
I haven't added an option for this, and I know it needs one before it could be merged. Also I don't fully understand the C++ virtual stuff so I'm not sure if there's a way to avoid modifying wmprog.cc?
Depending on any feedback I'll add the option and submit a pull request.
Thanks, Laurence
Guessing what something is going to do when you first compile is usually voodoo and proper handcraft.
Please describe in plain English what your proposal does and how the quality gate looks like (definition of done).
Yeah, write some in the documentation about this and include that in the git commits.
Ok, will add some docs to try to explain this better and also add an option for this. Also just noticed there are some focus issues with onTop windows, need to investigate this further (and see if it's the same with unpatched icewm).
So definition of done is:
- option to enable this
- docs
- onTop focus issues
- is this change I made to wmprog.cc acceptable?
@@ -181,6 +181,13 @@ class MenuProgSwitchItems: public ISwitchItems {
virtual int getCount() OVERRIDE {
return menu->itemCount();
}
+ //unused, gcc errors without this
+ virtual YFrameWindow* getFrame(int itemIdx) OVERRIDE {
+ return NULL;
+ }
+ //unused, gcc errors without this
+ virtual void freeList() OVERRIDE {
+ }
virtual bool isKey(KeySym k, unsigned int mod) OVERRIDE {
return k == this->key && mod == this->mod;
}
There might be a way to avoid modifying that and the gcc errors, but I couldn't figure it out. Or there might not be in which case it shouldn't matter.
Hit a major issue with this, if wpa_gui (from wpa_supplicant), pops up a login prompt while alt-tab is held then the window list goes blank and hangs (then clicking on the task bar recovers it), probably caused by a call to freeList(). Fix is probably to duplicate the switchwindow object instead of sharing it between the switchwindow and taskbar.. Will work on this and the other issues above soon.