summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas.cc
AgeCommit message (Collapse)Author
2014-03-11don't queue redraws when various canvas item properties are "reset" to the ↵Paul Davis
same value, plus supporting functions
2014-03-05manually revert change to canvas expose handling in ↵Paul Davis
fee026c5ef7107d5d594159f5ece5917041591f7 Breaking out the rectangles implies a z-axis ordering of drawing,because the rect drawn last will implicitly be "on top". But redraw areas are not submitted with any z-axis information, and so drawing like this breaks canvas layering. It would be more efficient to draw the rects separately, but we don't have any ordering information and so we cannot do it correctly.
2014-03-04break down GdkEventExpose into distinct rectangles for canvas expose rather ↵Paul Davis
than drawing the entire region as a single rect
2014-02-25fix canvas enter/leave bug when point is over a group/ignore-event item and ↵Paul Davis
we fail to send a leave event to the previous item
2014-02-25add DEBUG::CanvasEnterLeave to allow runtime toggling of canvas enter/leave ↵Paul Davis
events
2014-02-11when delivering canvas events, if an item is grabbed, use it in preference ↵Paul Davis
to Canvas::_current_item, but still propagate to its ancestors if left unhandled
2014-01-20a better, more general fix for the previous Canvas::item_going_away() issue. ↵Paul Davis
There is no need to repick the current item if the item going away is NOT the current item
2014-01-20When removing an item which is event-insensitive, there is no need to repick ↵Paul Davis
the current item, since it can never have been used as the current item. This fixes crashes associated with ghost notes in midi regions.
2014-01-16add event type string function to canvas (since it does not use gtkmm2ext)Paul Davis
2014-01-10clamp expose (queue_redraw()) requests to visible window area, some extra ↵Paul Davis
debugging details
2014-01-10don't go through ::deliver_enter_leave() unnecessarilyPaul Davis
2014-01-08change rounding used for convert Rect from canvas to window coordinatesPaul Davis
2014-01-08Revert "remove unused code"Paul Davis
This reverts commit 2d283c17e17940c356af0cc1366b714e0d7b76be.
2014-01-08remove unused codePaul Davis
2013-12-30ignore invisible items when picking the current itemPaul Davis
Also left behind some commented debug out that probably deserves a new PBD::Debug bit.
2013-12-23fix redrawing of canvas with an optimized buildPaul Davis
Best guess right now is that optimization does something bad when ceil() is called twice on a very large dbl-precision number, which results in a zero (empty) redraw area. Without the removal of the redundant ceil & floor functions, no expose events would be delivered to the canvas in an optimized build during drags (and maybe more).
2013-12-12change enter/exit event delivery to follow X Window model (inferior, ↵Paul Davis
ancestor, virtual, nonlinear)
2013-12-12change event propagation to be based on parent/child lineage, not z-axis ↵Paul Davis
stacking, plus some more alterations to try to get enter/leave working
2013-12-09debug trace tweaksPaul Davis
2013-11-04drop use of bounding box to determine whether an item covers a point; add ↵Paul Davis
Item::covers(Duple const&) Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
2013-11-03send enter events to EVERY newly entered item (ignore the bool return from ↵Paul Davis
the event handler); other canvas debugging aids;switch items_at_point() to use canvas coordinates
2013-10-31all events propagate out of the canvas in canvas coordinates now, so revert ↵Paul Davis
changes in editor_drags.cc that worked around this not being the case
2013-10-31finally (?) fix up logic for rectangle drawing (fill+stroke) to tackle what ↵Paul Davis
is hopefully the last of the expose problems
2013-10-31handle enter/leave items when zooming and scrolling occurPaul Davis
2013-10-30notable changes to try to improve most of enter/leave handling for canvas itemsPaul Davis
2013-10-28reduce verbiage and remove visible current_item red rectPaul Davis
2013-10-28streamline button press event handling code a little, and tweak enter/leave ↵Paul Davis
debugging text
2013-10-24expand bounding box of all objects by 0.5 before computing intersection for ↵Paul Davis
render cycle; alter debug output
2013-09-25only generate some current canvas debug output when CANVAS_DEBUG is defined, ↵Paul Davis
to quieten things down
2013-08-08debugging various canvas event issuesPaul Davis
2013-06-24an awful lot of tweaks to drawing detailsPaul Davis
2013-06-18fix rect redraw problems caused by intersection requiring the usual 0.5 ↵Paul Davis
expansion (though consider a more general fix for this at teh group level)
2013-06-18basically operational switch to canvas drawing coordinates, although text ↵Paul Davis
and waves don't work, and redraw areas are too small
2013-04-25tweak enter/leave code, remove debug outputPaul Davis
2013-04-24more tweaks for enter/leave events for canvas itemsPaul Davis
2013-04-24tweaks to improve enter/leave event handling - fixes at least some crashes ↵Paul Davis
caused by this stuff
2013-04-24many pervasive changes primarily related to waveform drawing, particular ↵Paul Davis
content-dragging, colors, and more
2013-04-20tweak event/leave event delivery so that it applies to items being deleted ↵Paul Davis
as well as motion events (hmm, needed for item addition too ...)
2013-04-17various work waveview amplitude mgmt; fix playhead cursor drag from timebar ↵Paul Davis
click
2013-04-17fix clamping of line and rect coordinates to avoid issues with cairo when ↵Paul Davis
drawing way outside a surface's dimensions; move various coordinate methods down to Canvas, because they don't require GTK information; make visible_area() a Canvas virtual method so that we don't have to cast to call it
2013-04-16add back various functionality to waveviews such as zero line, amplitude scalingPaul Davis
2013-04-15remove all xml++.h inclusion by canvas implementationsPaul Davis
2013-04-15remove all XML related API from canvas. it may have been useful during ↵Paul Davis
development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state
2013-04-15a few changes to fix region dragging, all related to coordinate system ↵Paul Davis
handling, which is now much simpler with the new canvas; more debugging output when asked for
2013-04-11many changes to get the cairo-canvas version much, much more functional. ↵Paul Davis
still problems with a lot of subtle and not-so-subtle issues
2013-04-10add -D canvasevents tracing for grabbed items and remove render count outputPaul Davis
2013-04-09a variety of fixes for the cairocanvas, but it still buggy as hell handling ↵Paul Davis
events and lots of other stuff
2013-04-08mo' better debugging of canvas "structure" via Item::dump and derivativesPaul Davis
2013-04-05lots of tweaking and adding debug output including operator<</dump(ostream&) ↵Paul Davis
methods to help visualize canvas structure
2013-04-04initial commit of hand merging, plus getting "ancient" waf script to work ↵Paul Davis
correctly