[california/wip/732029-gtk-312] Set popover point at center of week selection rectangle
- From: Jim Nelson <jnelson src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [california/wip/732029-gtk-312] Set popover point at center of week selection rectangle
- Date: Fri, 18 Jul 2014 23:14:58 +0000 (UTC)
commit 7cad2473ba278cfa39901e15ee208f99477ce082
Author: Jim Nelson <jim yorba org>
Date: Fri Jul 18 16:14:44 2014 -0700
Set popover point at center of week selection rectangle
src/view/week/week-day-pane.vala | 11 +++++++++++
src/view/week/week-grid.vala | 4 ++--
2 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/src/view/week/week-day-pane.vala b/src/view/week/week-day-pane.vala
index 5090355..c5d3c41 100644
--- a/src/view/week/week-day-pane.vala
+++ b/src/view/week/week-day-pane.vala
@@ -36,6 +36,11 @@ internal class DayPane : Pane, Common.InstanceContainer {
public Calendar.WallTime? selection_end { get; private set; }
/**
+ * The center point of the current selection.
+ */
+ public Gdk.Point? selection_point { get; private set; default = null; }
+
+ /**
* @inheritDoc
*/
public int event_count { get { return days_events.size; } }
@@ -275,6 +280,12 @@ internal class DayPane : Pane, Common.InstanceContainer {
ctx.rectangle(0, y, get_allocated_width(), height);
Gdk.cairo_set_source_rgba(ctx, palette.selection);
ctx.fill();
+
+ selection_point = Gdk.Point();
+ selection_point.x = get_allocated_width() / 2;
+ selection_point.y = y + (height / 2);
+ } else {
+ selection_point = null;
}
return true;
diff --git a/src/view/week/week-grid.vala b/src/view/week/week-grid.vala
index 1920b6c..dda1fba 100644
--- a/src/view/week/week-grid.vala
+++ b/src/view/week/week-grid.vala
@@ -381,10 +381,10 @@ internal class Grid : Gtk.Box {
DayPane day_pane = (DayPane) widget;
Calendar.ExactTimeSpan? selection_span = day_pane.get_selection_span();
- if (selection_span == null)
+ if (selection_span == null || day_pane.selection_point == null)
return Toolkit.PROPAGATE;
- owner.request_create_timed_event(selection_span, widget, point);
+ owner.request_create_timed_event(selection_span, widget, day_pane.selection_point);
return Toolkit.STOP;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]