[gdl] Implement GDL_DOCK_ITEM_BEH_CANT_DOCK_* behaviours
- From: Johannes Schmid <jhs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdl] Implement GDL_DOCK_ITEM_BEH_CANT_DOCK_* behaviours
- Date: Sun, 1 Jan 2012 13:17:28 +0000 (UTC)
commit 32abfbd18b87da5d3118b2e78385e1918277d5f3
Author: Alex Valavanis <a valavanis leeds ac uk>
Date: Thu Dec 29 13:48:59 2011 +0000
Implement GDL_DOCK_ITEM_BEH_CANT_DOCK_* behaviours
gdl/gdl-dock-item.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/gdl/gdl-dock-item.c b/gdl/gdl-dock-item.c
index 07df084..c628a55 100644
--- a/gdl/gdl-dock-item.c
+++ b/gdl/gdl-dock-item.c
@@ -1208,25 +1208,37 @@ gdl_dock_item_dock_request (GdlDockObject *object,
request->rect.width = alloc.width;
request->rect.height = alloc.height;
+ GdlDockItemBehavior behavior = GDL_DOCK_ITEM(object)->behavior;
+
/* Calculate docking indicator rectangle size for new locations. Only
do this when we're not over the item's current location. */
if (request->applicant != object) {
switch (request->position) {
case GDL_DOCK_TOP:
+ if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_TOP)
+ return FALSE;
request->rect.height *= SPLIT_RATIO;
break;
case GDL_DOCK_BOTTOM:
+ if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_BOTTOM)
+ return FALSE;
request->rect.y += request->rect.height * (1 - SPLIT_RATIO);
request->rect.height *= SPLIT_RATIO;
break;
case GDL_DOCK_LEFT:
+ if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_LEFT)
+ return FALSE;
request->rect.width *= SPLIT_RATIO;
break;
case GDL_DOCK_RIGHT:
+ if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_RIGHT)
+ return FALSE;
request->rect.x += request->rect.width * (1 - SPLIT_RATIO);
request->rect.width *= SPLIT_RATIO;
break;
case GDL_DOCK_CENTER:
+ if (behavior & GDL_DOCK_ITEM_BEH_CANT_DOCK_CENTER)
+ return FALSE;
request->rect.x = request->rect.width * SPLIT_RATIO/2;
request->rect.y = request->rect.height * SPLIT_RATIO/2;
request->rect.width = (request->rect.width *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]