summaryrefslogtreecommitdiff
path: root/gtk/gtkhandlebox.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-02-15 21:05:51 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-02-15 21:05:51 +0000
commit0c9af82e9713256d8764c0d72ee4718b44993193 (patch)
tree123061133bd9dcddc987451c182158d755c94013 /gtk/gtkhandlebox.h
parent063bad00a2fb7cb4430c35a98ab83c8c1dc80569 (diff)
downloadgdk-pixbuf-0c9af82e9713256d8764c0d72ee4718b44993193.tar.gz
When we find a match, stop searching. (Because we assume pspec != NULL in
Thu Feb 11 18:43:12 1999 Owen Taylor <otaylor@redhat.com> * gtk/gtkbindings.c (gtk_binding_set_add_path): When we find a match, stop searching. (Because we assume pspec != NULL in the search). Wed Feb 10 01:18:22 1999 Owen Taylor <otaylor@redhat.com> * gtk/gtkhandlebox.c (gtk_handle_box_draw_ghost): Fix up painting of "ghosts". * gtk/gtkhandlebox.c (gtk_handle_box_button_changed): Add double-click reattachment. * gtk/gtkhandlebox.c: Grab on widget->window, not on handlebox->bin_window. This means we don't have to worry about ungrabbing while reparenting. Don't make a GTK+ grab - that wasn't necessary. * gtk/gtkhandlebox.c: Only compute the root -> desk offset once, when starting the drag, instead of continuously. This should solve the *Bad Window* errors that were occurring because of race conditions with the WM. * gtk/gtkhandlebox.c: Completely reworked the the logic of reattachment. We introduce the concept of the "snap edge", which is an edge that needs to be aligned for reattachmed. We set a reasonable default from handlebox->handle_position, but an application might want to change this in some circumstances. * gtk/gtkhandlebox.[ch]: Add settors: gtk_handle_box_set_handle_position (); gtk_handle_box_set_snap_edge ();
Diffstat (limited to 'gtk/gtkhandlebox.h')
-rw-r--r--gtk/gtkhandlebox.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/gtk/gtkhandlebox.h b/gtk/gtkhandlebox.h
index 215a7efcb..4a60407e0 100644
--- a/gtk/gtkhandlebox.h
+++ b/gtk/gtkhandlebox.h
@@ -57,14 +57,14 @@ struct _GtkHandleBox
guint in_drag : 1;
guint shrink_on_detach : 1;
+ gint snap_edge : 3; /* -1 == unset */
+
/* Variables used during a drag
*/
- gint dragoff_x, dragoff_y; /* offset from event->root_x/y and
- * attach point on float */
gint deskoff_x, deskoff_y; /* Offset between root relative coordinates
* and deskrelative coordinates */
- gint attach_x, attach_y; /* Root relative-coordinates of attach
- * point on widget->window */
+ GtkAllocation attach_allocation;
+ GtkAllocation float_allocation;
};
struct _GtkHandleBoxClass
@@ -78,10 +78,15 @@ struct _GtkHandleBoxClass
};
-guint gtk_handle_box_get_type (void);
-GtkWidget* gtk_handle_box_new (void);
-void gtk_handle_box_set_shadow_type (GtkHandleBox *handle_box,
- GtkShadowType type);
+guint gtk_handle_box_get_type (void);
+GtkWidget* gtk_handle_box_new (void);
+void gtk_handle_box_set_shadow_type (GtkHandleBox *handle_box,
+ GtkShadowType type);
+void gtk_handle_box_set_handle_position (GtkHandleBox *handle_box,
+ GtkPositionType position);
+void gtk_handle_box_set_snap_edge (GtkHandleBox *handle_box,
+ GtkPositionType edge);
+
#ifdef __cplusplus