[gnome-todo] dnd-row: Improve style
- From: Gitlab Administrative User <gitlab src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] dnd-row: Improve style
- Date: Fri, 3 Nov 2017 02:00:42 +0000 (UTC)
commit 67276ac8e55c55ef5509127c09bee09c3c9f7ef0
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Nov 2 23:55:51 2017 -0200
dnd-row: Improve style
Requested in #120
data/theme/Adwaita.css | 10 +++-------
data/ui/dnd-row.ui | 42 ++++--------------------------------------
src/gtd-dnd-row.c | 19 +++++++++++--------
src/gtd-task-list-view.c | 8 +++++++-
src/gtd-task-row.c | 5 ++++-
5 files changed, 29 insertions(+), 55 deletions(-)
---
diff --git a/data/theme/Adwaita.css b/data/theme/Adwaita.css
index fd90eb7..2d85599 100644
--- a/data/theme/Adwaita.css
+++ b/data/theme/Adwaita.css
@@ -88,14 +88,10 @@ taskrow .close-button.active > image { transition: 200ms cubic-bezier(0.25, 0.46
taskrow .close-button > image { transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); -gtk-icon-transform:
rotate(0turn); }
/* dnd row */
-dndrow {
- background-color: rgba(0, 0, 0, 0.1);
- opacity: 0.5;
-}
+dndrow frame { border: solid 2px; border-radius: 2px; }
-dndrow frame {
- background: rgba(0, 0, 0, 0.2);
-}
+tasklistview.dark dndrow frame { background: alpha(white, 0.25); border-color: alpha(white, 0.5);}
+tasklistview.light dndrow frame { background: alpha(black, 0.25); border-color: alpha(black, 0.5);}
/* extension list */
list.extension-list row {
diff --git a/data/ui/dnd-row.ui b/data/ui/dnd-row.ui
index af7b1cd..cf779b7 100644
--- a/data/ui/dnd-row.ui
+++ b/data/ui/dnd-row.ui
@@ -6,28 +6,16 @@
<property name="activatable">False</property>
<property name="selectable">False</property>
<property name="halign">center</property>
+ <property name="margin">3</property>
<child>
- <object class="GtkGrid" id="box">
+ <object class="GtkBox" id="box">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_start">20</property>
- <property name="column_spacing">12</property>
<child>
- <object class="GtkImage" id="icon">
+ <object class="GtkFrame" id='frame'>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="icon_name">open-menu-symbolic</property>
- <property name="pixel-size">12</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkFrame">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
+ <property name="expand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
@@ -39,28 +27,6 @@
</object>
</child>
</object>
- <packing>
- <property name="left_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkFrame">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="vexpand">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">1</property>
- </packing>
</child>
</object>
</child>
diff --git a/src/gtd-dnd-row.c b/src/gtd-dnd-row.c
index bb85055..9207795 100644
--- a/src/gtd-dnd-row.c
+++ b/src/gtd-dnd-row.c
@@ -31,7 +31,7 @@ struct _GtdDndRow
GtkListBoxRow parent;
GtkWidget *box;
- GtkWidget *icon;
+ GtkWidget *frame;
GtkListBoxRow *row_above;
gint depth;
@@ -66,7 +66,7 @@ get_real_task_for_depth (GtdDndRow *self)
static void
update_row_padding (GtdDndRow *self)
{
- gtk_widget_set_margin_start (self->icon, self->depth * 32);
+ gtk_widget_set_margin_start (self->box, self->depth * 32);
}
static void
@@ -140,7 +140,7 @@ gtd_dnd_row_class_init (GtdDndRowClass *klass)
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/todo/ui/dnd-row.ui");
gtk_widget_class_bind_template_child (widget_class, GtdDndRow, box);
- gtk_widget_class_bind_template_child (widget_class, GtdDndRow, icon);
+ gtk_widget_class_bind_template_child (widget_class, GtdDndRow, frame);
gtk_widget_class_set_css_name (widget_class, "dndrow");
}
@@ -196,13 +196,16 @@ gtd_dnd_row_drag_motion (GtkWidget *widget,
if (self->row_above && GTD_IS_TASK_ROW (self->row_above))
{
GtdTask *task;
- gint offset;
+ gint depth;
task = gtd_task_row_get_task (GTD_TASK_ROW (self->row_above));
- offset = gtk_widget_get_margin_start (self->box) + gtk_widget_get_allocated_width (self->icon);
- self->depth = CLAMP (floor ((x - alloc.x - offset) / 32),
- 0,
- gtd_task_get_depth (task) + 1);
+
+ if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
+ depth = floor ((alloc.width - alloc.x - x) / 32);
+ else
+ depth = floor ((x - alloc.x) / 32);
+
+ self->depth = CLAMP (depth, 0, gtd_task_get_depth (task) + 1);
}
else
{
diff --git a/src/gtd-task-list-view.c b/src/gtd-task-list-view.c
index 0072864..ad49540 100644
--- a/src/gtd-task-list-view.c
+++ b/src/gtd-task-list-view.c
@@ -1344,13 +1344,19 @@ listbox_drag_motion (GtkListBox *listbox,
source_row = GTK_LIST_BOX_ROW (gtk_widget_get_ancestor (source_widget, GTK_TYPE_LIST_BOX_ROW));
hovered_row = gtk_list_box_get_row_at_y (listbox, y);
- x -= gtd_task_row_get_x_offset (GTD_TASK_ROW (source_row));
+ /* Update the x value according to the current offset */
+ if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL)
+ x += gtd_task_row_get_x_offset (GTD_TASK_ROW (source_row));
+ else
+ x -= gtd_task_row_get_x_offset (GTD_TASK_ROW (source_row));
/* Make sure the DnD row always have the same height of the dragged row */
gtk_widget_set_size_request (priv->dnd_row,
-1,
gtk_widget_get_allocated_height (GTK_WIDGET (source_row)));
+ gtk_widget_queue_resize (priv->dnd_row);
+
/*
* When not hovering any row, we still have to make sure that the listbox is a valid
* drop target. Otherwise, the user can drop at the space after the rows, and the row
diff --git a/src/gtd-task-row.c b/src/gtd-task-row.c
index 535cbb0..8bf941f 100644
--- a/src/gtd-task-row.c
+++ b/src/gtd-task-row.c
@@ -926,5 +926,8 @@ gtd_task_row_get_x_offset (GtdTaskRow *self)
{
g_return_val_if_fail (GTD_IS_TASK_ROW (self), -1);
- return self->clicked_x;
+ if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL)
+ return gtk_widget_get_allocated_width (GTK_WIDGET (self)) - self->clicked_x;
+ else
+ return self->clicked_x;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]