[gdl] Fixed drawing of preview windows
- From: Johannes Schmid <jhs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdl] Fixed drawing of preview windows
- Date: Sun, 12 Feb 2012 13:51:25 +0000 (UTC)
commit a52cdd74b96ff3e4fe206b98ea9700e19f749056
Author: Johannes Schmid <jhs gnome org>
Date: Sun Feb 12 14:48:59 2012 +0100
Fixed drawing of preview windows
gdl/gdl-dock-master.c | 46 +++++++++++++++++++++++++---------------------
1 files changed, 25 insertions(+), 21 deletions(-)
---
diff --git a/gdl/gdl-dock-master.c b/gdl/gdl-dock-master.c
index d3fdc9c..616c65b 100644
--- a/gdl/gdl-dock-master.c
+++ b/gdl/gdl-dock-master.c
@@ -452,14 +452,8 @@ gdl_dock_master_drag_end (GdlDockItem *item,
g_return_if_fail (GDL_DOCK_OBJECT (item) == request->applicant);
/* Erase previously drawn rectangle */
- if (master->priv->rect_owner)
- {
- gdl_dock_xor_rect_hide (master->priv->rect_owner);
- }
- if (master->priv->area_window)
- {
- gtk_widget_hide (master->priv->area_window);
- }
+ if (master->priv->rect_drawn)
+ gdl_dock_master_xor_rect (master);
/* cancel conditions */
if (cancelled || request->applicant == request->target)
@@ -636,24 +630,34 @@ gdl_dock_master_xor_rect (GdlDockMaster *master)
master->priv->rect_drawn = ~master->priv->rect_drawn;
- if (master->priv->rect_owner) {
- if (master->priv->area_window)
+ if (master->priv->rect_owner)
+ {
+ if (master->priv->rect_drawn)
{
- gtk_widget_hide (master->priv->area_window);
+ gdl_dock_xor_rect (master->priv->rect_owner,
+ &master->priv->drag_request->rect);
}
- gdl_dock_xor_rect (master->priv->rect_owner,
- &master->priv->drag_request->rect);
- return;
- }
-
- rect = &master->priv->drag_request->rect;
+ else
+ {
+ gdl_dock_xor_rect_hide(master->priv->rect_owner);
+ master->priv->rect_owner = NULL;
+ }
+ }
+ if (master->priv->rect_drawn && !master->priv->rect_owner)
+ {
+ rect = &master->priv->drag_request->rect;
- if (!master->priv->area_window)
+ if (!master->priv->area_window)
+ {
+ master->priv->area_window = gdl_preview_window_new ();
+ }
+
+ gdl_preview_window_update (GDL_PREVIEW_WINDOW (master->priv->area_window), rect);
+ }
+ else if (master->priv->area_window)
{
- master->priv->area_window = gdl_preview_window_new ();
+ gtk_widget_hide (master->priv->area_window);
}
-
- gdl_preview_window_update (GDL_PREVIEW_WINDOW (master->priv->area_window), rect);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]