Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e399c255 authored by rincewound's avatar rincewound Committed by Gitsaibot
Browse files

Add stacked events

parent 1a0a2e83
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -4762,16 +4762,24 @@ public class DayView extends View implements View.OnCreateContextMenuListener,

        // If there are any events in the selected region, then assign the
        // closest one to mSelectedEvent.
        if (mSelectedEvents.size() > 0) {
        if (!mSelectedEvents.isEmpty()) {
            int len = mSelectedEvents.size();
            Event closestEvent = null;
            float minDist = mViewWidth + mViewHeight; // some large distance
            float maxCol = -99999;
            for (int index = 0; index < len; index++) {
                Event ev = mSelectedEvents.get(index);

                // dist will yield 0.0 for all events overlapping each other.
                // In order to select the correct one we use the topmost event (i.e. the one with
                // the highest col value!

                float dist = geometry.pointToEvent(x, y, ev);
                if (dist < minDist) {
                float col  = ev.getColumn();
                if (dist <= minDist && col > maxCol) {
                    minDist = dist;
                    closestEvent = ev;
                    maxCol = col;
                }
            }
            setSelectedEvent(closestEvent);
+8 −2
Original line number Diff line number Diff line
@@ -24,6 +24,11 @@ public class EventGeometry {

    private float mMinuteHeight;

    // How many pixels is each column set off from the
    // very left of column 0?
    // This is used to enable stacked parallel events.
    private static final float mPerColMargin  = 32;

    private float mHourGap;
    private float mMinEventHeight;

@@ -97,8 +102,9 @@ public class EventGeometry {
            event.bottom = event.top + mMinEventHeight;
        }

        float colWidth = (float) (cellWidth - (maxCols + 1) * mCellMargin) / (float) maxCols;
        event.left = left + col * (colWidth + mCellMargin);

        float colWidth = (float) (cellWidth - (maxCols) * mCellMargin) - (float) (col * mPerColMargin);
        event.left = left + (col) * mPerColMargin;
        event.right = event.left + colWidth;
        return true;
    }