]> Shamusworld >> Repos - apple2/blobdiff - src/gui/gui.cpp
Miscellaneous sound engine fixes (still needs fixing!), floppy diagnostics
[apple2] / src / gui / gui.cpp
index 2841992fc2ba07e8ddf2ab7cff55d1ee9f996067..fb6a00080bd9d19fd45ac53b56a8d4eba95cf6ef 100755 (executable)
@@ -192,7 +192,7 @@ WriteLog(" -- SDL_MOUSEMOTION\n");
 //Though, it seems to screw other things up. Maybe it IS better to pass it to all windows?
 //Or maybe to just the ones that aren't completely obscured?
 //Probably. Right now, a disk's close button that should be obscured by one sitting on
-//top of it gets redrawn. Not good.
+//top of it gets redrawn. Not good. !!! FIX !!!
                                for(i=windowList.begin(); i!=windowList.end(); i++)
                                        (*i)->HandleMouseMove(mouse.x, mouse.y);
 //                             windowList.back()->HandleMouseMove(mouse.x, mouse.y);
@@ -215,7 +215,7 @@ We could do the following:
   than one is clicked on, take the one highest in the Z order (closer to the end
   of the list).
 
-- If item is highest in Z order, pack click through to window and exit.
+- If item is highest in Z order, pass click through to window and exit.
 
 - Otherwise, restore backing store on each window in reverse order.
 
@@ -257,7 +257,7 @@ it overlaps and just do restore/redraw for those that overlap. To wit:
                                                // iterator to a regular iterator requires backing the iterator
                                                // up a position after grabbing it's base() OR going forward
                                                // one position with the reverse iterator before grabbing base().
-                                               // Ugly, but it get the job done...
+                                               // Ugly, but it gets the job done...
                                                hit = (++ri).base();
                                                // Put it back where we found it, so the tests following this
                                                // don't fail...
@@ -347,9 +347,12 @@ Also, when doing a window drag, the coverage lists for all windows have to be re
 //*misses* to everyone else... Otherwise, you can have overlapping draggable windows
 //and be able to drag both by clicking on a point that intersects both...
 //(though that may be an interesting way to handle things!)
+//The thing is that you want to do it on purpose (like with a special grouping widget)
+//instead of by accident. So, !!! FIX !!!
                                // Pass the click on to all windows
-                               for(i=windowList.begin(); i!=windowList.end(); i++)
-                                       (*i)->HandleMouseButton(event.button.x, event.button.y, true);
+//                             for(i=windowList.begin(); i!=windowList.end(); i++)
+//                                     (*i)->HandleMouseButton(event.button.x, event.button.y, true);
+                               windowList.back()->HandleMouseButton(event.button.x, event.button.y, true);
 
 //                             // & bail if nothing changed...
                                if (movedWindow)
@@ -360,6 +363,8 @@ Also, when doing a window drag, the coverage lists for all windows have to be re
 //the Z order where the previous window was.
                                for(i=windowList.begin(); i!=windowList.end(); i++)
                                {
+//One other little quirk: Probably need to clear the backing store as well!
+//Not sure...
                                        (*i)->ResetCoverageList();
 
                                        // This looks odd, but it's just a consequence of iterator weirdness.